X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4cb122de97b40f0b6c8896f40847a7aaf762abb5..9f4de6b2cf06f53a98b28f53640f3b9ec8cf4182:/src/common/parser.y diff --git a/src/common/parser.y b/src/common/parser.y index f9b8d83d62..c922f8c04a 100644 --- a/src/common/parser.y +++ b/src/common/parser.y @@ -1,3 +1,4 @@ +/* Version: $Id$ */ %{ #include "wx/setup.h" #include @@ -78,14 +79,12 @@ command : WORD PERIOD expr : WORD OPEN arglist CLOSE {$$ = proio_cons(wxmake_word($1), $3); free($1);} - | OPEN_SQUARE CLOSE_SQUARE - {$$ = proio_cons(NULL, NULL);} | OPEN_SQUARE arglist CLOSE_SQUARE {$$ = $2; } ; arglist : - {$$ = NULL;} + {$$ = proio_cons(NULL, NULL);} | arg {$$ = proio_cons($1, NULL);} | @@ -98,6 +97,7 @@ arg : WORD EQUALS arg1 free($1); } | arg1 {$$ = $1; } + ; arg1 : WORD {$$ = wxmake_word($1); free($1);} @@ -120,15 +120,18 @@ arg1 : WORD %% -#if (defined(__WXGTK__) || defined(__WXWINE__) || 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__)) +#elif defined(__WXMAC__) && defined(__APPLE__) +#include "lexer.c" +#elif defined(__MWERKS__) #include "../common/cwlex_yy.c" #else #include "../common/lex_yy.c" #endif -#endif /* void yyerror(s) @@ -153,10 +156,15 @@ void yyerror(char *s) * the UNIX flex expects a proper function. */ -/* Not sure if __SC__ is the appropriate thing - * to test +/* At least on alphaev6-dec-osf4.0e yywrap() must be #define'd. + * RL: ... but on Debian/Alpha(linux) it must not, so hopefully + * testing for __OSF__ here is what we really want. */ - +#ifdef __OSF__ +#ifndef yywrap +#define yywrap() 1 +#endif +#else /* HH: Added test for __WX_SETUP_H__ for gnuwin builds * using configure */ #if !defined(__SC__) && !defined(__GNUWIN32__) @@ -164,9 +172,13 @@ void yyerror(char *s) #ifndef yywrap #define yywrap() 1 #endif -#else if !defined(__alpha___) && !defined(__alpha) && !defined(__ultrix) +#elif !defined(__ultrix) +int yywrap() { return 1; } +#elif defined(__VMS__) int yywrap() { return 1; } #endif #elif defined(__WX_SETUP_H__) int yywrap() { return 1; } #endif +#endif +