X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f57fe24c6389876d7ddf02aa7a09f3b48a6956de..61f0d452ea7e47fea18d0ab748095dc42d7dd66d:/src/common/parser.y

diff --git a/src/common/parser.y b/src/common/parser.y
index 3973c3948c..a4ff9ccc50 100644
--- a/src/common/parser.y
+++ b/src/common/parser.y
@@ -1,9 +1,10 @@
  %{
+#include "wx/setup.h"
 #include <string.h>
 #ifdef _MSC_VER
 #include <io.h>
 #endif
-#ifdef __GNUWIN32__
+#if defined(__GNUWIN32__) && !defined(__TWIN32__)
 #include <sys/unistd.h>
 #endif
 
@@ -27,12 +28,7 @@ void yyerror(char *);
 /* You may need to put /DLEX_SCANNER in your makefile
  * if you're using LEX!
  */
-#ifdef LEX_SCANNER
-/* int yyoutput(int); */
 void yyoutput(int);
-#else
-void yyoutput(int);
-#endif
 
 #if defined(__cplusplus) || defined(__STDC__)
 #if defined(__cplusplus) && defined(__EXTERN_C__)
@@ -73,7 +69,7 @@ commands :	/* empty */
 	;
 
 command	:       WORD PERIOD
-			{process_command(proio_cons(make_word($1), NULL)); free($1);}
+			{process_command(proio_cons(wxmake_word($1), NULL)); free($1);}
         |       expr PERIOD
 			{process_command($1);}
 	|	error PERIOD
@@ -81,7 +77,7 @@ command	:       WORD PERIOD
 	;
 
 expr	:	WORD OPEN arglist CLOSE 
-			{$$ = proio_cons(make_word($1), $3); free($1);}
+			{$$ = proio_cons(wxmake_word($1), $3); free($1);}
 	|	OPEN_SQUARE CLOSE_SQUARE
                         {$$ = proio_cons(NULL, NULL);}
 	|	OPEN_SQUARE arglist CLOSE_SQUARE
@@ -98,24 +94,24 @@ arglist	:
 	;
 
 arg	:	WORD EQUALS arg1
-			{$$ = proio_cons(make_word("="), proio_cons(make_word($1), proio_cons($3, NULL)));
+			{$$ = proio_cons(wxmake_word("="), proio_cons(wxmake_word($1), proio_cons($3, NULL)));
                          free($1); }
 	|	arg1
 			{$$ = $1; }
 
 arg1	:	WORD
-			{$$ = make_word($1); free($1);}
+			{$$ = wxmake_word($1); free($1);}
 	|	STRING
-			{$$ = make_string($1); free($1);}
+			{$$ = wxmake_string($1); free($1);}
 	|	INTEGER
-			{$$ = make_integer($1); free($1);}
+			{$$ = wxmake_integer($1); free($1);}
 	|	INTEGER PERIOD INTEGER
-			{$$ = make_real($1, $3); free($1); free($3); }
+			{$$ = wxmake_real($1, $3); free($1); free($3); }
         |       INTEGER EXP INTEGER
-                         {$$ = make_exp($1, $3); free($1); free($3); }
+                         {$$ = wxmake_exp($1, $3); free($1); free($3); }
         |
               INTEGER PERIOD INTEGER EXP INTEGER
-                         {$$ = make_exp2($1, $3, $5); free($1); free($3);
+                         {$$ = wxmake_exp2($1, $3, $5); free($1); free($3);
                                                                   free($5); }
 
 	|	expr
@@ -124,11 +120,18 @@ arg1	:	WORD
 
 %%
 
-#if (defined(__WXGTK__) || defined(__WXMOTIF__)) && !defined(NO_CONFIGURE)
+/* We include lexer.c if we are building for gtk, wine or motif
+ * and also whenever we are using configure (marked by __WX_SETUP_H__) for,
+ * for example, cross compilation. */
+#if (defined(__WXGTK__) || defined(__WXWINE__) || defined(__WXMOTIF__)) || defined(__WX_SETUP_H__) && !defined(NO_CONFIGURE)
 #include "lexer.c"
 #else
+#if (defined(__MWERKS__))
+#include "../common/cwlex_yy.c"
+#else
 #include "../common/lex_yy.c"
 #endif
+#endif
 
 /*
 void yyerror(s)
@@ -157,12 +160,16 @@ void yyerror(char *s)
  * to test
  */
 
-#ifndef __SC__
+/* HH: Added test for __WX_SETUP_H__ for gnuwin builds
+ * using configure */ 
+#if !defined(__SC__) && !defined(__GNUWIN32__) 
 #ifdef USE_DEFINE
 #ifndef yywrap
 #define yywrap() 1
 #endif
-#else if !defined(__alpha) && !defined(__ultrix)
+#elif !defined(__alpha___) && !defined(__alpha) && !defined(__ultrix)
 int yywrap() { return 1; }
 #endif
+#elif defined(__WX_SETUP_H__)
+int yywrap() { return 1; }
 #endif