From 286d0755f8a559d957d14be0a5ffca609c240bca Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Sun, 26 Apr 2020 14:48:02 +0200 Subject: [PATCH] all: prefer YYERRCODE to YYERROR We will not keep YYERRCODE anyway, it causes backward compatibility issues. So as a first step, let all the skeletons use that name, until we have a better one. * data/skeletons/bison.m4, data/skeletons/glr.c, * data/skeletons/glr.cc, data/skeletons/lalr1.cc, * data/skeletons/lalr1.d, data/skeletons/lalr1.java, * data/skeletons/yacc.c, doc/bison.texi, tests/headers.at, * tests/input.at: here. --- data/skeletons/bison.m4 | 2 +- data/skeletons/glr.c | 6 +++--- data/skeletons/glr.cc | 8 ++++---- data/skeletons/lalr1.cc | 8 ++++---- data/skeletons/lalr1.d | 8 ++++---- data/skeletons/lalr1.java | 6 +++--- data/skeletons/yacc.c | 8 ++++---- doc/bison.texi | 4 ++-- src/parse-gram.c | 8 ++++---- tests/headers.at | 2 +- tests/input.at | 2 +- 11 files changed, 31 insertions(+), 31 deletions(-) diff --git a/data/skeletons/bison.m4 b/data/skeletons/bison.m4 index 33359f10..a7f45bf0 100644 --- a/data/skeletons/bison.m4 +++ b/data/skeletons/bison.m4 @@ -427,7 +427,7 @@ m4_define([b4_symbol_kind], m4_case([$1], [-2], [[YYEMPTY]], [0], [[YYEOF]], - [1], [[YYERROR]], + [1], [[YYERRCODE]], [2], [[YYUNDEF]], [m4_case(b4_symbol([$1], [tag]), [$accept], [[YYACCEPT]], diff --git a/data/skeletons/glr.c b/data/skeletons/glr.c index 5686e0b3..6b046349 100644 --- a/data/skeletons/glr.c +++ b/data/skeletons/glr.c @@ -2107,7 +2107,7 @@ yypcontext_expected_tokens (const yyGLRStack* yystackp, int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; int yyx; for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != ]b4_symbol_prefix[YYERROR + if (yycheck[yyx + yyn] == yyx && yyx != ]b4_symbol(1, kind)[ && !yytable_value_is_error (yytable[yyx + yyn])) { if (!yyarg) @@ -2365,8 +2365,8 @@ yyrecoverSyntaxError (yyGLRStack* yystackp]b4_user_formals[) int yyj = yypact[yys->yylrState]; if (! yypact_value_is_default (yyj)) { - yyj += ]b4_symbol_prefix[YYERROR; - if (0 <= yyj && yyj <= YYLAST && yycheck[yyj] == ]b4_symbol_prefix[YYERROR + yyj += ]b4_symbol(1, kind)[; + if (0 <= yyj && yyj <= YYLAST && yycheck[yyj] == ]b4_symbol(1, kind)[ && yyisShiftAction (yytable[yyj])) { /* Shift the error token. */ diff --git a/data/skeletons/glr.cc b/data/skeletons/glr.cc index e931dd4b..b5f46ccd 100644 --- a/data/skeletons/glr.cc +++ b/data/skeletons/glr.cc @@ -354,10 +354,10 @@ b4_percent_define_flag_if([[global_tokens_and_yystype]], ]m4_define([b4_declare_symbol_enum], [[typedef ]b4_namespace_ref[::]b4_parser_class[::symbol_kind_type yysymbol_kind_t; -#define ]b4_symbol_prefix[YYEMPTY ]b4_namespace_ref[::]b4_parser_class[::symbol_kind::]b4_symbol_prefix[YYEMPTY -#define ]b4_symbol_prefix[YYERROR ]b4_namespace_ref[::]b4_parser_class[::symbol_kind::]b4_symbol_prefix[YYERROR -#define ]b4_symbol_prefix[YYEOF ]b4_namespace_ref[::]b4_parser_class[::symbol_kind::]b4_symbol_prefix[YYEOF -#define ]b4_symbol_prefix[YYUNDEF ]b4_namespace_ref[::]b4_parser_class[::symbol_kind::]b4_symbol_prefix[YYUNDEF +#define ]b4_symbol_prefix[YYEMPTY ]b4_namespace_ref[::]b4_parser_class[::symbol_kind::]b4_symbol_prefix[YYEMPTY +#define ]b4_symbol_prefix[YYERRCODE ]b4_namespace_ref[::]b4_parser_class[::symbol_kind::]b4_symbol_prefix[YYERRCODE +#define ]b4_symbol_prefix[YYEOF ]b4_namespace_ref[::]b4_parser_class[::symbol_kind::]b4_symbol_prefix[YYEOF +#define ]b4_symbol_prefix[YYUNDEF ]b4_namespace_ref[::]b4_parser_class[::symbol_kind::]b4_symbol_prefix[YYUNDEF ]])[ ]b4_percent_code_get([[provides]])[ ]m4_popdef([b4_parse_param])dnl diff --git a/data/skeletons/lalr1.cc b/data/skeletons/lalr1.cc index 93106d39..ca75acf3 100644 --- a/data/skeletons/lalr1.cc +++ b/data/skeletons/lalr1.cc @@ -1135,9 +1135,9 @@ b4_dollar_popdef])[]dnl yyn = yypact_[+yystack_[0].state]; if (!yy_pact_value_is_default_ (yyn)) { - yyn += symbol_kind::]b4_symbol_prefix[YYERROR; + yyn += symbol_kind::]b4_symbol(1, kind)[; if (0 <= yyn && yyn <= yylast_ - && yycheck_[yyn] == symbol_kind::]b4_symbol_prefix[YYERROR) + && yycheck_[yyn] == symbol_kind::]b4_symbol(1, kind)[) { yyn = yytable_[yyn]; if (0 < yyn) @@ -1251,7 +1251,7 @@ b4_dollar_popdef])[]dnl for (int yyx = 0; yyx < YYNTOKENS; ++yyx) { symbol_kind_type yysym = YY_CAST (symbol_kind_type, yyx); - if (yysym != symbol_kind::]b4_symbol_prefix[YYERROR + if (yysym != symbol_kind::]b4_symbol(1, kind)[ && yysym != symbol_kind::]b4_symbol_prefix[YYUNDEF && yyparser_.yy_lac_check_ (yysym)) { @@ -1274,7 +1274,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 != symbol_kind::]b4_symbol_prefix[YYERROR + if (yycheck_[yyx + yyn] == yyx && yyx != symbol_kind::]b4_symbol(1, kind)[ && !yy_table_value_is_error_ (yytable_[yyx + yyn])) { if (!yyarg) diff --git a/data/skeletons/lalr1.d b/data/skeletons/lalr1.d index 85242b14..0569f3df 100644 --- a/data/skeletons/lalr1.d +++ b/data/skeletons/lalr1.d @@ -624,8 +624,8 @@ m4_popdef([b4_at_dollar])])dnl yyn = yypact_[yystate]; if (!yy_pact_value_is_default_ (yyn)) { - yyn += SymbolKind.]b4_symbol_prefix[YYERROR; - if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == SymbolKind.]b4_symbol_prefix[YYERROR) + yyn += SymbolKind.]b4_symbol(1, kind)[; + if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == SymbolKind.]b4_symbol(1, kind)[) { yyn = yytable_[yyn]; if (0 < yyn) @@ -731,14 +731,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.]b4_symbol_prefix[YYERROR + if (yycheck_[x + yyn] == x && x != SymbolKind.]b4_symbol(1, kind)[ && !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.]b4_symbol_prefix[YYERROR + if (yycheck_[x + yyn] == x && x != SymbolKind.]b4_symbol(1, kind)[ && !yy_table_value_is_error_ (yytable_[x + yyn])) { res ~= count++ == 0 ? ", expecting " : " or "; diff --git a/data/skeletons/lalr1.java b/data/skeletons/lalr1.java index e4273895..bd19787b 100644 --- a/data/skeletons/lalr1.java +++ b/data/skeletons/lalr1.java @@ -733,9 +733,9 @@ b4_dollar_popdef[]dnl yyn = yypact_[yystate]; if (!yyPactValueIsDefault (yyn)) { - yyn += SymbolKind.]b4_symbol_prefix[YYERROR.getCode (); + yyn += SymbolKind.]b4_symbol(1, kind)[.getCode (); if (0 <= yyn && yyn <= YYLAST_ - && yycheck_[yyn] == SymbolKind.]b4_symbol_prefix[YYERROR.getCode ()) + && yycheck_[yyn] == SymbolKind.]b4_symbol(1, kind)[.getCode ()) { yyn = yytable_[yyn]; if (0 < yyn) @@ -926,7 +926,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.]b4_symbol_prefix[YYERROR.getCode () + if (yycheck_[yyx + yyn] == yyx && yyx != SymbolKind.]b4_symbol(1, kind)[.getCode () && !yyTableValueIsError (yytable_[yyx + yyn])) { if (yyarg == null) diff --git a/data/skeletons/yacc.c b/data/skeletons/yacc.c index 20f84c7d..1ac8e9bc 100644 --- a/data/skeletons/yacc.c +++ b/data/skeletons/yacc.c @@ -1154,7 +1154,7 @@ yypcontext_expected_tokens (const yypcontext_t *yyctx, for (yyx = 0; yyx < YYNTOKENS; ++yyx) { yysymbol_kind_t yysym = YY_CAST (yysymbol_kind_t, yyx); - if (yysym != ]b4_symbol_prefix[YYERROR && yysym != ]b4_symbol_prefix[YYUNDEF) + if (yysym != ]b4_symbol(1, kind)[ && 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 @@ yypcontext_expected_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 != ]b4_symbol_prefix[YYERROR + if (yycheck[yyx + yyn] == yyx && yyx != ]b4_symbol(1, kind)[ && !yytable_value_is_error (yytable[yyx + yyn])) { if (!yyarg) @@ -2009,8 +2009,8 @@ yyerrlab1: yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { - yyn += ]b4_symbol_prefix[YYERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == ]b4_symbol_prefix[YYERROR) + yyn += ]b4_symbol(1, kind)[; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == ]b4_symbol(1, kind)[) { yyn = yytable[yyn]; if (0 < yyn) diff --git a/doc/bison.texi b/doc/bison.texi index b8fe11bb..7fae3b36 100644 --- a/doc/bison.texi +++ b/doc/bison.texi @@ -7471,7 +7471,7 @@ enum yysymbol_kind_t @{ YYSYMBOL_YYEMPTY = -2, /* No symbol. */ YYSYMBOL_YYEOF = 0, /* "end of file" */ - YYSYMBOL_YYERROR = 1, /* error */ + YYSYMBOL_YYERRCODE = 1, /* error */ YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ YYSYMBOL_PLUS = 3, /* "+" */ YYSYMBOL_MINUS = 4, /* "-" */ @@ -7497,7 +7497,7 @@ The location of the syntax error (that of the unexpected token). @deftypefun int yypcontext_expected_tokens (@code{const yypcontext_t *}ctx, @code{yysymbol_kind_t} @var{argv}@code{[]}, @code{int} @var{argc}) Fill @var{argv} with the expected tokens, which never includes -@code{YYSYMBOL_YYEMPTY}, @code{YYSYMBOL_YYERROR}, or +@code{YYSYMBOL_YYEMPTY}, @code{YYSYMBOL_YYERRCODE}, or @code{YYSYMBOL_YYUNDEF}. Never put more than @var{argc} elements into @var{argv}, and on success diff --git a/src/parse-gram.c b/src/parse-gram.c index 3f5c7966..4c5ca366 100644 --- a/src/parse-gram.c +++ b/src/parse-gram.c @@ -106,7 +106,7 @@ enum yysymbol_kind_t { YYSYMBOL_YYEMPTY = -2, YYSYMBOL_YYEOF = 0, /* "end of file" */ - YYSYMBOL_YYERROR = 1, /* error */ + YYSYMBOL_YYERRCODE = 1, /* error */ YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ YYSYMBOL_STRING = 3, /* "string" */ YYSYMBOL_TSTRING = 4, /* "translatable string" */ @@ -1612,7 +1612,7 @@ yypcontext_expected_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 != YYSYMBOL_YYERRCODE && yysym != YYSYMBOL_YYUNDEF) switch (yy_lac (yyctx->yyesa, yyctx->yyes, yyctx->yyes_capacity, yyctx->yyssp, yysym)) { case YYENOMEM: @@ -2695,8 +2695,8 @@ yyerrlab1: yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { - yyn += YYSYMBOL_YYERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYERROR) + yyn += YYSYMBOL_YYERRCODE; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYERRCODE) { yyn = yytable[yyn]; if (0 < yyn) diff --git a/tests/headers.at b/tests/headers.at index ebe02ee8..fa13819e 100644 --- a/tests/headers.at +++ b/tests/headers.at @@ -323,7 +323,7 @@ AT_PERL_CHECK([[-n -0777 -e ' |YYChar |YYNTOKENS # This is actual scoped in a C++ class. |YYPUSH_MORE(?:_DEFINED)? - |S_(YY(ACCEPT|EMPTY|EOF|ERROR|UNDEF)) # These guys are scoped. + |S_(YY(ACCEPT|EMPTY|EOF|ERRCODE|UNDEF)) # These guys are scoped. |YYUSE |YY_ATTRIBUTE(?:_PURE|_UNUSED) |YY(?:_REINTERPRET)?_CAST diff --git a/tests/input.at b/tests/input.at index f1cab823..27902d06 100644 --- a/tests/input.at +++ b/tests/input.at @@ -345,7 +345,7 @@ int main (void) { assert (YYERRCODE == 123); assert (YYTRANSLATE (YYEOF) == YYSYMBOL_YYEOF); - assert (YYTRANSLATE (YYERRCODE) == YYSYMBOL_YYERROR); + assert (YYTRANSLATE (YYERRCODE) == YYSYMBOL_YYERRCODE); assert (YYTRANSLATE (YYUNDEF) == YYSYMBOL_YYUNDEF); return 0; }