summaryrefslogtreecommitdiff
path: root/etc
diff options
context:
space:
mode:
authorTheophile Ranquet <ranquet@lrde.epita.fr>2013-01-15 17:54:44 +0100
committerTheophile Ranquet <ranquet@lrde.epita.fr>2013-01-21 15:54:04 +0100
commit492dacbc342b4b7435bed2eac9ea99909e0b0aea (patch)
tree11ad3957916733c052d704809215023472288e1f /etc
parent733fb7c593486846eca5a60d1e3ff6880ce358d7 (diff)
downloadbison-492dacbc342b4b7435bed2eac9ea99909e0b0aea.tar.gz
bench: compatibility for Bison <= 2.7
There used to be a bug in some skeletons, which caused the expansion of 'yylval' and 'yylloc', generating these errors: input.cc:547:16: error: expected ',' or '...' before '(' token #define yylval (yystackp->yyval) ^ input.yy:29:39: note: in expansion of macro 'yylval' int yylex (yy::parser::semantic_type *yylval) ^ This bug is fixed by 'skel: better aliasing of identifiers', but a workaround is useful when benchmarking against older versions of Bison, which are still affected by the bug. * etc/bench.pl.in: Rename yylval to yylvalp and yylloc to yyllocp in base grammar 'list'.
Diffstat (limited to 'etc')
-rwxr-xr-xetc/bench.pl.in26
1 files changed, 13 insertions, 13 deletions
diff --git a/etc/bench.pl.in b/etc/bench.pl.in
index 83176d5e..aaaf1430 100755
--- a/etc/bench.pl.in
+++ b/etc/bench.pl.in
@@ -610,8 +610,8 @@ $directives
#if USE_TOKEN_CTOR
yy::parser::symbol_type yylex();
#else
- yy::parser::token_type yylex(yy::parser::semantic_type* yylval,
- yy::parser::location_type* yylloc);
+ yy::parser::token_type yylex(yy::parser::semantic_type* yylvalp,
+ yy::parser::location_type* yyllocp);
#endif
// Conversion to string.
@@ -682,8 +682,8 @@ static
#if USE_TOKEN_CTOR
yy::parser::symbol_type yylex()
#else
-yy::parser::token_type yylex(yy::parser::semantic_type* yylval,
- yy::parser::location_type* yylloc)
+yy::parser::token_type yylex(yy::parser::semantic_type* yylvalp,
+ yy::parser::location_type* yyllocp)
#endif
{
typedef yy::parser::location_type location_type;
@@ -695,7 +695,7 @@ yy::parser::token_type yylex(yy::parser::semantic_type* yylval,
#if USE_TOKEN_CTOR
return yy::parser::make_END_OF_FILE (location_type ());
#else
- *yylloc = location_type ();
+ *yyllocp = location_type ();
return token::END_OF_FILE;
#endif
}
@@ -705,13 +705,13 @@ yy::parser::token_type yylex(yy::parser::semantic_type* yylval,
return yy::parser::make_NUMBER (stage, location_type ());
#else
# if defined ONE_STAGE_BUILD
- yylval->build(stage);
+ yylvalp->build(stage);
# elif USE_VARIANTS
- yylval->build<int>() = stage;
+ yylvalp->build<int>() = stage;
# else
- yylval->ival = stage;
+ yylvalp->ival = stage;
# endif
- *yylloc = location_type ();
+ *yyllocp = location_type ();
return token::NUMBER;
#endif
}
@@ -721,13 +721,13 @@ yy::parser::token_type yylex(yy::parser::semantic_type* yylval,
return yy::parser::make_TEXT ("A string.", location_type ());
#else
# if defined ONE_STAGE_BUILD
- yylval->build(std::string("A string."));
+ yylvalp->build(std::string("A string."));
# elif USE_VARIANTS
- yylval->build<std::string>() = std::string("A string.");
+ yylvalp->build<std::string>() = std::string("A string.");
# else
- yylval->sval = new std::string("A string.");
+ yylvalp->sval = new std::string("A string.");
# endif
- *yylloc = location_type ();
+ *yyllocp = location_type ();
return token::TEXT;
#endif
}