Jacek Caban : wrc: Allow '/' and '\' in identifiers.
Module: wine Branch: master Commit: 0da8be91ef67284de63b90001d62adf7776d27bc URL: http://source.winehq.org/git/wine.git/?a=commit;h=0da8be91ef67284de63b90001d... Author: Jacek Caban <jacek(a)codeweavers.com> Date: Tue Apr 23 14:13:58 2013 +0200 wrc: Allow '/' and '\' in identifiers. --- tools/wrc/parser.l | 10 +--------- tools/wrc/parser.y | 5 ++--- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/tools/wrc/parser.l b/tools/wrc/parser.l index cf16ccc..8c50a8a 100644 --- a/tools/wrc/parser.l +++ b/tools/wrc/parser.l @@ -404,14 +404,7 @@ static unsigned long xstrtoul(const char *nptr, char **endptr, int base) 0[oO][0-7]+[lL]? { parser_lval.num = xstrtoul(yytext+2, 0, 8); return (yytext[yyleng-1] == 'L' || yytext[yyleng-1] == 'l') ? tLNUMBER : tNUMBER; } - /* - * The next two rules scan identifiers and filenames. - * This is achieved by using the priority ruling - * of the scanner where a '.' is valid in a filename - * and *only* in a filename. In this case, the second - * rule will be reduced because it is longer. - */ -[A-Za-z_0-9.]+ { +[A-Za-z_0-9./\\]+ { struct keyword *tok = iskeyword(yytext); if(tok) @@ -430,7 +423,6 @@ static unsigned long xstrtoul(const char *nptr, char **endptr, int base) return tIDENT; } } -[A-Za-z_0-9./\\]+ parser_lval.str = make_string(yytext); return tFILENAME; /* * Wide string scanning diff --git a/tools/wrc/parser.y b/tools/wrc/parser.y index 4cc37ac..ad5fb98 100644 --- a/tools/wrc/parser.y +++ b/tools/wrc/parser.y @@ -268,7 +268,7 @@ static int rsrcid_to_token(int lookahead); %token tNL %token <num> tNUMBER tLNUMBER -%token <str> tSTRING tIDENT tFILENAME +%token <str> tSTRING tIDENT %token <raw> tRAWDATA %token tACCELERATORS tBITMAP tCURSOR tDIALOG tDIALOGEX tMENU tMENUEX tMESSAGETABLE %token tRCDATA tVERSIONINFO tSTRINGTABLE tFONT tFONTDIR tICON tHTML @@ -647,8 +647,7 @@ resource_definition ; -filename: tFILENAME { $$ = make_filename($1); } - | tIDENT { $$ = make_filename($1); } +filename: tIDENT { $$ = make_filename($1); } | tSTRING { $$ = make_filename($1); } ;
participants (1)
-
Alexandre Julliard