mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
lalr1.cc: rename lex_symbol as api.token.constructor
* data/bison.m4 (b4_lex_symbol_if): Rename as... (b4_token_ctor_if): this. Depend upon api.token.constructor. * data/c++.m4, data/lalr1.cc: Adjust. * doc/bison.texi: Fix all the occurrences of lex_symbol. * etc/bench.pl.in: Adjust. * examples/variant.yy: Likewise. * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS): Handle AT_TOKEN_CTOR_IF. * tests/c++.at: Adjust to using api.token.constructor and AT_TOKEN_CTOR_IF. Simplify the test of both build call styles. (AT_CHECK_VARIANTS): Rename as... (AT_TEST): this. And undef when done.
This commit is contained in:
@@ -579,7 +579,7 @@ sub generate_grammar_list ($$@)
|
||||
my ($base, $max, @directive) = @_;
|
||||
my $directives = directives ($base, @directive);
|
||||
my $variant = grep { /%define "?variant"?/ } @directive;
|
||||
my $lex_symbol = grep { /%define "?lex_symbol"?/ } @directive;
|
||||
my $token_ctor = grep { /%define "?api.token.constructor"?/ } @directive;
|
||||
my $out = new IO::File ">$base.y"
|
||||
or die;
|
||||
print $out <<EOF;
|
||||
@@ -601,12 +601,12 @@ $directives
|
||||
|
||||
#define STAGE_MAX ($max * 10) // max = $max
|
||||
|
||||
#define USE_LEX_SYMBOL $lex_symbol
|
||||
#define USE_TOKEN_CTOR $token_ctor
|
||||
#define USE_VARIANTS $variant
|
||||
|
||||
// Prototype of the yylex function providing subsequent tokens.
|
||||
static
|
||||
#if USE_LEX_SYMBOL
|
||||
#if USE_TOKEN_CTOR
|
||||
yy::parser::symbol_type yylex();
|
||||
#else
|
||||
yy::parser::token_type yylex(yy::parser::semantic_type* yylval,
|
||||
@@ -678,7 +678,7 @@ EOF
|
||||
#
|
||||
|
||||
static
|
||||
#if USE_LEX_SYMBOL
|
||||
#if USE_TOKEN_CTOR
|
||||
yy::parser::symbol_type yylex()
|
||||
#else
|
||||
yy::parser::token_type yylex(yy::parser::semantic_type* yylval,
|
||||
@@ -691,7 +691,7 @@ yy::parser::token_type yylex(yy::parser::semantic_type* yylval,
|
||||
++stage;
|
||||
if (stage == STAGE_MAX)
|
||||
{
|
||||
#if USE_LEX_SYMBOL
|
||||
#if USE_TOKEN_CTOR
|
||||
return yy::parser::make_END_OF_FILE (location_type ());
|
||||
#else
|
||||
*yylloc = location_type ();
|
||||
@@ -700,7 +700,7 @@ yy::parser::token_type yylex(yy::parser::semantic_type* yylval,
|
||||
}
|
||||
else if (stage % 2)
|
||||
{
|
||||
#if USE_LEX_SYMBOL
|
||||
#if USE_TOKEN_CTOR
|
||||
return yy::parser::make_NUMBER (stage, location_type ());
|
||||
#else
|
||||
# if defined ONE_STAGE_BUILD
|
||||
@@ -716,7 +716,7 @@ yy::parser::token_type yylex(yy::parser::semantic_type* yylval,
|
||||
}
|
||||
else
|
||||
{
|
||||
#if USE_LEX_SYMBOL
|
||||
#if USE_TOKEN_CTOR
|
||||
return yy::parser::make_TEXT ("A string.", location_type ());
|
||||
#else
|
||||
# if defined ONE_STAGE_BUILD
|
||||
@@ -914,7 +914,7 @@ sub bench_variant_parser ()
|
||||
[
|
||||
%d variant
|
||||
&
|
||||
[ #d ONE_STAGE_BUILD | %d lex_symbol ]
|
||||
[ #d ONE_STAGE_BUILD | %d api.token.constructor ]
|
||||
]
|
||||
)
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user