In Java, it's quite useless to have all the symbols prefixed with YYSYMBOL_. I'll check what to do about C++ and D. For C, it's important, since enumerators are not scoped.
commit 1ac80969b7eee4df0fa03b6671b8cdbd5af5bd8a Author: Akim Demaille <[email protected]> Date: Tue Apr 7 08:09:29 2020 +0200 skeletons: introduce api.symbol.prefix * data/skeletons/bison.m4 (b4_symbol_prefix): New. (b4_symbol_kind): Use it. * data/skeletons/c++.m4, data/skeletons/c.m4, data/skeletons/d.m4 * data/skeletons/java.m4 (api.symbol.prefix): Provide a default value. * data/skeletons/glr.c, data/skeletons/glr.cc, data/skeletons/lalr1.cc, * data/skeletons/lalr1.d, data/skeletons/lalr1.java, data/skeletons/yacc.c: Adjust: use b4_symbol_prefix instead of YYSYMBOL_. diff --git a/data/skeletons/bison.m4 b/data/skeletons/bison.m4 index ce68e184..23561373 100644 --- a/data/skeletons/bison.m4 +++ b/data/skeletons/bison.m4 @@ -411,17 +411,18 @@ m4_define([_b4_symbol], # otherwise some symbols might not be represented in the enum, which # might be compiled into too small a type to contain all the symbol # numbers. +m4_define([b4_symbol_prefix], [b4_percent_define_get([api.symbol.prefix])]) m4_define([b4_symbol_kind], -[m4_case([$1], - [-2], [[YYSYMBOL_YYEMPTY]], - [0], [[YYSYMBOL_YYEOF]], +[b4_percent_define_get([api.symbol.prefix])dnl +m4_case([$1], + [-2], [[YYEMPTY]], + [0], [[YYEOF]], [m4_case(m4_quote(b4_symbol([$1], [tag])), - [$accept], [[YYSYMBOL_YYACCEPT]], - [error], [[YYSYMBOL_YYERROR]], - [$undefined], [[YYSYMBOL_YYUNDEF]], - [b4_symbol_if([$1], [has_id], - [[YYSYMBOL_]]m4_quote(_b4_symbol([$1], [id])), - [[YYSYMBOL_$1_][]m4_bpatsubst(m4_quote(_b4_symbol([$1], [tag])), [[^a-zA-Z_0-9]], [_])])])])]) + [$accept], [[YYACCEPT]], + [error], [[YYERROR]], + [$undefined], [[YYUNDEF]], + [b4_symbol_if([$1], [has_id], m4_expand(_b4_symbol([$1], [id])), + [[$1_][]m4_bpatsubst(m4_quote(_b4_symbol([$1], [tag])), [[^a-zA-Z_0-9]], [_])])])])]) # b4_symbol(NUM, FIELD) diff --git a/data/skeletons/c++.m4 b/data/skeletons/c++.m4 index ffe0c91f..eb273214 100644 --- a/data/skeletons/c++.m4 +++ b/data/skeletons/c++.m4 @@ -383,7 +383,7 @@ m4_define([b4_symbol_type_define], symbol_kind_type type_get () const YY_NOEXCEPT; /// The symbol type. - /// \a YYSYMBOL_YYEMPTY when empty. + /// \a ]b4_symbol_prefix[YYEMPTY when empty. symbol_kind_type type; }; @@ -456,7 +456,7 @@ m4_define([b4_public_types_define], bool ]b4_parser_class[::basic_symbol<Base>::empty () const YY_NOEXCEPT { - return Base::type_get () == YYSYMBOL_YYEMPTY; + return Base::type_get () == ]b4_symbol_prefix[YYEMPTY; } template <typename Base> @@ -472,7 +472,7 @@ m4_define([b4_public_types_define], // by_type. ]b4_inline([$1])b4_parser_class[::by_type::by_type () - : type (YYSYMBOL_YYEMPTY) + : type (]b4_symbol_prefix[YYEMPTY) {} #if 201103L <= YY_CPLUSPLUS @@ -494,7 +494,7 @@ m4_define([b4_public_types_define], ]b4_inline([$1])[void ]b4_parser_class[::by_type::clear () { - type = YYSYMBOL_YYEMPTY; + type = ]b4_symbol_prefix[YYEMPTY; } ]b4_inline([$1])[void @@ -540,11 +540,11 @@ m4_define([b4_yytranslate_define], const int user_token_number_max_ = ]b4_user_token_number_max[; if (t <= 0) - return YYSYMBOL_YYEOF; + return ]b4_symbol_prefix[YYEOF; else if (t <= user_token_number_max_) return YY_CAST (symbol_kind_type, translate_table[t]); else - return YYSYMBOL_YYUNDEF;]])[ + return ]b4_symbol_prefix[YYUNDEF;]])[ } ]]) diff --git a/data/skeletons/c.m4 b/data/skeletons/c.m4 index 787ca000..09962123 100644 --- a/data/skeletons/c.m4 +++ b/data/skeletons/c.m4 @@ -101,6 +101,7 @@ m4_define_default([b4_prefix], [b4_api_prefix]) b4_percent_define_default([[api.value.union.name]], [b4_api_PREFIX[][STYPE]]) +b4_percent_define_default([[api.symbol.prefix]], [[YYSYMBOL_]]) ## ------------------------ ## ## Pure/impure interfaces. ## diff --git a/data/skeletons/d.m4 b/data/skeletons/d.m4 index fefe74a1..7d1672d5 100644 --- a/data/skeletons/d.m4 +++ b/data/skeletons/d.m4 @@ -152,6 +152,8 @@ private static immutable b4_int_type_for([$2])[[]] yy$1_ = ## (External) token numbers. ## ## -------------------------- ## +b4_percent_define_default([[api.symbol.prefix]], [[YYSYMBOL_]]) + # b4_token_enum(TOKEN-NAME, TOKEN-NUMBER) # --------------------------------------- # Output the definition of this token as an enum. diff --git a/data/skeletons/glr.c b/data/skeletons/glr.c index c17e7208..9f7619d3 100644 --- a/data/skeletons/glr.c +++ b/data/skeletons/glr.c @@ -341,7 +341,7 @@ static YYLTYPE yyloc_default][]b4_yyloc_default;])[ [[#define YYTRANSLATE(YYX) \ (0 <= (YYX) && (YYX) <= YYMAXUTOK \ ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ - : YYSYMBOL_YYUNDEF) + : ]b4_symbol_prefix[YYUNDEF) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ @@ -836,7 +836,7 @@ yygetToken (int *yycharp][]b4_pure_if([, yyGLRStack* yystackp])[]b4_user_formals if (*yycharp <= YYEOF) { *yycharp = YYEOF; - yytoken = YYSYMBOL_YYEOF; + yytoken = ]b4_symbol_prefix[YYEOF; YY_DPRINTF ((stderr, "Now at end of input.\n")); } else @@ -2106,7 +2106,7 @@ yyexpected_tokens (const yyGLRStack* yystackp, int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; int yyx; for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYSYMBOL_YYERROR + if (yycheck[yyx + yyn] == yyx && yyx != ]b4_symbol_prefix[YYERROR && !yytable_value_is_error (yytable[yyx + yyn])) { if (!yyarg) @@ -2135,7 +2135,7 @@ static yysymbol_kind_t yypcontext_token (const yyGLRStack *yystackp) { YYUSE (yystackp); - yysymbol_kind_t yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); + yysymbol_kind_t yytoken = yychar == YYEMPTY ? ]b4_symbol_prefix[YYEMPTY : YYTRANSLATE (yychar); return yytoken; } @@ -2154,7 +2154,7 @@ yypcontext_location (const yyGLRStack *yystackp) yy_syntax_error_arguments (const yyGLRStack* yystackp, yysymbol_kind_t yyarg[], int yyargn) { - yysymbol_kind_t yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); + yysymbol_kind_t yytoken = yychar == YYEMPTY ? ]b4_symbol_prefix[YYEMPTY : YYTRANSLATE (yychar); /* Actual size of YYARG. */ int yycount = 0; /* There are many possibilities here to consider: @@ -2185,7 +2185,7 @@ yy_syntax_error_arguments (const yyGLRStack* yystackp, one exception: it will still contain any token that will not be accepted due to an error action in a later state.]])[ */ - if (yytoken != YYSYMBOL_YYEMPTY) + if (yytoken != ]b4_symbol_prefix[YYEMPTY) { int yyn; if (yyarg) @@ -2363,8 +2363,8 @@ yyrecoverSyntaxError (yyGLRStack* yystackp]b4_user_formals[) int yyj = yypact[yys->yylrState]; if (! yypact_value_is_default (yyj)) { - yyj += YYSYMBOL_YYERROR; - if (0 <= yyj && yyj <= YYLAST && yycheck[yyj] == YYSYMBOL_YYERROR + yyj += ]b4_symbol_prefix[YYERROR; + if (0 <= yyj && yyj <= YYLAST && yycheck[yyj] == ]b4_symbol_prefix[YYERROR && yyisShiftAction (yytable[yyj])) { /* Shift the error token. */ diff --git a/data/skeletons/glr.cc b/data/skeletons/glr.cc index b1bddef8..3e7e56c3 100644 --- a/data/skeletons/glr.cc +++ b/data/skeletons/glr.cc @@ -357,10 +357,10 @@ b4_percent_define_flag_if([[global_tokens_and_yystype]], ]b4_namespace_close[ ]m4_define([b4_declare_symbol_enum], [[typedef ]b4_namespace_ref[::]b4_parser_class[::symbol_kind_type yysymbol_kind_t; -#define YYSYMBOL_YYEMPTY ]b4_namespace_ref[::]b4_parser_class[::YYSYMBOL_YYEMPTY -#define YYSYMBOL_YYERROR ]b4_namespace_ref[::]b4_parser_class[::YYSYMBOL_YYERROR -#define YYSYMBOL_YYEOF ]b4_namespace_ref[::]b4_parser_class[::YYSYMBOL_YYEOF -#define YYSYMBOL_YYUNDEF ]b4_namespace_ref[::]b4_parser_class[::YYSYMBOL_YYUNDEF +#define ]b4_symbol_prefix[YYEMPTY ]b4_namespace_ref[::]b4_parser_class[::]b4_symbol_prefix[YYEMPTY +#define ]b4_symbol_prefix[YYERROR ]b4_namespace_ref[::]b4_parser_class[::]b4_symbol_prefix[YYERROR +#define ]b4_symbol_prefix[YYEOF ]b4_namespace_ref[::]b4_parser_class[::]b4_symbol_prefix[YYEOF +#define ]b4_symbol_prefix[YYUNDEF ]b4_namespace_ref[::]b4_parser_class[::]b4_symbol_prefix[YYUNDEF ]])[ ]b4_percent_code_get([[provides]])[ ]m4_popdef([b4_parse_param])dnl diff --git a/data/skeletons/java.m4 b/data/skeletons/java.m4 index a5615f5d..ed294484 100644 --- a/data/skeletons/java.m4 +++ b/data/skeletons/java.m4 @@ -238,6 +238,7 @@ b4_percent_define_check_kind([[throws]], [code], [deprecated]) m4_define([b4_yystype], [b4_percent_define_get([[api.value.type]])]) b4_percent_define_default([[api.value.type]], [[Object]]) +b4_percent_define_default([[api.symbol.prefix]], [[S_]]) # b4_api_prefix, b4_api_PREFIX # ---------------------------- diff --git a/data/skeletons/lalr1.cc b/data/skeletons/lalr1.cc index 7dfb63f7..e67ecc03 100644 --- a/data/skeletons/lalr1.cc +++ b/data/skeletons/lalr1.cc @@ -377,7 +377,7 @@ m4_define([b4_shared_declarations], void move (by_state& that); /// The symbol kind (corresponding to \a state). - /// \a YYSYMBOL_YYEMPTY when empty. + /// \a ]b4_symbol_prefix[YYEMPTY when empty. symbol_kind_type type_get () const YY_NOEXCEPT; /// The state number used to denote an empty symbol. @@ -700,7 +700,7 @@ b4_parse_error_case([verbose], [[ ]b4_parser_class[::by_state::type_get () const YY_NOEXCEPT { if (state == empty_state) - return YYSYMBOL_YYEMPTY; + return ]b4_symbol_prefix[YYEMPTY; else return YY_CAST (symbol_kind_type, yystos_[+state]); } @@ -725,7 +725,7 @@ b4_parse_error_case([verbose], [[ b4_symbol_variant([that.type_get ()], [value], [move], [YY_MOVE (that.value)])])[ // that is emptied. - that.type = YYSYMBOL_YYEMPTY; + that.type = ]b4_symbol_prefix[YYEMPTY; } #if YY_CPLUSPLUS < 201103L @@ -1089,7 +1089,7 @@ b4_dollar_popdef])[]dnl error, discard it. */ // Return failure if at end of input. - if (yyla.type_get () == YYSYMBOL_YYEOF) + if (yyla.type_get () == ]b4_symbol_prefix[YYEOF) YYABORT; else if (!yyla.empty ()) { @@ -1131,8 +1131,8 @@ b4_dollar_popdef])[]dnl yyn = yypact_[+yystack_[0].state]; if (!yy_pact_value_is_default_ (yyn)) { - yyn += YYSYMBOL_YYERROR; - if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == YYSYMBOL_YYERROR) + yyn += ]b4_symbol_prefix[YYERROR; + if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == ]b4_symbol_prefix[YYERROR) { yyn = yytable_[yyn]; if (0 < yyn) @@ -1244,7 +1244,7 @@ b4_dollar_popdef])[]dnl for (int yyx = 0; yyx < YYNTOKENS; ++yyx) { symbol_kind_type yysym = YY_CAST (symbol_kind_type, yyx); - if (yysym != YYSYMBOL_YYERROR && yysym != YYSYMBOL_YYUNDEF + if (yysym != ]b4_symbol_prefix[YYERROR && yysym != ]b4_symbol_prefix[YYUNDEF && yyparser_.yy_lac_check_ (yysym)) { if (!yyarg) @@ -1266,7 +1266,7 @@ b4_dollar_popdef])[]dnl int yychecklim = yylast_ - yyn + 1; int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; for (int yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck_[yyx + yyn] == yyx && yyx != YYSYMBOL_YYERROR + if (yycheck_[yyx + yyn] == yyx && yyx != ]b4_symbol_prefix[YYERROR && !yy_table_value_is_error_ (yytable_[yyx + yyn])) { if (!yyarg) diff --git a/data/skeletons/lalr1.d b/data/skeletons/lalr1.d index cec130c5..150f1540 100644 --- a/data/skeletons/lalr1.d +++ b/data/skeletons/lalr1.d @@ -430,7 +430,7 @@ b4_locations_if([, ref ]b4_location_type[ yylocationp])[) { /// Lookahead and lookahead in internal form. int yychar = yyempty_; - SymbolKind yytoken = SymbolKind.YYSYMBOL_YYEMPTY; + SymbolKind yytoken = SymbolKind.]b4_symbol_prefix[YYEMPTY; /* State. */ int yyn = 0; @@ -574,7 +574,7 @@ m4_popdef([b4_at_dollar])])dnl { ++yynerrs_; if (yychar == yyempty_) - yytoken = SymbolKind.YYSYMBOL_YYEMPTY; + yytoken = SymbolKind.]b4_symbol_prefix[YYEMPTY; yyerror (]b4_locations_if([yylloc, ])[yysyntax_error (yystate, yytoken)); } @@ -623,8 +623,8 @@ m4_popdef([b4_at_dollar])])dnl yyn = yypact_[yystate]; if (!yy_pact_value_is_default_ (yyn)) { - yyn += SymbolKind.YYSYMBOL_YYERROR; - if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == SymbolKind.YYSYMBOL_YYERROR) + yyn += SymbolKind.]b4_symbol_prefix[YYERROR; + if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == SymbolKind.]b4_symbol_prefix[YYERROR) { yyn = yytable_[yyn]; if (0 < yyn) @@ -711,7 +711,7 @@ m4_popdef([b4_at_dollar])])dnl will still contain any token that will not be accepted due to an error action in a later state. */ - if (tok != SymbolKind.YYSYMBOL_YYEMPTY) + if (tok != SymbolKind.]b4_symbol_prefix[YYEMPTY) { // FIXME: This method of building the message is not compatible // with internationalization. @@ -730,14 +730,14 @@ m4_popdef([b4_at_dollar])])dnl int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_; int count = 0; for (int x = yyxbegin; x < yyxend; ++x) - if (yycheck_[x + yyn] == x && x != SymbolKind.YYSYMBOL_YYERROR + if (yycheck_[x + yyn] == x && x != SymbolKind.]b4_symbol_prefix[YYERROR && !yy_table_value_is_error_ (yytable_[x + yyn])) ++count; if (count < 5) { count = 0; for (int x = yyxbegin; x < yyxend; ++x) - if (yycheck_[x + yyn] == x && x != SymbolKind.YYSYMBOL_YYERROR + if (yycheck_[x + yyn] == x && x != SymbolKind.]b4_symbol_prefix[YYERROR && !yy_table_value_is_error_ (yytable_[x + yyn])) { res ~= count++ == 0 ? ", expecting " : " or "; @@ -829,14 +829,14 @@ m4_popdef([b4_at_dollar])])dnl immutable int user_token_number_max_ = ]b4_user_token_number_max[; if (t <= 0) - return SymbolKind.YYSYMBOL_YYEOF; + return SymbolKind.]b4_symbol_prefix[YYEOF; else if (t <= user_token_number_max_) { import std.conv : to; return to!SymbolKind (translate_table[t]); } else - return SymbolKind.YYSYMBOL_YYUNDEF;]])[ + return SymbolKind.]b4_symbol_prefix[YYUNDEF;]])[ } private static immutable int yylast_ = ]b4_last[; diff --git a/data/skeletons/lalr1.java b/data/skeletons/lalr1.java index 529da270..f3fc9066 100644 --- a/data/skeletons/lalr1.java +++ b/data/skeletons/lalr1.java @@ -731,9 +731,9 @@ b4_dollar_popdef[]dnl yyn = yypact_[yystate]; if (!yyPactValueIsDefault (yyn)) { - yyn += SymbolKind.YYSYMBOL_YYERROR.getCode (); + yyn += SymbolKind.]b4_symbol_prefix[YYERROR.getCode (); if (0 <= yyn && yyn <= YYLAST_ - && yycheck_[yyn] == SymbolKind.YYSYMBOL_YYERROR.getCode ()) + && yycheck_[yyn] == SymbolKind.]b4_symbol_prefix[YYERROR.getCode ()) { yyn = yytable_[yyn]; if (0 < yyn) @@ -924,7 +924,7 @@ b4_dollar_popdef[]dnl int yychecklim = YYLAST_ - yyn + 1; int yyxend = yychecklim < NTOKENS ? yychecklim : NTOKENS; for (int yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck_[yyx + yyn] == yyx && yyx != SymbolKind.YYSYMBOL_YYERROR.getCode () + if (yycheck_[yyx + yyn] == yyx && yyx != SymbolKind.]b4_symbol_prefix[YYERROR.getCode () && !yyTableValueIsError (yytable_[yyx + yyn])) { if (yyarg == null) @@ -1145,11 +1145,11 @@ b4_dollar_popdef[]dnl [[ { int user_token_number_max_ = ]b4_user_token_number_max[; if (t <= 0) - return SymbolKind.YYSYMBOL_YYEOF; + return SymbolKind.]b4_symbol_prefix[YYEOF; else if (t <= user_token_number_max_) return SymbolKind.get (yytranslate_table_[t]); else - return SymbolKind.YYSYMBOL_YYUNDEF; + return SymbolKind.]b4_symbol_prefix[YYUNDEF; } ]b4_integral_parser_table_define([translate_table], [b4_translate])[ ]])[ diff --git a/data/skeletons/yacc.c b/data/skeletons/yacc.c index 98612a73..a8d524bf 100644 --- a/data/skeletons/yacc.c +++ b/data/skeletons/yacc.c @@ -635,7 +635,7 @@ union yyalloc [[#define YYTRANSLATE(YYX) \ (0 <= (YYX) && (YYX) <= YYMAXUTOK \ ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ - : YYSYMBOL_YYUNDEF) + : ]b4_symbol_prefix[YYUNDEF) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ @@ -1024,7 +1024,7 @@ yy_lac (yy_state_t *yyesa, yy_state_t **yyes, yy_state_t *yyesp = yyes_prev; /* Reduce until we encounter a shift and thereby accept the token. */ YYDPRINTF ((stderr, "LAC: checking lookahead %s:", yysymbol_name (yytoken))); - if (yytoken == YYSYMBOL_YYUNDEF) + if (yytoken == ]b4_symbol_prefix[YYUNDEF) { YYDPRINTF ((stderr, " Always Err\n")); return 1; @@ -1154,7 +1154,7 @@ yyexpected_tokens (const yypcontext_t *yyctx, for (yyx = 0; yyx < YYNTOKENS; ++yyx) { yysymbol_kind_t yysym = YY_CAST (yysymbol_kind_t, yyx); - if (yysym != YYSYMBOL_YYERROR && yysym != YYSYMBOL_YYUNDEF) + if (yysym != ]b4_symbol_prefix[YYERROR && yysym != ]b4_symbol_prefix[YYUNDEF) switch (yy_lac (]b4_push_if([[yyps->yyesa, &yyps->yyes, &yyps->yyes_capacity, yyps->yyssp, yysym]], [[yyctx->yyesa, yyctx->yyes, yyctx->yyes_capacity, yyctx->yyssp, yysym]])[)) { @@ -1183,7 +1183,7 @@ yyexpected_tokens (const yypcontext_t *yyctx, int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; int yyx; for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYSYMBOL_YYERROR + if (yycheck[yyx + yyn] == yyx && yyx != ]b4_symbol_prefix[YYERROR && !yytable_value_is_error (yytable[yyx + yyn])) { if (!yyarg) @@ -1356,7 +1356,7 @@ yy_syntax_error_arguments (const yypcontext_t *yyctx, one exception: it will still contain any token that will not be accepted due to an error action in a later state.]])[ */ - if (yyctx->yytoken != YYSYMBOL_YYEMPTY) + if (yyctx->yytoken != ]b4_symbol_prefix[YYEMPTY) { int yyn;]b4_lac_if([[ YYDPRINTF ((stderr, "Constructing syntax error message\n"));]])[ @@ -1586,7 +1586,7 @@ yyparse (]m4_ifset([b4_parse_param], [b4_formals(b4_parse_param)], [void])[)]])[ /* The return value of yyparse. */ int yyresult; /* Lookahead token as an internal (translated) token number. */ - yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; + yysymbol_kind_t yytoken = ]b4_symbol_prefix[YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval;]b4_locations_if([[ @@ -1766,7 +1766,7 @@ yyread_pushed_token:]])[ if (yychar <= YYEOF) { yychar = YYEOF; - yytoken = YYSYMBOL_YYEOF; + yytoken = ]b4_symbol_prefix[YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else @@ -1899,7 +1899,7 @@ yyreduce: yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ - yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); + yytoken = yychar == YYEMPTY ? ]b4_symbol_prefix[YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) @@ -2008,8 +2008,8 @@ yyerrlab1: yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { - yyn += YYSYMBOL_YYERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYERROR) + yyn += ]b4_symbol_prefix[YYERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == ]b4_symbol_prefix[YYERROR) { yyn = yytable[yyn]; if (0 < yyn)
