[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 2/4] bench: compatibility for Bison <= 2.7
From: |
Akim Demaille |
Subject: |
Re: [PATCH 2/4] bench: compatibility for Bison <= 2.7 |
Date: |
Mon, 21 Jan 2013 12:08:03 +0100 |
Le 21 janv. 2013 à 12:46, Theophile Ranquet <address@hidden> a écrit :
> Workaround the bug fixed by 'skel: better aliasing of identifiers', useful
> when benchmarking against older versions of Bison.
>
> * etc/bench.pl.in: Rename yylval to yylvalp and yylloc to yyllocp in base
> grammar 'list'.
> ---
> etc/bench.pl.in | 24 ++++++++++++------------
> 1 file changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/etc/bench.pl.in b/etc/bench.pl.in
> index eb82691..3ad7031 100755
> --- a/etc/bench.pl.in
> +++ b/etc/bench.pl.in
> @@ -610,7 +610,7 @@ $directives
> #if USE_TOKEN_CTOR
> yy::parser::symbol_type yylex();
> #else
> - yy::parser::token_type yylex(yy::parser::semantic_type* yylval,
> + yy::parser::token_type yylex(yy::parser::semantic_type* yylvalp,
> yy::parser::location_type* yylloc);
Please, use both yylvalp _and_ yyllocp. The commit message should
be clearer about why this is helpful (be more explicit about the
failure you avoid this way).
> #endif
>
> @@ -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
> }
> --
> 1.8.1.1
>
>
[PATCH 2/4] bench: compatibility for Bison <= 2.7, Theophile Ranquet, 2013/01/21
- Re: [PATCH 2/4] bench: compatibility for Bison <= 2.7,
Akim Demaille <=