diff options
Diffstat (limited to 'etc/bench.pl.in')
-rwxr-xr-x | etc/bench.pl.in | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/etc/bench.pl.in b/etc/bench.pl.in index 7cab2ebe..a95e646b 100755 --- a/etc/bench.pl.in +++ b/etc/bench.pl.in @@ -686,6 +686,7 @@ yy::parser::token_type yylex(yy::parser::semantic_type* yylval, yy::parser::location_type* yylloc) #endif { + typedef yy::parser::location_type location_type; typedef yy::parser::token token; static int stage = -1; ++stage; @@ -694,7 +695,7 @@ yy::parser::token_type yylex(yy::parser::semantic_type* yylval, #if USE_LEX_SYMBOL return yy::parser::make_END_OF_FILE (yy::location()); #else - *yylloc = yy::location (); + *yylloc = location_type (); return token::END_OF_FILE; #endif } @@ -702,17 +703,15 @@ yy::parser::token_type yylex(yy::parser::semantic_type* yylval, { #if USE_LEX_SYMBOL return yy::parser::make_NUMBER (stage, yy::location()); -#elif defined ONE_STAGE_BUILD +#else +# if defined ONE_STAGE_BUILD yylval->build(stage); - *yylloc = yy::location (); - return token::NUMBER; -#elif USE_VARIANTS +# elif USE_VARIANTS yylval->build<int>() = stage; - *yylloc = yy::location (); - return token::NUMBER; -#else +# else yylval->ival = stage; - *yylloc = yy::location (); +# endif + *yylloc = location_type (); return token::NUMBER; #endif } @@ -720,17 +719,15 @@ yy::parser::token_type yylex(yy::parser::semantic_type* yylval, { #if USE_LEX_SYMBOL return yy::parser::make_TEXT ("A string.", yy::location()); -#elif defined ONE_STAGE_BUILD +#else +# if defined ONE_STAGE_BUILD yylval->build(std::string("A string.")); - *yylloc = yy::location (); - return token::TEXT; -#elif USE_VARIANTS +# elif USE_VARIANTS yylval->build<std::string>() = std::string("A string."); - *yylloc = yy::location (); - return token::TEXT; -#else +# else yylval->sval = new std::string("A string."); - *yylloc = yy::location (); +# endif + *yylloc = location_type (); return token::TEXT; #endif } |