Module: wine Branch: refs/heads/master Commit: 69dcbaaf93a65820a28fe2485b6d15a90f423899 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=69dcbaaf93a65820a28fe248... Author: Mike McCormack <mike(a)codeweavers.com> Date: Mon Mar 6 21:41:00 2006 +0900 wrc: Don't use identifiers starting yy*, they're reserved for flex. --- tools/wrc/parser.l | 106 ++++++++++++++++++++++++++-------------------------- 1 files changed, 53 insertions(+), 53 deletions(-) diff --git a/tools/wrc/parser.l b/tools/wrc/parser.l index aea3fb8..9ad1751 100644 --- a/tools/wrc/parser.l +++ b/tools/wrc/parser.l @@ -68,11 +68,11 @@ */ /* Exclusive string handling */ -%x yystr +%x tkstr /* Exclusive unicode string handling */ -%x yylstr +%x tklstr /* Exclusive rcdata single quoted data handling */ -%x yyrcd +%x tkrcd /* Exclusive comment eating... */ %x comment /* Set when stripping c-junk */ @@ -428,102 +428,102 @@ static struct keyword *iskeyword(char *k * Wide string scanning */ L\" { - yy_push_state(yylstr); + yy_push_state(tklstr); wbufidx = 0; if(!win32) yywarning("16bit resource contains unicode strings\n"); } -<yylstr>\"{ws}+ | -<yylstr>\" { +<tklstr>\"{ws}+ | +<tklstr>\" { yy_pop_state(); yylval.str = get_buffered_wstring(); return tSTRING; } -<yylstr>\\[0-7]{1,6} { /* octal escape sequence */ +<tklstr>\\[0-7]{1,6} { /* octal escape sequence */ unsigned int result; result = strtoul(yytext+1, 0, 8); if ( result > 0xffff ) yyerror("Character constant out of range"); addwchar((WCHAR)result); } -<yylstr>\\x[0-9a-fA-F]{4} { /* hex escape sequence */ +<tklstr>\\x[0-9a-fA-F]{4} { /* hex escape sequence */ unsigned int result; result = strtoul(yytext+2, 0, 16); addwchar((WCHAR)result); } -<yylstr>\\x[0-9a-fA-F]{1,3} { yyerror("Invalid hex escape sequence '%s'", yytext); } +<tklstr>\\x[0-9a-fA-F]{1,3} { yyerror("Invalid hex escape sequence '%s'", yytext); } -<yylstr>\\[0-9]+ yyerror("Bad escape sequence"); -<yylstr>\\\n{ws}* line_number++; char_number = 1; /* backslash at EOL continues string after leading whitespace on next line */ -<yylstr>\\a addwchar('\a'); -<yylstr>\\b addwchar('\b'); -<yylstr>\\f addwchar('\f'); -<yylstr>\\n addwchar('\n'); -<yylstr>\\r addwchar('\r'); -<yylstr>\\t addwchar('\t'); -<yylstr>\\v addwchar('\v'); -<yylstr>\\. addwchar(yytext[1]); -<yylstr>\\\r\n addwchar(yytext[2]); line_number++; char_number = 1; -<yylstr>\"\" addwchar('\"'); /* "bla""bla" -> "bla\"bla" */ -<yylstr>\\\"\" addwchar('\"'); /* "bla\""bla" -> "bla\"bla" */ -<yylstr>\"{ws}+\" ; /* "bla" "bla" -> "blabla" */ -<yylstr>[^\\\n\"]+ { +<tklstr>\\[0-9]+ yyerror("Bad escape sequence"); +<tklstr>\\\n{ws}* line_number++; char_number = 1; /* backslash at EOL continues string after leading whitespace on next line */ +<tklstr>\\a addwchar('\a'); +<tklstr>\\b addwchar('\b'); +<tklstr>\\f addwchar('\f'); +<tklstr>\\n addwchar('\n'); +<tklstr>\\r addwchar('\r'); +<tklstr>\\t addwchar('\t'); +<tklstr>\\v addwchar('\v'); +<tklstr>\\. addwchar(yytext[1]); +<tklstr>\\\r\n addwchar(yytext[2]); line_number++; char_number = 1; +<tklstr>\"\" addwchar('\"'); /* "bla""bla" -> "bla\"bla" */ +<tklstr>\\\"\" addwchar('\"'); /* "bla\""bla" -> "bla\"bla" */ +<tklstr>\"{ws}+\" ; /* "bla" "bla" -> "blabla" */ +<tklstr>[^\\\n\"]+ { char *yptr = yytext; while(*yptr) /* FIXME: codepage translation */ addwchar(*yptr++ & 0xff); } -<yylstr>\n yyerror("Unterminated string"); +<tklstr>\n yyerror("Unterminated string"); /* * Normal string scanning */ -\" yy_push_state(yystr); cbufidx = 0; -<yystr>\"{ws}+ | -<yystr>\" { +\" yy_push_state(tkstr); cbufidx = 0; +<tkstr>\"{ws}+ | +<tkstr>\" { yy_pop_state(); yylval.str = get_buffered_cstring(); return tSTRING; } -<yystr>\\[0-7]{1,3} { /* octal escape sequence */ +<tkstr>\\[0-7]{1,3} { /* octal escape sequence */ int result; result = strtol(yytext+1, 0, 8); if ( result > 0xff ) yyerror("Character constant out of range"); addcchar((char)result); } -<yystr>\\x[0-9a-fA-F]{2} { /* hex escape sequence */ +<tkstr>\\x[0-9a-fA-F]{2} { /* hex escape sequence */ int result; result = strtol(yytext+2, 0, 16); addcchar((char)result); } -<yystr>\\x[0-9a-fA-F] { yyerror("Invalid hex escape sequence '%s'", yytext); } +<tkstr>\\x[0-9a-fA-F] { yyerror("Invalid hex escape sequence '%s'", yytext); } -<yystr>\\[0-9]+ yyerror("Bad escape sequence"); -<yystr>\\\n{ws}* line_number++; char_number = 1; /* backslash at EOL continues string after leading whitespace on next line */ -<yystr>\\a addcchar('\a'); -<yystr>\\b addcchar('\b'); -<yystr>\\f addcchar('\f'); -<yystr>\\n addcchar('\n'); -<yystr>\\r addcchar('\r'); -<yystr>\\t addcchar('\t'); -<yystr>\\v addcchar('\v'); -<yystr>\\. addcchar(yytext[1]); -<yystr>\\\r\n addcchar(yytext[2]); line_number++; char_number = 1; -<yystr>[^\\\n\"]+ { +<tkstr>\\[0-9]+ yyerror("Bad escape sequence"); +<tkstr>\\\n{ws}* line_number++; char_number = 1; /* backslash at EOL continues string after leading whitespace on next line */ +<tkstr>\\a addcchar('\a'); +<tkstr>\\b addcchar('\b'); +<tkstr>\\f addcchar('\f'); +<tkstr>\\n addcchar('\n'); +<tkstr>\\r addcchar('\r'); +<tkstr>\\t addcchar('\t'); +<tkstr>\\v addcchar('\v'); +<tkstr>\\. addcchar(yytext[1]); +<tkstr>\\\r\n addcchar(yytext[2]); line_number++; char_number = 1; +<tkstr>[^\\\n\"]+ { char *yptr = yytext; while(*yptr) addcchar(*yptr++); } -<yystr>\"\" addcchar('\"'); /* "bla""bla" -> "bla\"bla" */ -<yystr>\\\"\" addcchar('\"'); /* "bla\""bla" -> "bla\"bla" */ -<yystr>\"{ws}+\" ; /* "bla" "bla" -> "blabla" */ -<yystr>\n yyerror("Unterminated string"); +<tkstr>\"\" addcchar('\"'); /* "bla""bla" -> "bla\"bla" */ +<tkstr>\\\"\" addcchar('\"'); /* "bla\""bla" -> "bla\"bla" */ +<tkstr>\"{ws}+\" ; /* "bla" "bla" -> "blabla" */ +<tkstr>\n yyerror("Unterminated string"); /* * Raw data scanning */ -\' yy_push_state(yyrcd); cbufidx = 0; -<yyrcd>\' { +\' yy_push_state(tkrcd); cbufidx = 0; +<tkrcd>\' { yy_pop_state(); yylval.raw = new_raw_data(); yylval.raw->size = cbufidx; @@ -531,14 +531,14 @@ L\" { memcpy(yylval.raw->data, cbuffer, yylval.raw->size); return tRAWDATA; } -<yyrcd>[0-9a-fA-F]{2} { +<tkrcd>[0-9a-fA-F]{2} { int result; result = strtol(yytext, 0, 16); addcchar((char)result); } -<yyrcd>{ws}+ ; /* Ignore space */ -<yyrcd>\n line_number++; char_number = 1; -<yyrcd>. yyerror("Malformed data-line"); +<tkrcd>{ws}+ ; /* Ignore space */ +<tkrcd>\n line_number++; char_number = 1; +<tkrcd>. yyerror("Malformed data-line"); /* * Comment stripping