Ignore:
Timestamp:
Apr 19, 2000, 4:46:07 PM (25 years ago)
Author:
sandervl
Message:

update with latest wine code

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/wrc/parser.l

    r882 r3426  
    7676%x pp_false
    7777/* Set when stripping c-junk */
     78%x pp_stripe
    7879%x pp_strips
    7980%x pp_stripp
     
    135136static int want_nl = 0;         /* Set when newline needs to go to parser */
    136137static int want_ident = 0;      /* Set is #ifdef, #ifndef or defined is seen */
    137 static int stripslevel = 0;     /* Count {} during pp_strips mode */
     138static int stripslevel = 0;     /* Count {} during pp_strips/pp_stripe mode */
    138139static int stripplevel = 0;     /* Count () during pp_strips mode */
    139140static char *substtext = NULL;  /* Holds the substition text while getting a define */
     
    455456
    456457        /* Conditional handling */
    457 <INITIAL,pp_strips,pp_stripp,pp_false>^{ws}*#{ws}*if{ws}*       {
     458<INITIAL,pp_strips,pp_stripe,pp_stripp,pp_false>^{ws}*#{ws}*if{ws}*     {
    458459                        if(YY_START == pp_false)
    459460                        {
     
    470471                        }
    471472                }
    472 <INITIAL,pp_strips,pp_stripp,pp_false>^{ws}*#{ws}*ifdef{ws}*    {
     473<INITIAL,pp_strips,pp_stripe,pp_stripp,pp_false>^{ws}*#{ws}*ifdef{ws}*  {
    473474                        if(YY_START == pp_false)
    474475                        {
     
    486487                        }
    487488                }
    488 <INITIAL,pp_strips,pp_stripp,pp_false>^{ws}*#{ws}*ifndef{ws}*   {
     489<INITIAL,pp_strips,pp_stripe,pp_stripp,pp_false>^{ws}*#{ws}*ifndef{ws}* {
    489490                        if(YY_START == pp_false)
    490491                        {
     
    502503                        }
    503504                }
    504 <INITIAL,pp_strips,pp_stripp,pp_false>^{ws}*#{ws}*elif{ws}*     {
     505<INITIAL,pp_strips,pp_stripe,pp_stripp,pp_false>^{ws}*#{ws}*elif{ws}*   {
    505506                        if(!isnevertrue_if())
    506507                        {
     
    514515                                printf("(%d)#elif ignored\n", line_number);
    515516                }
    516 <INITIAL,pp_strips,pp_stripp,pp_false>^{ws}*#{ws}*else{ws}*     {
     517<INITIAL,pp_strips,pp_stripe,pp_stripp,pp_false>^{ws}*#{ws}*else{ws}*   {
    517518                        if(!isnevertrue_if())
    518519                        {
     
    524525                                printf("(%d)#else ignored\n", line_number);
    525526                }
    526 <INITIAL,pp_strips,pp_stripp,pp_false>^{ws}*#{ws}*endif{ws}*    {
     527<INITIAL,pp_strips,pp_stripe,pp_stripp,pp_false>^{ws}*#{ws}*endif{ws}*  {
    527528                        if(!isnevertrue_if())
    528529                        {
     
    539540
    540541        /* The error directive */
    541 ^{ws}*#{ws}*error{ws}*  push_to(pp_error);
    542 <pp_error>[^\n]*        yyerror("Error directive: %s", yytext);
     542<INITIAL,pp_strips,pp_stripe,pp_stripp>^{ws}*#{ws}*error{ws}*   push_to(pp_error);
     543<pp_error>[^\n]*        yyerror("Error directive: %s", yytext);
     544<pp_false>^{ws}*#{ws}*error[^\n]* {
     545                        if(yydebug)
     546                                printf("(%d)#error ignored\n", line_number);
     547                }
    543548
    544549        /* preprocessor junk */
    545 ^{ws}*#{ws}*pragma[^\n]*        ;       /* Ignore #pragma */
    546 ^{ws}*#{ws}*line[^\n]*          ;       /* Ignore #line */
     550<INITIAL,pp_strips,pp_stripe,pp_stripp,pp_false>^{ws}*#{ws}*pragma[^\n]*        ;       /* Ignore #pragma */
     551<INITIAL,pp_strips,pp_stripe,pp_stripp,pp_false>^{ws}*#{ws}*ident[^\n]*         ;       /* Ignore #ident */
     552<INITIAL,pp_strips,pp_stripe,pp_stripp,pp_false>^{ws}*#{ws}*line[^\n]*          ;       /* Ignore #line */
    547553 /* We'll get an error on malformed #xxx statements
    548554  * by not recognising '#' at all. This helps tracking
     
    556562<pp_strips>\/[^*\n]             ; /* To catch comments */
    557563<pp_strips>[^\{\};\n#/]*        ; /* Ignore rest */
     564
     565<pp_stripe>\{           stripslevel++;
     566<pp_stripe>\}   {
     567                        stripslevel--;
     568                        if(!stripslevel) pop_start();
     569                }
     570<pp_stripe>;            if(!stripslevel) pop_start();
     571<pp_stripe>\/[^*\n]             ; /* To catch comments */
     572<pp_stripe>[^\{\};\n#/]*        ; /* Ignore rest */
    558573
    559574<pp_stripp>\(           stripplevel++;
     
    758773<yystr>\\\"\"           addcchar('\"');         /* "bla\""bla"  -> "bla\"bla" */
    759774<yystr>\"{ws}+\"        ;                       /* "bla" "bla"  -> "blabla" */
    760 <yystr>.                yywarning("Matched %c");
     775<yystr>.                yywarning("Matched %c", *yytext);
    761776
    762777
     
    782797<yyrcd>.                yyerror("Malformed data-line");
    783798
    784 <INITIAL,pp_ignore,pp_def_s,pp_strips,pp_stripp>"/*"    push_to(comment);       /* Eat comment */
     799<INITIAL,pp_ignore,pp_def_s,pp_strips,pp_stripe,pp_stripp>"/*"  push_to(comment);       /* Eat comment */
    785800<comment>[^*\n]*        ;
    786801<comment>"*"+[^*/\n]*   ;
     
    791806<INITIAL,pp_ignore,pp_def_s>"//"[^\n]*          ; /* Eat comment */
    792807
    793 <INITIAL,yywf,pp_false,pp_strips,pp_stripp>\n   {
     808<INITIAL,yywf,pp_false,pp_strips,pp_stripe,pp_stripp>\n {
    794809                                if(YY_START == yywf)
    795810                                        pop_start();
     
    809824                                if(!pop_buffer())
    810825                                {
    811                                         if(YY_START == pp_strips || YY_START == pp_stripp || YY_START == pp_stripp_final)
     826                                        if(YY_START == pp_strips || YY_START == pp_stripe || YY_START == pp_stripp || YY_START == pp_stripp_final)
    812827                                                yyerror("Unexpected end of file during c-junk scanning (started at %d)", cjunk_tagline);
    813828                                        else
     
    824839                                        char_number = 1;
    825840                                }
    826                                 yywarning("Unmatched text '%c' (0x%02x) YY_START=%d",
    827                                         isprint(*yytext) ? *yytext : '.', *yytext, YY_START);
     841                                yywarning("Unmatched text '%c' (0x%02x) YY_START=%d stripslevel=%d",
     842                                        isprint(*yytext) ? *yytext : '.', *yytext, YY_START,stripslevel);
    828843                        }
    829844
     
    959974
    960975/* Called from the parser to kill c-junk */
     976void strip_extern(void)
     977{
     978        cjunk_tagline = line_number;
     979        push_to(pp_stripe);
     980}
     981
    961982void strip_til_semicolon(void)
    962983{
     
    972993}
    973994
    974 
Note: See TracChangeset for help on using the changeset viewer.