diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index a687d9d6123..35cbfbcf41b 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -22,7 +22,7 @@ When porting a new DLL from Wine to ReactOS, please do the following steps The following build tools are shared with Wine. reactos/tools/unicode # Synced to Wine-20081105 (~Wine-1.1.7) -reactos/tools/wpp # Synced to Wine-0_9_5 +reactos/tools/wpp # Synced to Wine-20081105 (~Wine-1.1.7) reactos/tools/winebuild # Synced to Wine-20071217 reactos/tools/wmc # Synced to Wine-20071201 reactos/tools/wrc # Synced to Wine-0_9_53 diff --git a/reactos/tools/wpp/lex.yy.c b/reactos/tools/wpp/lex.yy.c index 25716f55d16..d213332f431 100644 --- a/reactos/tools/wpp/lex.yy.c +++ b/reactos/tools/wpp/lex.yy.c @@ -16,7 +16,7 @@ #define yytext ppy_text #define yywrap ppy_wrap -#line 20 "tools\\wpp_new\\lex.yy.c" +#line 20 "lex.yy.c" /* A lexical scanner generated by flex */ /* Scanner skeleton version: @@ -921,7 +921,7 @@ static char *yy_last_accepting_cpos; #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; -#line 1 "tools\\wpp_new\\ppl.l" +#line 1 "ppl.l" #define INITIAL 0 /* -*-C-*- * Wrc preprocessor lexical analysis @@ -1050,6 +1050,7 @@ char *yytext; */ #define YY_STACK_USED 1 #define YY_NEVER_INTERACTIVE 1 +#define YY_NO_INPUT 1 #define YY_NO_UNPUT 1 #define pp_pp 1 @@ -1093,13 +1094,28 @@ char *yytext; #define RCINCL 21 -#line 159 "tools\\wpp_new\\ppl.l" -#include +#line 159 "ppl.l" +#include "config.h" +#include "wine/port.h" #include #include #include #include #include +#include +#include + +#ifndef LLONG_MAX +# define LLONG_MAX ((long long)0x7fffffff << 32 | 0xffffffff) +# define LLONG_MIN (-LLONG_MAX - 1) +#endif +#ifndef ULLONG_MAX +# define ULLONG_MAX ((long long)0xffffffff << 32 | 0xffffffff) +#endif + +#ifndef HAVE_UNISTD_H +#define YY_NO_UNISTD_H +#endif #include "wpp_private.h" #include "ppy.tab.h" @@ -1138,7 +1154,6 @@ typedef struct bufferstackentry { /* Include management */ include_state_t incl; char *include_filename; - int pass_data; } bufferstackentry_t; #define ALLOCBLOCKSIZE (1 << 10) /* Allocate these chunks at a time for string-buffers */ @@ -1171,7 +1186,6 @@ typedef struct macexpstackentry { static void newline(int); static int make_number(int radix, YYSTYPE *val, const char *str, int len); static void put_buffer(const char *s, int len); -static int is_c_h_include(char *fname, int quoted); /* Buffer management */ static void push_buffer(pp_entry_t *ppp, char *filename, char *incname, int pop); static bufferstackentry_t *pop_buffer(void); @@ -1210,8 +1224,6 @@ static int macexpstackidx = 0; static bufferstackentry_t bufferstack[MAXBUFFERSTACK]; static int bufferstackidx = 0; -static int pass_data=1; - /* * Global variables */ @@ -1230,7 +1242,7 @@ includelogicentry_t *pp_includelogiclist = NULL; * The scanner starts here ************************************************************************** */ -#line 1234 "tools\\wpp_new\\lex.yy.c" +#line 1246 "lex.yy.c" /* Macros after this point can all be overridden by user definitions in * section 1. @@ -1384,7 +1396,7 @@ YY_DECL register char *yy_cp, *yy_bp; register int yy_act; -#line 298 "tools\\wpp_new\\ppl.l" +#line 309 "ppl.l" /* * Catch line-continuations. @@ -1398,7 +1410,7 @@ YY_DECL /* * Detect the leading # of a preprocessor directive. */ -#line 1402 "tools\\wpp_new\\lex.yy.c" +#line 1414 "lex.yy.c" if ( yy_init ) { @@ -1484,7 +1496,7 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 311 "tools\\wpp_new\\ppl.l" +#line 322 "ppl.l" pp_incl_state.seen_junk++; yy_push_state(pp_pp); YY_BREAK /* @@ -1492,102 +1504,102 @@ pp_incl_state.seen_junk++; yy_push_state(pp_pp); */ case 2: YY_RULE_SETUP -#line 316 "tools\\wpp_new\\ppl.l" +#line 327 "ppl.l" if(yy_top_state() != pp_ignore) {yy_pp_state(pp_inc); return tINCLUDE;} else {yy_pp_state(pp_eol);} YY_BREAK case 3: YY_RULE_SETUP -#line 317 "tools\\wpp_new\\ppl.l" +#line 328 "ppl.l" yy_pp_state(yy_current_state() != pp_ignore ? pp_def : pp_eol); YY_BREAK case 4: YY_RULE_SETUP -#line 318 "tools\\wpp_new\\ppl.l" +#line 329 "ppl.l" yy_pp_state(pp_eol); if(yy_top_state() != pp_ignore) return tERROR; YY_BREAK case 5: YY_RULE_SETUP -#line 319 "tools\\wpp_new\\ppl.l" +#line 330 "ppl.l" yy_pp_state(pp_eol); if(yy_top_state() != pp_ignore) return tWARNING; YY_BREAK case 6: YY_RULE_SETUP -#line 320 "tools\\wpp_new\\ppl.l" +#line 331 "ppl.l" yy_pp_state(pp_eol); if(yy_top_state() != pp_ignore) return tPRAGMA; YY_BREAK case 7: YY_RULE_SETUP -#line 321 "tools\\wpp_new\\ppl.l" +#line 332 "ppl.l" yy_pp_state(pp_eol); if(yy_top_state() != pp_ignore) return tPPIDENT; YY_BREAK case 8: YY_RULE_SETUP -#line 322 "tools\\wpp_new\\ppl.l" +#line 333 "ppl.l" if(yy_top_state() != pp_ignore) {yy_pp_state(pp_ifd); return tUNDEF;} else {yy_pp_state(pp_eol);} YY_BREAK case 9: YY_RULE_SETUP -#line 323 "tools\\wpp_new\\ppl.l" +#line 334 "ppl.l" yy_pp_state(pp_ifd); return tIFDEF; YY_BREAK case 10: YY_RULE_SETUP -#line 324 "tools\\wpp_new\\ppl.l" +#line 335 "ppl.l" pp_incl_state.seen_junk--; yy_pp_state(pp_ifd); return tIFNDEF; YY_BREAK case 11: YY_RULE_SETUP -#line 325 "tools\\wpp_new\\ppl.l" +#line 336 "ppl.l" yy_pp_state(pp_if); return tIF; YY_BREAK case 12: YY_RULE_SETUP -#line 326 "tools\\wpp_new\\ppl.l" +#line 337 "ppl.l" yy_pp_state(pp_if); return tELIF; YY_BREAK case 13: YY_RULE_SETUP -#line 327 "tools\\wpp_new\\ppl.l" +#line 338 "ppl.l" yy_pp_state(pp_endif); return tELSE; YY_BREAK case 14: YY_RULE_SETUP -#line 328 "tools\\wpp_new\\ppl.l" +#line 339 "ppl.l" yy_pp_state(pp_endif); return tENDIF; YY_BREAK case 15: YY_RULE_SETUP -#line 329 "tools\\wpp_new\\ppl.l" +#line 340 "ppl.l" if(yy_top_state() != pp_ignore) {yy_pp_state(pp_line); return tLINE;} else {yy_pp_state(pp_eol);} YY_BREAK case 16: YY_RULE_SETUP -#line 330 "tools\\wpp_new\\ppl.l" +#line 341 "ppl.l" if(yy_top_state() != pp_ignore) {yy_pp_state(pp_line); return tGCCLINE;} else {yy_pp_state(pp_eol);} YY_BREAK case 17: YY_RULE_SETUP -#line 331 "tools\\wpp_new\\ppl.l" +#line 342 "ppl.l" ppy_error("Invalid preprocessor token '%s'", ppy_text); YY_BREAK case 18: YY_RULE_SETUP -#line 332 "tools\\wpp_new\\ppl.l" +#line 343 "ppl.l" newline(1); yy_pop_state(); return tNL; /* This could be the null-token */ YY_BREAK case 19: YY_RULE_SETUP -#line 333 "tools\\wpp_new\\ppl.l" +#line 344 "ppl.l" newline(0); YY_BREAK case 20: YY_RULE_SETUP -#line 334 "tools\\wpp_new\\ppl.l" +#line 345 "ppl.l" ppy_error("Preprocessor junk '%s'", ppy_text); YY_BREAK case 21: YY_RULE_SETUP -#line 335 "tools\\wpp_new\\ppl.l" +#line 346 "ppl.l" return *ppy_text; YY_BREAK /* @@ -1595,37 +1607,37 @@ return *ppy_text; */ case 22: YY_RULE_SETUP -#line 340 "tools\\wpp_new\\ppl.l" +#line 351 "ppl.l" return make_number(10, &ppy_lval, ppy_text, ppy_leng); YY_BREAK case 23: YY_RULE_SETUP -#line 341 "tools\\wpp_new\\ppl.l" +#line 352 "ppl.l" new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_iqs); YY_BREAK case 24: YY_RULE_SETUP -#line 342 "tools\\wpp_new\\ppl.l" +#line 353 "ppl.l" new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs); YY_BREAK case 25: YY_RULE_SETUP -#line 343 "tools\\wpp_new\\ppl.l" +#line 354 "ppl.l" ; YY_BREAK case 26: YY_RULE_SETUP -#line 344 "tools\\wpp_new\\ppl.l" +#line 355 "ppl.l" newline(1); yy_pop_state(); return tNL; YY_BREAK case 27: YY_RULE_SETUP -#line 345 "tools\\wpp_new\\ppl.l" +#line 356 "ppl.l" newline(0); YY_BREAK case 28: YY_RULE_SETUP -#line 346 "tools\\wpp_new\\ppl.l" +#line 357 "ppl.l" ppy_error(yy_current_state() == pp_inc ? "Trailing junk in #include" : "Trailing junk in #line"); YY_BREAK /* @@ -1633,22 +1645,22 @@ ppy_error(yy_current_state() == pp_inc ? "Trailing junk in #include" : "Trailing */ case 29: YY_RULE_SETUP -#line 351 "tools\\wpp_new\\ppl.l" +#line 362 "ppl.l" ; YY_BREAK case 30: YY_RULE_SETUP -#line 352 "tools\\wpp_new\\ppl.l" +#line 363 "ppl.l" newline(1); YY_BREAK case 31: YY_RULE_SETUP -#line 353 "tools\\wpp_new\\ppl.l" +#line 364 "ppl.l" newline(0); YY_BREAK case 32: YY_RULE_SETUP -#line 354 "tools\\wpp_new\\ppl.l" +#line 365 "ppl.l" ; YY_BREAK /* @@ -1659,107 +1671,107 @@ YY_RULE_SETUP */ case 33: YY_RULE_SETUP -#line 363 "tools\\wpp_new\\ppl.l" +#line 374 "ppl.l" return make_number(8, &ppy_lval, ppy_text, ppy_leng); YY_BREAK case 34: YY_RULE_SETUP -#line 364 "tools\\wpp_new\\ppl.l" +#line 375 "ppl.l" ppy_error("Invalid octal digit"); YY_BREAK case 35: YY_RULE_SETUP -#line 365 "tools\\wpp_new\\ppl.l" +#line 376 "ppl.l" return make_number(10, &ppy_lval, ppy_text, ppy_leng); YY_BREAK case 36: YY_RULE_SETUP -#line 366 "tools\\wpp_new\\ppl.l" +#line 377 "ppl.l" return make_number(16, &ppy_lval, ppy_text, ppy_leng); YY_BREAK case 37: YY_RULE_SETUP -#line 367 "tools\\wpp_new\\ppl.l" +#line 378 "ppl.l" ppy_error("Invalid hex number"); YY_BREAK case 38: YY_RULE_SETUP -#line 368 "tools\\wpp_new\\ppl.l" +#line 379 "ppl.l" yy_push_state(pp_defined); return tDEFINED; YY_BREAK case 39: YY_RULE_SETUP -#line 369 "tools\\wpp_new\\ppl.l" +#line 380 "ppl.l" return tLSHIFT; YY_BREAK case 40: YY_RULE_SETUP -#line 370 "tools\\wpp_new\\ppl.l" +#line 381 "ppl.l" return tRSHIFT; YY_BREAK case 41: YY_RULE_SETUP -#line 371 "tools\\wpp_new\\ppl.l" +#line 382 "ppl.l" return tLOGAND; YY_BREAK case 42: YY_RULE_SETUP -#line 372 "tools\\wpp_new\\ppl.l" +#line 383 "ppl.l" return tLOGOR; YY_BREAK case 43: YY_RULE_SETUP -#line 373 "tools\\wpp_new\\ppl.l" +#line 384 "ppl.l" return tEQ; YY_BREAK case 44: YY_RULE_SETUP -#line 374 "tools\\wpp_new\\ppl.l" +#line 385 "ppl.l" return tNE; YY_BREAK case 45: YY_RULE_SETUP -#line 375 "tools\\wpp_new\\ppl.l" +#line 386 "ppl.l" return tLTE; YY_BREAK case 46: YY_RULE_SETUP -#line 376 "tools\\wpp_new\\ppl.l" +#line 387 "ppl.l" return tGTE; YY_BREAK case 47: YY_RULE_SETUP -#line 377 "tools\\wpp_new\\ppl.l" +#line 388 "ppl.l" newline(1); yy_pop_state(); return tNL; YY_BREAK case 48: YY_RULE_SETUP -#line 378 "tools\\wpp_new\\ppl.l" +#line 389 "ppl.l" newline(0); YY_BREAK case 49: YY_RULE_SETUP -#line 379 "tools\\wpp_new\\ppl.l" +#line 390 "ppl.l" ppy_error("Junk in conditional expression"); YY_BREAK case 50: YY_RULE_SETUP -#line 380 "tools\\wpp_new\\ppl.l" +#line 391 "ppl.l" ; YY_BREAK case 51: YY_RULE_SETUP -#line 381 "tools\\wpp_new\\ppl.l" +#line 392 "ppl.l" new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs); YY_BREAK case 52: YY_RULE_SETUP -#line 382 "tools\\wpp_new\\ppl.l" +#line 393 "ppl.l" ppy_error("String constants not allowed in conditionals"); YY_BREAK case 53: YY_RULE_SETUP -#line 383 "tools\\wpp_new\\ppl.l" +#line 394 "ppl.l" return *ppy_text; YY_BREAK /* @@ -1768,27 +1780,27 @@ return *ppy_text; */ case 54: YY_RULE_SETUP -#line 389 "tools\\wpp_new\\ppl.l" +#line 400 "ppl.l" ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT; YY_BREAK case 55: YY_RULE_SETUP -#line 390 "tools\\wpp_new\\ppl.l" +#line 401 "ppl.l" ; YY_BREAK case 56: YY_RULE_SETUP -#line 391 "tools\\wpp_new\\ppl.l" +#line 402 "ppl.l" newline(1); yy_pop_state(); return tNL; YY_BREAK case 57: YY_RULE_SETUP -#line 392 "tools\\wpp_new\\ppl.l" +#line 403 "ppl.l" newline(0); YY_BREAK case 58: YY_RULE_SETUP -#line 393 "tools\\wpp_new\\ppl.l" +#line 404 "ppl.l" ppy_error("Identifier expected"); YY_BREAK /* @@ -1796,22 +1808,22 @@ ppy_error("Identifier expected"); */ case 59: YY_RULE_SETUP -#line 398 "tools\\wpp_new\\ppl.l" +#line 409 "ppl.l" ; YY_BREAK case 60: YY_RULE_SETUP -#line 399 "tools\\wpp_new\\ppl.l" +#line 410 "ppl.l" newline(1); yy_pop_state(); return tNL; YY_BREAK case 61: YY_RULE_SETUP -#line 400 "tools\\wpp_new\\ppl.l" +#line 411 "ppl.l" newline(0); YY_BREAK case 62: YY_RULE_SETUP -#line 401 "tools\\wpp_new\\ppl.l" +#line 412 "ppl.l" ppy_error("Garbage after #else or #endif."); YY_BREAK /* @@ -1821,27 +1833,27 @@ ppy_error("Garbage after #else or #endif."); */ case 63: YY_RULE_SETUP -#line 408 "tools\\wpp_new\\ppl.l" +#line 419 "ppl.l" yy_pop_state(); ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT; YY_BREAK case 64: YY_RULE_SETUP -#line 409 "tools\\wpp_new\\ppl.l" +#line 420 "ppl.l" ; YY_BREAK case 65: YY_RULE_SETUP -#line 410 "tools\\wpp_new\\ppl.l" +#line 421 "ppl.l" return *ppy_text; YY_BREAK case 66: YY_RULE_SETUP -#line 411 "tools\\wpp_new\\ppl.l" +#line 422 "ppl.l" newline(0); YY_BREAK case 67: YY_RULE_SETUP -#line 412 "tools\\wpp_new\\ppl.l" +#line 423 "ppl.l" ppy_error("Identifier expected"); YY_BREAK /* @@ -1852,27 +1864,27 @@ ppy_error("Identifier expected"); */ case 68: YY_RULE_SETUP -#line 420 "tools\\wpp_new\\ppl.l" +#line 431 "ppl.l" if(yy_top_state() != pp_ignore) { ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; } YY_BREAK case 69: YY_RULE_SETUP -#line 421 "tools\\wpp_new\\ppl.l" +#line 432 "ppl.l" if(yy_top_state() != pp_ignore) { ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; } YY_BREAK case 70: YY_RULE_SETUP -#line 422 "tools\\wpp_new\\ppl.l" +#line 433 "ppl.l" if(yy_top_state() != pp_ignore) { ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; } YY_BREAK case 71: YY_RULE_SETUP -#line 423 "tools\\wpp_new\\ppl.l" +#line 434 "ppl.l" newline(1); yy_pop_state(); if(yy_current_state() != pp_ignore) { return tNL; } YY_BREAK case 72: YY_RULE_SETUP -#line 424 "tools\\wpp_new\\ppl.l" +#line 435 "ppl.l" newline(0); YY_BREAK /* @@ -1880,27 +1892,27 @@ newline(0); */ case 73: YY_RULE_SETUP -#line 429 "tools\\wpp_new\\ppl.l" +#line 440 "ppl.l" ppy_lval.cptr = pp_xstrdup(ppy_text); ppy_lval.cptr[ppy_leng-1] = '\0'; yy_pp_state(pp_macro); return tMACRO; YY_BREAK case 74: YY_RULE_SETUP -#line 430 "tools\\wpp_new\\ppl.l" +#line 441 "ppl.l" ppy_lval.cptr = pp_xstrdup(ppy_text); yy_pp_state(pp_define); return tDEFINE; YY_BREAK case 75: YY_RULE_SETUP -#line 431 "tools\\wpp_new\\ppl.l" +#line 442 "ppl.l" ; YY_BREAK case 76: YY_RULE_SETUP -#line 432 "tools\\wpp_new\\ppl.l" +#line 443 "ppl.l" newline(0); YY_BREAK case 77: YY_RULE_SETUP -#line 433 "tools\\wpp_new\\ppl.l" +#line 444 "ppl.l" perror("Identifier expected"); YY_BREAK /* @@ -1908,37 +1920,37 @@ perror("Identifier expected"); */ case 78: YY_RULE_SETUP -#line 438 "tools\\wpp_new\\ppl.l" +#line 449 "ppl.l" ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; YY_BREAK case 79: YY_RULE_SETUP -#line 439 "tools\\wpp_new\\ppl.l" +#line 450 "ppl.l" ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; YY_BREAK case 80: YY_RULE_SETUP -#line 440 "tools\\wpp_new\\ppl.l" +#line 451 "ppl.l" newline(0); ppy_lval.cptr = pp_xstrdup(" "); return tLITERAL; YY_BREAK case 81: YY_RULE_SETUP -#line 441 "tools\\wpp_new\\ppl.l" +#line 452 "ppl.l" newline(0); YY_BREAK case 82: YY_RULE_SETUP -#line 442 "tools\\wpp_new\\ppl.l" +#line 453 "ppl.l" newline(1); yy_pop_state(); return tNL; YY_BREAK case 83: YY_RULE_SETUP -#line 443 "tools\\wpp_new\\ppl.l" +#line 454 "ppl.l" new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs); YY_BREAK case 84: YY_RULE_SETUP -#line 444 "tools\\wpp_new\\ppl.l" +#line 455 "ppl.l" new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs); YY_BREAK /* @@ -1946,37 +1958,37 @@ new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs); */ case 85: YY_RULE_SETUP -#line 449 "tools\\wpp_new\\ppl.l" +#line 460 "ppl.l" yy_pp_state(pp_mbody); return tMACROEND; YY_BREAK case 86: YY_RULE_SETUP -#line 450 "tools\\wpp_new\\ppl.l" +#line 461 "ppl.l" ; YY_BREAK case 87: YY_RULE_SETUP -#line 451 "tools\\wpp_new\\ppl.l" +#line 462 "ppl.l" ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT; YY_BREAK case 88: YY_RULE_SETUP -#line 452 "tools\\wpp_new\\ppl.l" +#line 463 "ppl.l" return ','; YY_BREAK case 89: YY_RULE_SETUP -#line 453 "tools\\wpp_new\\ppl.l" +#line 464 "ppl.l" return tELIPSIS; YY_BREAK case 90: YY_RULE_SETUP -#line 454 "tools\\wpp_new\\ppl.l" +#line 465 "ppl.l" ppy_error("Argument identifier expected"); YY_BREAK case 91: YY_RULE_SETUP -#line 455 "tools\\wpp_new\\ppl.l" +#line 466 "ppl.l" newline(0); YY_BREAK /* @@ -1984,57 +1996,57 @@ newline(0); */ case 92: YY_RULE_SETUP -#line 460 "tools\\wpp_new\\ppl.l" +#line 471 "ppl.l" ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; YY_BREAK case 93: YY_RULE_SETUP -#line 461 "tools\\wpp_new\\ppl.l" +#line 472 "ppl.l" ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT; YY_BREAK case 94: YY_RULE_SETUP -#line 462 "tools\\wpp_new\\ppl.l" +#line 473 "ppl.l" return tCONCAT; YY_BREAK case 95: YY_RULE_SETUP -#line 463 "tools\\wpp_new\\ppl.l" +#line 474 "ppl.l" return tSTRINGIZE; YY_BREAK case 96: YY_RULE_SETUP -#line 464 "tools\\wpp_new\\ppl.l" +#line 475 "ppl.l" ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; YY_BREAK case 97: YY_RULE_SETUP -#line 465 "tools\\wpp_new\\ppl.l" +#line 476 "ppl.l" ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; YY_BREAK case 98: YY_RULE_SETUP -#line 466 "tools\\wpp_new\\ppl.l" +#line 477 "ppl.l" newline(0); ppy_lval.cptr = pp_xstrdup(" "); return tLITERAL; YY_BREAK case 99: YY_RULE_SETUP -#line 467 "tools\\wpp_new\\ppl.l" +#line 478 "ppl.l" newline(0); YY_BREAK case 100: YY_RULE_SETUP -#line 468 "tools\\wpp_new\\ppl.l" +#line 479 "ppl.l" newline(1); yy_pop_state(); return tNL; YY_BREAK case 101: YY_RULE_SETUP -#line 469 "tools\\wpp_new\\ppl.l" +#line 480 "ppl.l" new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs); YY_BREAK case 102: YY_RULE_SETUP -#line 470 "tools\\wpp_new\\ppl.l" +#line 481 "ppl.l" new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs); YY_BREAK /* @@ -2051,12 +2063,12 @@ case 103: yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 481 "tools\\wpp_new\\ppl.l" +#line 492 "ppl.l" yy_pp_state(pp_macscan); YY_BREAK case 104: YY_RULE_SETUP -#line 482 "tools\\wpp_new\\ppl.l" +#line 493 "ppl.l" { if(yy_top_state() != pp_macscan) newline(0); @@ -2064,12 +2076,12 @@ YY_RULE_SETUP YY_BREAK case 105: YY_RULE_SETUP -#line 486 "tools\\wpp_new\\ppl.l" +#line 497 "ppl.l" newline(0); YY_BREAK case 106: YY_RULE_SETUP -#line 487 "tools\\wpp_new\\ppl.l" +#line 498 "ppl.l" { macexpstackentry_t *mac = pop_macro(); yy_pop_state(); @@ -2084,7 +2096,7 @@ YY_RULE_SETUP */ case 107: YY_RULE_SETUP -#line 499 "tools\\wpp_new\\ppl.l" +#line 510 "ppl.l" { if(++MACROPARENTHESES() > 1) add_text_to_macro(ppy_text, ppy_leng); @@ -2092,7 +2104,7 @@ YY_RULE_SETUP YY_BREAK case 108: YY_RULE_SETUP -#line 503 "tools\\wpp_new\\ppl.l" +#line 514 "ppl.l" { if(--MACROPARENTHESES() == 0) { @@ -2105,7 +2117,7 @@ YY_RULE_SETUP YY_BREAK case 109: YY_RULE_SETUP -#line 512 "tools\\wpp_new\\ppl.l" +#line 523 "ppl.l" { if(MACROPARENTHESES() > 1) add_text_to_macro(ppy_text, ppy_leng); @@ -2115,32 +2127,32 @@ YY_RULE_SETUP YY_BREAK case 110: YY_RULE_SETUP -#line 518 "tools\\wpp_new\\ppl.l" +#line 529 "ppl.l" new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs); YY_BREAK case 111: YY_RULE_SETUP -#line 519 "tools\\wpp_new\\ppl.l" +#line 530 "ppl.l" new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs); YY_BREAK case 112: YY_RULE_SETUP -#line 520 "tools\\wpp_new\\ppl.l" +#line 531 "ppl.l" yy_push_state(pp_comment); add_text_to_macro(" ", 1); YY_BREAK case 113: YY_RULE_SETUP -#line 521 "tools\\wpp_new\\ppl.l" +#line 532 "ppl.l" pp_status.line_number++; pp_status.char_number = 1; add_text_to_macro(ppy_text, ppy_leng); YY_BREAK case 114: YY_RULE_SETUP -#line 522 "tools\\wpp_new\\ppl.l" +#line 533 "ppl.l" add_text_to_macro(ppy_text, ppy_leng); YY_BREAK case 115: YY_RULE_SETUP -#line 523 "tools\\wpp_new\\ppl.l" +#line 534 "ppl.l" newline(0); YY_BREAK /* @@ -2148,22 +2160,22 @@ newline(0); */ case 116: YY_RULE_SETUP -#line 528 "tools\\wpp_new\\ppl.l" +#line 539 "ppl.l" yy_push_state(pp_comment); YY_BREAK case 117: YY_RULE_SETUP -#line 529 "tools\\wpp_new\\ppl.l" +#line 540 "ppl.l" ; YY_BREAK case 118: YY_RULE_SETUP -#line 530 "tools\\wpp_new\\ppl.l" +#line 541 "ppl.l" newline(0); YY_BREAK case 119: YY_RULE_SETUP -#line 531 "tools\\wpp_new\\ppl.l" +#line 542 "ppl.l" yy_pop_state(); YY_BREAK /* @@ -2171,7 +2183,7 @@ yy_pop_state(); */ case 120: YY_RULE_SETUP -#line 536 "tools\\wpp_new\\ppl.l" +#line 547 "ppl.l" { if(ppy_text[ppy_leng-1] == '\\') ppy_warning("C++ style comment ends with an escaped newline (escape ignored)"); @@ -2182,22 +2194,22 @@ YY_RULE_SETUP */ case 121: YY_RULE_SETUP -#line 544 "tools\\wpp_new\\ppl.l" +#line 555 "ppl.l" pp_incl_state.seen_junk++; new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs); YY_BREAK case 122: YY_RULE_SETUP -#line 545 "tools\\wpp_new\\ppl.l" +#line 556 "ppl.l" pp_incl_state.seen_junk++; new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs); YY_BREAK case 123: YY_RULE_SETUP -#line 546 "tools\\wpp_new\\ppl.l" +#line 557 "ppl.l" add_string(ppy_text, ppy_leng); YY_BREAK case 124: YY_RULE_SETUP -#line 547 "tools\\wpp_new\\ppl.l" +#line 558 "ppl.l" { add_string(ppy_text, ppy_leng); yy_pop_state(); @@ -2213,8 +2225,6 @@ YY_RULE_SETUP return tDQSTRING; case pp_line: ppy_lval.cptr = get_string(); - if (is_c_h_include(ppy_lval.cptr, 1)) pass_data=0; - else pass_data=1; return tDQSTRING; default: put_string(); @@ -2223,12 +2233,12 @@ YY_RULE_SETUP YY_BREAK case 125: YY_RULE_SETUP -#line 569 "tools\\wpp_new\\ppl.l" +#line 578 "ppl.l" add_string(ppy_text, ppy_leng); YY_BREAK case 126: YY_RULE_SETUP -#line 570 "tools\\wpp_new\\ppl.l" +#line 579 "ppl.l" { add_string(ppy_text, ppy_leng); yy_pop_state(); @@ -2246,12 +2256,12 @@ YY_RULE_SETUP YY_BREAK case 127: YY_RULE_SETUP -#line 584 "tools\\wpp_new\\ppl.l" +#line 593 "ppl.l" add_string(ppy_text, ppy_leng); YY_BREAK case 128: YY_RULE_SETUP -#line 585 "tools\\wpp_new\\ppl.l" +#line 594 "ppl.l" { add_string(ppy_text, ppy_leng); yy_pop_state(); @@ -2261,7 +2271,7 @@ YY_RULE_SETUP YY_BREAK case 129: YY_RULE_SETUP -#line 591 "tools\\wpp_new\\ppl.l" +#line 600 "ppl.l" { /* * This is tricky; we need to remove the line-continuation @@ -2289,12 +2299,12 @@ YY_RULE_SETUP YY_BREAK case 130: YY_RULE_SETUP -#line 615 "tools\\wpp_new\\ppl.l" +#line 624 "ppl.l" add_string(ppy_text, ppy_leng); YY_BREAK case 131: YY_RULE_SETUP -#line 616 "tools\\wpp_new\\ppl.l" +#line 625 "ppl.l" { newline(1); add_string(ppy_text, ppy_leng); @@ -2306,7 +2316,7 @@ YY_RULE_SETUP */ case 132: YY_RULE_SETUP -#line 625 "tools\\wpp_new\\ppl.l" +#line 634 "ppl.l" { pp_entry_t *ppp; pp_incl_state.seen_junk++; @@ -2355,27 +2365,27 @@ YY_RULE_SETUP */ case 133: YY_RULE_SETUP -#line 671 "tools\\wpp_new\\ppl.l" +#line 680 "ppl.l" pp_incl_state.seen_junk++; put_buffer(ppy_text, ppy_leng); YY_BREAK case 134: YY_RULE_SETUP -#line 672 "tools\\wpp_new\\ppl.l" +#line 681 "ppl.l" put_buffer(ppy_text, ppy_leng); YY_BREAK case 135: YY_RULE_SETUP -#line 673 "tools\\wpp_new\\ppl.l" +#line 682 "ppl.l" newline(1); YY_BREAK case 136: YY_RULE_SETUP -#line 674 "tools\\wpp_new\\ppl.l" +#line 683 "ppl.l" newline(0); YY_BREAK case 137: YY_RULE_SETUP -#line 675 "tools\\wpp_new\\ppl.l" +#line 684 "ppl.l" pp_incl_state.seen_junk++; put_buffer(ppy_text, ppy_leng); YY_BREAK /* @@ -2384,12 +2394,12 @@ pp_incl_state.seen_junk++; put_buffer(ppy_text, ppy_leng); */ case 138: YY_RULE_SETUP -#line 681 "tools\\wpp_new\\ppl.l" +#line 690 "ppl.l" put_buffer(ppy_text, ppy_leng); YY_BREAK case 139: YY_RULE_SETUP -#line 683 "tools\\wpp_new\\ppl.l" +#line 692 "ppl.l" { ppy_lval.cptr=pp_xstrdup(ppy_text); yy_pop_state(); @@ -2398,12 +2408,12 @@ YY_RULE_SETUP YY_BREAK case 140: YY_RULE_SETUP -#line 689 "tools\\wpp_new\\ppl.l" +#line 698 "ppl.l" ; YY_BREAK case 141: YY_RULE_SETUP -#line 691 "tools\\wpp_new\\ppl.l" +#line 700 "ppl.l" { new_string(); add_string(ppy_text,ppy_leng);yy_push_state(pp_dqs); } @@ -2414,7 +2424,7 @@ YY_RULE_SETUP */ case 142: YY_RULE_SETUP -#line 699 "tools\\wpp_new\\ppl.l" +#line 708 "ppl.l" pp_incl_state.seen_junk++; ppy_warning("Unmatched text '%c' (0x%02x); please report\n", isprint(*ppy_text & 0xff) ? *ppy_text : ' ', *ppy_text); YY_BREAK case YY_STATE_EOF(INITIAL): @@ -2439,7 +2449,7 @@ case YY_STATE_EOF(pp_line): case YY_STATE_EOF(pp_defined): case YY_STATE_EOF(pp_ignore): case YY_STATE_EOF(RCINCL): -#line 701 "tools\\wpp_new\\ppl.l" +#line 710 "ppl.l" { YY_BUFFER_STATE b = YY_CURRENT_BUFFER; bufferstackentry_t *bep = pop_buffer(); @@ -2464,10 +2474,10 @@ case YY_STATE_EOF(RCINCL): YY_BREAK case 143: YY_RULE_SETUP -#line 723 "tools\\wpp_new\\ppl.l" +#line 732 "ppl.l" ECHO; YY_BREAK -#line 2471 "tools\\wpp_new\\lex.yy.c" +#line 2481 "lex.yy.c" case YY_END_OF_BUFFER: { @@ -3353,7 +3363,7 @@ int main() return 0; } #endif -#line 723 "tools\\wpp_new\\ppl.l" +#line 732 "ppl.l" /* ************************************************************************** @@ -3425,6 +3435,7 @@ static int make_number(int radix, YYSTYPE *val, const char *str, int len) int is_ll = 0; int is_u = 0; char ext[4]; + long l; ext[3] = '\0'; ext[2] = toupper(str[len-1]); @@ -3462,12 +3473,18 @@ static int make_number(int radix, YYSTYPE *val, const char *str, int len) #ifdef HAVE_LONG_LONG if (is_u) { + errno = 0; val->ull = strtoull(str, NULL, radix); + if (val->ull == ULLONG_MAX && errno == ERANGE) + ppy_error("integer constant %s is too large\n", str); return tULONGLONG; } else { + errno = 0; val->sll = strtoll(str, NULL, radix); + if ((val->sll == LLONG_MIN || val->sll == LLONG_MAX) && errno == ERANGE) + ppy_error("integer constant %s is too large\n", str); return tSLONGLONG; } #else @@ -3476,22 +3493,38 @@ static int make_number(int radix, YYSTYPE *val, const char *str, int len) } else if(is_u && is_l) { + errno = 0; val->ulong = strtoul(str, NULL, radix); + if (val->ulong == ULONG_MAX && errno == ERANGE) + ppy_error("integer constant %s is too large\n", str); return tULONG; } else if(!is_u && is_l) { + errno = 0; val->slong = strtol(str, NULL, radix); + if ((val->slong == LONG_MIN || val->slong == LONG_MAX) && errno == ERANGE) + ppy_error("integer constant %s is too large\n", str); return tSLONG; } else if(is_u && !is_l) { - val->uint = (unsigned int)strtoul(str, NULL, radix); + unsigned long ul; + errno = 0; + ul = strtoul(str, NULL, radix); + if ((ul == ULONG_MAX && errno == ERANGE) || (ul > UINT_MAX)) + ppy_error("integer constant %s is too large\n", str); + val->uint = (unsigned int)ul; return tUINT; } /* Else it must be an int... */ - val->sint = (int)strtol(str, NULL, radix); + errno = 0; + l = strtol(str, NULL, radix); + if (((l == LONG_MIN || l == LONG_MAX) && errno == ERANGE) || + (l > INT_MAX) || (l < INT_MIN)) + ppy_error("integer constant %s is too large\n", str); + val->sint = (int)l; return tSINT; } @@ -3825,7 +3858,6 @@ static void push_buffer(pp_entry_t *ppp, char *filename, char *incname, int pop) bufferstack[bufferstackidx].ncontinuations = ncontinuations; bufferstack[bufferstackidx].incl = pp_incl_state; bufferstack[bufferstackidx].include_filename = incname; - bufferstack[bufferstackidx].pass_data = pass_data; if(ppp) ppp->expanding = 1; @@ -3888,7 +3920,6 @@ static bufferstackentry_t *pop_buffer(void) } free(pp_incl_state.ppp); pp_incl_state = bufferstack[bufferstackidx].incl; - pass_data = bufferstack[bufferstackidx].pass_data; } } @@ -4044,10 +4075,8 @@ static void put_buffer(const char *s, int len) { if(top_macro()) add_text_to_macro(s, len); - else { - if(pass_data) + else fwrite(s, 1, len, ppy_out); - } } @@ -4056,15 +4085,6 @@ static void put_buffer(const char *s, int len) * Include management *------------------------------------------------------------------------- */ -static int is_c_h_include(char *fname, int quoted) -{ - int sl=strlen(fname); - if (sl < 2 + 2 * quoted) return 0; - if ((toupper(fname[sl-1-quoted])!='H') && (toupper(fname[sl-1-quoted])!='C')) return 0; - if (fname[sl-2-quoted]!='.') return 0; - return 1; -} - void pp_do_include(char *fname, int type) { char *newpath; @@ -4100,12 +4120,10 @@ void pp_do_include(char *fname, int type) pp_incl_state.seen_junk = 0; pp_incl_state.state = 0; pp_incl_state.ppp = NULL; - if (is_c_h_include(newpath, 0)) pass_data=0; - else pass_data=1; if(pp_status.debug) - fprintf(stderr, "pp_do_include: %s:%d: include_state=%d, include_ppp='%s', include_ifdepth=%d ,pass_data=%d\n", - pp_status.input, pp_status.line_number, pp_incl_state.state, pp_incl_state.ppp, pp_incl_state.ifdepth, pass_data); + fprintf(stderr, "pp_do_include: %s:%d: include_state=%d, include_ppp='%s', include_ifdepth=%d\n", + pp_status.input, pp_status.line_number, pp_incl_state.state, pp_incl_state.ppp, pp_incl_state.ifdepth); ppy__switch_to_buffer(ppy__create_buffer(ppy_in, YY_BUF_SIZE)); fprintf(ppy_out, "# 1 \"%s\" 1%s\n", newpath, type ? "" : " 3"); diff --git a/reactos/tools/wpp/ppl.l b/reactos/tools/wpp/ppl.l index 58fda7bc30b..e71bf6ecf20 100644 --- a/reactos/tools/wpp/ppl.l +++ b/reactos/tools/wpp/ppl.l @@ -126,7 +126,7 @@ */ %option stack %option 8bit never-interactive -%option nounput +%option noinput nounput %option prefix="ppy_" %x pp_pp @@ -156,12 +156,27 @@ cident [a-zA-Z_][0-9a-zA-Z_]* ul [uUlL]|[uUlL][lL]|[lL][uU]|[lL][lL][uU]|[uU][lL][lL]|[lL][uU][lL] %{ -#include +#include "config.h" +#include "wine/port.h" #include #include #include #include #include +#include +#include + +#ifndef LLONG_MAX +# define LLONG_MAX ((long long)0x7fffffff << 32 | 0xffffffff) +# define LLONG_MIN (-LLONG_MAX - 1) +#endif +#ifndef ULLONG_MAX +# define ULLONG_MAX ((long long)0xffffffff << 32 | 0xffffffff) +#endif + +#ifndef HAVE_UNISTD_H +#define YY_NO_UNISTD_H +#endif #include "wpp_private.h" #include "ppy.tab.h" @@ -200,7 +215,6 @@ typedef struct bufferstackentry { /* Include management */ include_state_t incl; char *include_filename; - int pass_data; } bufferstackentry_t; #define ALLOCBLOCKSIZE (1 << 10) /* Allocate these chunks at a time for string-buffers */ @@ -233,7 +247,6 @@ typedef struct macexpstackentry { static void newline(int); static int make_number(int radix, YYSTYPE *val, const char *str, int len); static void put_buffer(const char *s, int len); -static int is_c_h_include(char *fname, int quoted); /* Buffer management */ static void push_buffer(pp_entry_t *ppp, char *filename, char *incname, int pop); static bufferstackentry_t *pop_buffer(void); @@ -272,8 +285,6 @@ static int macexpstackidx = 0; static bufferstackentry_t bufferstack[MAXBUFFERSTACK]; static int bufferstackidx = 0; -static int pass_data=1; - /* * Global variables */ @@ -559,8 +570,6 @@ includelogicentry_t *pp_includelogiclist = NULL; return tDQSTRING; case pp_line: ppy_lval.cptr = get_string(); - if (is_c_h_include(ppy_lval.cptr, 1)) pass_data=0; - else pass_data=1; return tDQSTRING; default: put_string(); @@ -791,6 +800,7 @@ static int make_number(int radix, YYSTYPE *val, const char *str, int len) int is_ll = 0; int is_u = 0; char ext[4]; + long l; ext[3] = '\0'; ext[2] = toupper(str[len-1]); @@ -828,12 +838,18 @@ static int make_number(int radix, YYSTYPE *val, const char *str, int len) #ifdef HAVE_LONG_LONG if (is_u) { + errno = 0; val->ull = strtoull(str, NULL, radix); + if (val->ull == ULLONG_MAX && errno == ERANGE) + ppy_error("integer constant %s is too large\n", str); return tULONGLONG; } else { + errno = 0; val->sll = strtoll(str, NULL, radix); + if ((val->sll == LLONG_MIN || val->sll == LLONG_MAX) && errno == ERANGE) + ppy_error("integer constant %s is too large\n", str); return tSLONGLONG; } #else @@ -842,22 +858,38 @@ static int make_number(int radix, YYSTYPE *val, const char *str, int len) } else if(is_u && is_l) { + errno = 0; val->ulong = strtoul(str, NULL, radix); + if (val->ulong == ULONG_MAX && errno == ERANGE) + ppy_error("integer constant %s is too large\n", str); return tULONG; } else if(!is_u && is_l) { + errno = 0; val->slong = strtol(str, NULL, radix); + if ((val->slong == LONG_MIN || val->slong == LONG_MAX) && errno == ERANGE) + ppy_error("integer constant %s is too large\n", str); return tSLONG; } else if(is_u && !is_l) { - val->uint = (unsigned int)strtoul(str, NULL, radix); + unsigned long ul; + errno = 0; + ul = strtoul(str, NULL, radix); + if ((ul == ULONG_MAX && errno == ERANGE) || (ul > UINT_MAX)) + ppy_error("integer constant %s is too large\n", str); + val->uint = (unsigned int)ul; return tUINT; } /* Else it must be an int... */ - val->sint = (int)strtol(str, NULL, radix); + errno = 0; + l = strtol(str, NULL, radix); + if (((l == LONG_MIN || l == LONG_MAX) && errno == ERANGE) || + (l > INT_MAX) || (l < INT_MIN)) + ppy_error("integer constant %s is too large\n", str); + val->sint = (int)l; return tSINT; } @@ -1191,7 +1223,6 @@ static void push_buffer(pp_entry_t *ppp, char *filename, char *incname, int pop) bufferstack[bufferstackidx].ncontinuations = ncontinuations; bufferstack[bufferstackidx].incl = pp_incl_state; bufferstack[bufferstackidx].include_filename = incname; - bufferstack[bufferstackidx].pass_data = pass_data; if(ppp) ppp->expanding = 1; @@ -1254,7 +1285,6 @@ static bufferstackentry_t *pop_buffer(void) } free(pp_incl_state.ppp); pp_incl_state = bufferstack[bufferstackidx].incl; - pass_data = bufferstack[bufferstackidx].pass_data; } } @@ -1410,10 +1440,8 @@ static void put_buffer(const char *s, int len) { if(top_macro()) add_text_to_macro(s, len); - else { - if(pass_data) + else fwrite(s, 1, len, ppy_out); - } } @@ -1422,15 +1450,6 @@ static void put_buffer(const char *s, int len) * Include management *------------------------------------------------------------------------- */ -static int is_c_h_include(char *fname, int quoted) -{ - int sl=strlen(fname); - if (sl < 2 + 2 * quoted) return 0; - if ((toupper(fname[sl-1-quoted])!='H') && (toupper(fname[sl-1-quoted])!='C')) return 0; - if (fname[sl-2-quoted]!='.') return 0; - return 1; -} - void pp_do_include(char *fname, int type) { char *newpath; @@ -1466,12 +1485,10 @@ void pp_do_include(char *fname, int type) pp_incl_state.seen_junk = 0; pp_incl_state.state = 0; pp_incl_state.ppp = NULL; - if (is_c_h_include(newpath, 0)) pass_data=0; - else pass_data=1; if(pp_status.debug) - fprintf(stderr, "pp_do_include: %s:%d: include_state=%d, include_ppp='%s', include_ifdepth=%d ,pass_data=%d\n", - pp_status.input, pp_status.line_number, pp_incl_state.state, pp_incl_state.ppp, pp_incl_state.ifdepth, pass_data); + fprintf(stderr, "pp_do_include: %s:%d: include_state=%d, include_ppp='%s', include_ifdepth=%d\n", + pp_status.input, pp_status.line_number, pp_incl_state.state, pp_incl_state.ppp, pp_incl_state.ifdepth); ppy__switch_to_buffer(ppy__create_buffer(ppy_in, YY_BUF_SIZE)); fprintf(ppy_out, "# 1 \"%s\" 1%s\n", newpath, type ? "" : " 3"); diff --git a/reactos/tools/wpp/ppy.tab.c b/reactos/tools/wpp/ppy.tab.c index fab635acf3c..116821d2d35 100644 --- a/reactos/tools/wpp/ppy.tab.c +++ b/reactos/tools/wpp/ppy.tab.c @@ -158,7 +158,7 @@ /* Copy the first part of user declarations. */ -#line 30 "tools\\wpp_new\\ppy.y" +#line 30 "ppy.y" #include "config.h" #include "wine/port.h" @@ -274,7 +274,7 @@ static int nmacro_args; #endif #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 126 "tools\\wpp_new\\ppy.y" +#line 126 "ppy.y" typedef union YYSTYPE { int sint; unsigned int uint; @@ -289,7 +289,7 @@ typedef union YYSTYPE { mtext_t *mtext; } YYSTYPE; /* Line 196 of yacc.c. */ -#line 293 "tools\\wpp_new\\ppy.tab.c" +#line 293 "ppy.tab.c" # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 @@ -301,7 +301,7 @@ typedef union YYSTYPE { /* Line 219 of yacc.c. */ -#line 305 "tools\\wpp_new\\ppy.tab.c" +#line 305 "ppy.tab.c" #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) # define YYSIZE_T __SIZE_TYPE__ @@ -1214,7 +1214,7 @@ yyparse () #endif #endif { - + int yystate; int yyn; int yyresult; @@ -1457,27 +1457,27 @@ yyreduce: switch (yyn) { case 4: -#line 186 "tools\\wpp_new\\ppy.y" +#line 186 "ppy.y" { pp_do_include((yyvsp[-1].cptr), 1); ;} break; case 5: -#line 187 "tools\\wpp_new\\ppy.y" +#line 187 "ppy.y" { pp_do_include((yyvsp[-1].cptr), 0); ;} break; case 6: -#line 188 "tools\\wpp_new\\ppy.y" +#line 188 "ppy.y" { pp_next_if_state(boolean(&(yyvsp[-1].cval))); ;} break; case 7: -#line 189 "tools\\wpp_new\\ppy.y" +#line 189 "ppy.y" { pp_next_if_state(pplookup((yyvsp[-1].cptr)) != NULL); free((yyvsp[-1].cptr)); ;} break; case 8: -#line 190 "tools\\wpp_new\\ppy.y" +#line 190 "ppy.y" { int t = pplookup((yyvsp[-1].cptr)) == NULL; if(pp_incl_state.state == 0 && t && !pp_incl_state.seen_junk) @@ -1501,7 +1501,7 @@ yyreduce: break; case 9: -#line 210 "tools\\wpp_new\\ppy.y" +#line 210 "ppy.y" { pp_if_state_t s = pp_pop_if(); switch(s) @@ -1526,7 +1526,7 @@ yyreduce: break; case 10: -#line 231 "tools\\wpp_new\\ppy.y" +#line 231 "ppy.y" { pp_if_state_t s = pp_pop_if(); switch(s) @@ -1553,7 +1553,7 @@ yyreduce: break; case 11: -#line 254 "tools\\wpp_new\\ppy.y" +#line 254 "ppy.y" { pp_pop_if(); if(pp_incl_state.ifdepth == pp_get_if_depth() && pp_incl_state.state == 1) @@ -1572,74 +1572,74 @@ yyreduce: break; case 12: -#line 269 "tools\\wpp_new\\ppy.y" +#line 269 "ppy.y" { pp_del_define((yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); ;} break; case 13: -#line 270 "tools\\wpp_new\\ppy.y" +#line 270 "ppy.y" { pp_add_define((yyvsp[-2].cptr), (yyvsp[-1].cptr)); ;} break; case 14: -#line 271 "tools\\wpp_new\\ppy.y" +#line 271 "ppy.y" { pp_add_macro((yyvsp[-5].cptr), macro_args, nmacro_args, (yyvsp[-1].mtext)); ;} break; case 15: -#line 274 "tools\\wpp_new\\ppy.y" +#line 274 "ppy.y" { fprintf(ppy_out, "# %d %s\n", (yyvsp[-2].sint) , (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); ;} break; case 16: -#line 275 "tools\\wpp_new\\ppy.y" +#line 275 "ppy.y" { fprintf(ppy_out, "# %d %s\n", (yyvsp[-2].sint) , (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); ;} break; case 17: -#line 277 "tools\\wpp_new\\ppy.y" +#line 277 "ppy.y" { fprintf(ppy_out, "# %d %s %d\n", (yyvsp[-3].sint), (yyvsp[-2].cptr), (yyvsp[-1].sint)); free((yyvsp[-2].cptr)); ;} break; case 18: -#line 279 "tools\\wpp_new\\ppy.y" +#line 279 "ppy.y" { fprintf(ppy_out, "# %d %s %d %d\n", (yyvsp[-4].sint) ,(yyvsp[-3].cptr), (yyvsp[-2].sint), (yyvsp[-1].sint)); free((yyvsp[-3].cptr)); ;} break; case 19: -#line 281 "tools\\wpp_new\\ppy.y" +#line 281 "ppy.y" { fprintf(ppy_out, "# %d %s %d %d %d\n", (yyvsp[-5].sint) ,(yyvsp[-4].cptr) ,(yyvsp[-3].sint) ,(yyvsp[-2].sint), (yyvsp[-1].sint)); free((yyvsp[-4].cptr)); ;} break; case 20: -#line 283 "tools\\wpp_new\\ppy.y" +#line 283 "ppy.y" { fprintf(ppy_out, "# %d %s %d %d %d %d\n", (yyvsp[-6].sint) ,(yyvsp[-5].cptr) ,(yyvsp[-4].sint) ,(yyvsp[-3].sint), (yyvsp[-2].sint), (yyvsp[-1].sint)); free((yyvsp[-5].cptr)); ;} break; case 22: -#line 285 "tools\\wpp_new\\ppy.y" - { ppy_error("#error directive: '%s'", (yyvsp[-1].cptr)); if((yyvsp[-1].cptr)) free((yyvsp[-1].cptr)); ;} +#line 285 "ppy.y" + { ppy_error("#error directive: '%s'", (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); ;} break; case 23: -#line 286 "tools\\wpp_new\\ppy.y" - { ppy_warning("#warning directive: '%s'", (yyvsp[-1].cptr)); if((yyvsp[-1].cptr)) free((yyvsp[-1].cptr)); ;} +#line 286 "ppy.y" + { ppy_warning("#warning directive: '%s'", (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); ;} break; case 24: -#line 287 "tools\\wpp_new\\ppy.y" - { fprintf(ppy_out, "#pragma %s\n", (yyvsp[-1].cptr) ? (yyvsp[-1].cptr) : ""); if ((yyvsp[-1].cptr)) free((yyvsp[-1].cptr)); ;} +#line 287 "ppy.y" + { fprintf(ppy_out, "#pragma %s\n", (yyvsp[-1].cptr) ? (yyvsp[-1].cptr) : ""); free((yyvsp[-1].cptr)); ;} break; case 25: -#line 288 "tools\\wpp_new\\ppy.y" - { if(pp_status.pedantic) ppy_warning("#ident ignored (arg: '%s')", (yyvsp[-1].cptr)); if((yyvsp[-1].cptr)) free((yyvsp[-1].cptr)); ;} +#line 288 "ppy.y" + { if(pp_status.pedantic) ppy_warning("#ident ignored (arg: '%s')", (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); ;} break; case 26: -#line 289 "tools\\wpp_new\\ppy.y" +#line 289 "ppy.y" { int nl=strlen((yyvsp[0].cptr)) +3; char *fn=pp_xmalloc(nl); @@ -1650,94 +1650,94 @@ yyreduce: break; case 27: -#line 296 "tools\\wpp_new\\ppy.y" +#line 296 "ppy.y" { pp_do_include((yyvsp[0].cptr),1); ;} break; case 28: -#line 302 "tools\\wpp_new\\ppy.y" +#line 302 "ppy.y" { (yyval.cptr) = NULL; ;} break; case 29: -#line 303 "tools\\wpp_new\\ppy.y" +#line 303 "ppy.y" { (yyval.cptr) = (yyvsp[0].cptr); ;} break; case 30: -#line 306 "tools\\wpp_new\\ppy.y" +#line 306 "ppy.y" { (yyval.cptr) = (yyvsp[0].cptr); ;} break; case 31: -#line 307 "tools\\wpp_new\\ppy.y" +#line 307 "ppy.y" { (yyval.cptr) = (yyvsp[0].cptr); ;} break; case 32: -#line 308 "tools\\wpp_new\\ppy.y" +#line 308 "ppy.y" { (yyval.cptr) = (yyvsp[0].cptr); ;} break; case 33: -#line 309 "tools\\wpp_new\\ppy.y" +#line 309 "ppy.y" { (yyval.cptr) = merge_text((yyvsp[-1].cptr), (yyvsp[0].cptr)); ;} break; case 34: -#line 310 "tools\\wpp_new\\ppy.y" +#line 310 "ppy.y" { (yyval.cptr) = merge_text((yyvsp[-1].cptr), (yyvsp[0].cptr)); ;} break; case 35: -#line 311 "tools\\wpp_new\\ppy.y" +#line 311 "ppy.y" { (yyval.cptr) = merge_text((yyvsp[-1].cptr), (yyvsp[0].cptr)); ;} break; case 36: -#line 314 "tools\\wpp_new\\ppy.y" +#line 314 "ppy.y" { macro_args = NULL; nmacro_args = 0; ;} break; case 37: -#line 317 "tools\\wpp_new\\ppy.y" +#line 317 "ppy.y" { (yyval.sint) = 0; macro_args = NULL; nmacro_args = 0; ;} break; case 38: -#line 318 "tools\\wpp_new\\ppy.y" +#line 318 "ppy.y" { (yyval.sint) = nmacro_args; ;} break; case 39: -#line 321 "tools\\wpp_new\\ppy.y" +#line 321 "ppy.y" { (yyval.marg) = (yyvsp[0].marg); ;} break; case 40: -#line 322 "tools\\wpp_new\\ppy.y" +#line 322 "ppy.y" { (yyval.marg) = add_new_marg(NULL, arg_list); nmacro_args *= -1; ;} break; case 41: -#line 325 "tools\\wpp_new\\ppy.y" +#line 325 "ppy.y" { (yyval.marg) = add_new_marg((yyvsp[0].cptr), arg_single); ;} break; case 42: -#line 326 "tools\\wpp_new\\ppy.y" +#line 326 "ppy.y" { (yyval.marg) = add_new_marg((yyvsp[0].cptr), arg_single); ;} break; case 43: -#line 330 "tools\\wpp_new\\ppy.y" +#line 330 "ppy.y" { (yyval.mtext) = NULL; ;} break; case 44: -#line 331 "tools\\wpp_new\\ppy.y" +#line 331 "ppy.y" { for((yyval.mtext) = (yyvsp[0].mtext); (yyval.mtext) && (yyval.mtext)->prev; (yyval.mtext) = (yyval.mtext)->prev) ; @@ -1745,37 +1745,37 @@ yyreduce: break; case 45: -#line 337 "tools\\wpp_new\\ppy.y" +#line 337 "ppy.y" { (yyval.mtext) = (yyvsp[0].mtext); ;} break; case 46: -#line 338 "tools\\wpp_new\\ppy.y" +#line 338 "ppy.y" { (yyval.mtext) = combine_mtext((yyvsp[-1].mtext), (yyvsp[0].mtext)); ;} break; case 47: -#line 341 "tools\\wpp_new\\ppy.y" +#line 341 "ppy.y" { (yyval.mtext) = new_mtext((yyvsp[0].cptr), 0, exp_text); ;} break; case 48: -#line 342 "tools\\wpp_new\\ppy.y" +#line 342 "ppy.y" { (yyval.mtext) = new_mtext((yyvsp[0].cptr), 0, exp_text); ;} break; case 49: -#line 343 "tools\\wpp_new\\ppy.y" +#line 343 "ppy.y" { (yyval.mtext) = new_mtext((yyvsp[0].cptr), 0, exp_text); ;} break; case 50: -#line 344 "tools\\wpp_new\\ppy.y" +#line 344 "ppy.y" { (yyval.mtext) = new_mtext(NULL, 0, exp_concat); ;} break; case 51: -#line 345 "tools\\wpp_new\\ppy.y" +#line 345 "ppy.y" { int mat = marg_index((yyvsp[0].cptr)); if(mat < 0) @@ -1785,7 +1785,7 @@ yyreduce: break; case 52: -#line 351 "tools\\wpp_new\\ppy.y" +#line 351 "ppy.y" { int mat = marg_index((yyvsp[0].cptr)); if(mat >= 0) @@ -1796,162 +1796,162 @@ yyreduce: break; case 53: -#line 360 "tools\\wpp_new\\ppy.y" +#line 360 "ppy.y" { (yyval.cval).type = cv_sint; (yyval.cval).val.si = (yyvsp[0].sint); ;} break; case 54: -#line 361 "tools\\wpp_new\\ppy.y" +#line 361 "ppy.y" { (yyval.cval).type = cv_uint; (yyval.cval).val.ui = (yyvsp[0].uint); ;} break; case 55: -#line 362 "tools\\wpp_new\\ppy.y" +#line 362 "ppy.y" { (yyval.cval).type = cv_slong; (yyval.cval).val.sl = (yyvsp[0].slong); ;} break; case 56: -#line 363 "tools\\wpp_new\\ppy.y" +#line 363 "ppy.y" { (yyval.cval).type = cv_ulong; (yyval.cval).val.ul = (yyvsp[0].ulong); ;} break; case 57: -#line 364 "tools\\wpp_new\\ppy.y" +#line 364 "ppy.y" { (yyval.cval).type = cv_sll; (yyval.cval).val.sll = (yyvsp[0].sll); ;} break; case 58: -#line 365 "tools\\wpp_new\\ppy.y" +#line 365 "ppy.y" { (yyval.cval).type = cv_ull; (yyval.cval).val.ull = (yyvsp[0].ull); ;} break; case 59: -#line 366 "tools\\wpp_new\\ppy.y" +#line 366 "ppy.y" { (yyval.cval).type = cv_sint; (yyval.cval).val.si = pplookup((yyvsp[0].cptr)) != NULL; ;} break; case 60: -#line 367 "tools\\wpp_new\\ppy.y" +#line 367 "ppy.y" { (yyval.cval).type = cv_sint; (yyval.cval).val.si = pplookup((yyvsp[-1].cptr)) != NULL; ;} break; case 61: -#line 368 "tools\\wpp_new\\ppy.y" +#line 368 "ppy.y" { (yyval.cval).type = cv_sint; (yyval.cval).val.si = 0; ;} break; case 62: -#line 369 "tools\\wpp_new\\ppy.y" +#line 369 "ppy.y" { (yyval.cval).type = cv_sint; (yyval.cval).val.si = boolean(&(yyvsp[-2].cval)) || boolean(&(yyvsp[0].cval)); ;} break; case 63: -#line 370 "tools\\wpp_new\\ppy.y" +#line 370 "ppy.y" { (yyval.cval).type = cv_sint; (yyval.cval).val.si = boolean(&(yyvsp[-2].cval)) && boolean(&(yyvsp[0].cval)); ;} break; case 64: -#line 371 "tools\\wpp_new\\ppy.y" +#line 371 "ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), ==) ;} break; case 65: -#line 372 "tools\\wpp_new\\ppy.y" +#line 372 "ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), !=) ;} break; case 66: -#line 373 "tools\\wpp_new\\ppy.y" +#line 373 "ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), <) ;} break; case 67: -#line 374 "tools\\wpp_new\\ppy.y" +#line 374 "ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), >) ;} break; case 68: -#line 375 "tools\\wpp_new\\ppy.y" +#line 375 "ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), <=) ;} break; case 69: -#line 376 "tools\\wpp_new\\ppy.y" +#line 376 "ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), >=) ;} break; case 70: -#line 377 "tools\\wpp_new\\ppy.y" +#line 377 "ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), +) ;} break; case 71: -#line 378 "tools\\wpp_new\\ppy.y" +#line 378 "ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), -) ;} break; case 72: -#line 379 "tools\\wpp_new\\ppy.y" +#line 379 "ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), ^) ;} break; case 73: -#line 380 "tools\\wpp_new\\ppy.y" +#line 380 "ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), &) ;} break; case 74: -#line 381 "tools\\wpp_new\\ppy.y" +#line 381 "ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), |) ;} break; case 75: -#line 382 "tools\\wpp_new\\ppy.y" +#line 382 "ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), *) ;} break; case 76: -#line 383 "tools\\wpp_new\\ppy.y" +#line 383 "ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), /) ;} break; case 77: -#line 384 "tools\\wpp_new\\ppy.y" +#line 384 "ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), <<) ;} break; case 78: -#line 385 "tools\\wpp_new\\ppy.y" +#line 385 "ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), >>) ;} break; case 79: -#line 386 "tools\\wpp_new\\ppy.y" +#line 386 "ppy.y" { (yyval.cval) = (yyvsp[0].cval); ;} break; case 80: -#line 387 "tools\\wpp_new\\ppy.y" +#line 387 "ppy.y" { UNARY_OP((yyval.cval), (yyvsp[0].cval), -) ;} break; case 81: -#line 388 "tools\\wpp_new\\ppy.y" +#line 388 "ppy.y" { UNARY_OP((yyval.cval), (yyvsp[0].cval), ~) ;} break; case 82: -#line 389 "tools\\wpp_new\\ppy.y" +#line 389 "ppy.y" { (yyval.cval).type = cv_sint; (yyval.cval).val.si = !boolean(&(yyvsp[0].cval)); ;} break; case 83: -#line 390 "tools\\wpp_new\\ppy.y" +#line 390 "ppy.y" { (yyval.cval) = (yyvsp[-1].cval); ;} break; case 84: -#line 391 "tools\\wpp_new\\ppy.y" +#line 391 "ppy.y" { (yyval.cval) = boolean(&(yyvsp[-4].cval)) ? (yyvsp[-2].cval) : (yyvsp[0].cval); ;} break; @@ -1960,7 +1960,7 @@ yyreduce: } /* Line 1126 of yacc.c. */ -#line 1964 "tools\\wpp_new\\ppy.tab.c" +#line 1964 "ppy.tab.c" yyvsp -= yylen; yyssp -= yylen; @@ -2228,7 +2228,7 @@ yyreturn: } -#line 394 "tools\\wpp_new\\ppy.y" +#line 394 "ppy.y" /* diff --git a/reactos/tools/wpp/ppy.tab.h b/reactos/tools/wpp/ppy.tab.h index d152cc64534..4a503f1a1f1 100644 --- a/reactos/tools/wpp/ppy.tab.h +++ b/reactos/tools/wpp/ppy.tab.h @@ -123,7 +123,7 @@ #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 126 "tools\\wpp_new\\ppy.y" +#line 126 "ppy.y" typedef union YYSTYPE { int sint; unsigned int uint; @@ -138,7 +138,7 @@ typedef union YYSTYPE { mtext_t *mtext; } YYSTYPE; /* Line 1447 of yacc.c. */ -#line 142 "tools\\wpp_new\\ppy.tab.h" +#line 142 "ppy.tab.h" # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 diff --git a/reactos/tools/wpp/ppy.y b/reactos/tools/wpp/ppy.y index 3209ee2cc36..fc94bb54aca 100644 --- a/reactos/tools/wpp/ppy.y +++ b/reactos/tools/wpp/ppy.y @@ -282,10 +282,10 @@ preprocessor | tGCCLINE tSINT tDQSTRING tSINT tSINT tSINT tSINT tNL { fprintf(ppy_out, "# %d %s %d %d %d %d\n", $2 ,$3 ,$4 ,$5, $6, $7); free($3); } | tGCCLINE tNL /* The null-token */ - | tERROR opt_text tNL { ppy_error("#error directive: '%s'", $2); if($2) free($2); } - | tWARNING opt_text tNL { ppy_warning("#warning directive: '%s'", $2); if($2) free($2); } - | tPRAGMA opt_text tNL { fprintf(ppy_out, "#pragma %s\n", $2 ? $2 : ""); if ($2) free($2); } - | tPPIDENT opt_text tNL { if(pp_status.pedantic) ppy_warning("#ident ignored (arg: '%s')", $2); if($2) free($2); } + | tERROR opt_text tNL { ppy_error("#error directive: '%s'", $2); free($2); } + | tWARNING opt_text tNL { ppy_warning("#warning directive: '%s'", $2); free($2); } + | tPRAGMA opt_text tNL { fprintf(ppy_out, "#pragma %s\n", $2 ? $2 : ""); free($2); } + | tPPIDENT opt_text tNL { if(pp_status.pedantic) ppy_warning("#ident ignored (arg: '%s')", $2); free($2); } | tRCINCLUDE tRCINCLUDEPATH { int nl=strlen($2) +3; char *fn=pp_xmalloc(nl); diff --git a/reactos/tools/wpp/wpp.c b/reactos/tools/wpp/wpp.c index 7b87c367c15..d149591f790 100644 --- a/reactos/tools/wpp/wpp.c +++ b/reactos/tools/wpp/wpp.c @@ -1,7 +1,7 @@ /* * Exported functions of the Wine preprocessor * - * Copyrignt 1998 Bertho A. Stultiens + * Copyright 1998 Bertho A. Stultiens * Copyright 2002 Alexandre Julliard * * This library is free software; you can redistribute it and/or diff --git a/reactos/tools/wpp/wpp_private.h b/reactos/tools/wpp/wpp_private.h index ff0fae7a2f5..24ed6b844b5 100644 --- a/reactos/tools/wpp/wpp_private.h +++ b/reactos/tools/wpp/wpp_private.h @@ -181,7 +181,7 @@ typedef struct cval { ctype_t type; union { #if 0 - signed char sc; /* Explicitely signed because compilers are stupid */ + signed char sc; /* Explicitly signed because compilers are stupid */ unsigned char uc; short ss; unsigned short us;