Made case requirements less strict (you can now have "control" as well as "Control") and added True/False grammar rules for parameters.

This commit is contained in:
Marius Nita 2002-08-26 06:38:02 +00:00
parent 11e643f4b8
commit 483b8496d6
2 changed files with 13 additions and 1 deletions

View file

@ -16,11 +16,21 @@ extern YYSTYPE yylval;
Options |
options return OPTIONS;
Mod1 |
mod1 |
Mod2 |
mod2 |
Mod3 |
mod3 |
Mod4 |
mod4 |
Control |
control |
shift |
Shift yylval = (int) strdup(yytext); return BINDING;
true |
True yylval = (int) strdup(yytext); return TRUE;
false |
False yylval = (int) strdup(yytext); return FALSE;
[0-9]+ yylval = (int) strdup(yytext); return NUMBER;
\".+\" yylval = (int) strdup(yytext); return QUOTES;
[a-zA-Z_0-9]+ yylval = (int) strdup(yytext); return WORD;

View file

@ -24,7 +24,7 @@ void yyerror(const char *c) {
%}
%token OBRACE EBRACE SEMICOLON DASH NUMBER QUOTES WORD BINDING OPTIONS
%token OBRACE EBRACE SEMICOLON DASH NUMBER QUOTES WORD BINDING OPTIONS TRUE FALSE
%%
@ -86,6 +86,8 @@ parameter:
| NUMBER { ((parser*)parser_obj)->setArgumentNum($1); }
| DASH NUMBER { ((parser*)parser_obj)->setArgumentNegNum($2); }
| QUOTES { ((parser*)parser_obj)->setArgumentStr($1); }
| TRUE { ((parser*)parser_obj)->setArgumentTrue($1); }
| FALSE { ((parser*)parser_obj)->setArgumentFalse($1); }
;
options_keyword: