yacc.c: install backward compatibility for YYERRCODE

Some people have been using that symbol.  Some even have #defined it
themselves.
https://lists.gnu.org/r/bison-patches/2020-04/msg00138.html

Let's provide backward compatibility, having it point to YYUNDEF, so
that an error message is generated.

* data/skeletons/yacc.c (YYERRCODE): New, at the exact same location
it was defined before.
This commit is contained in:
Akim Demaille
2020-04-28 08:26:49 +02:00
parent 902a235ad3
commit 3b05de2d05
3 changed files with 8 additions and 4 deletions

6
TODO
View File

@@ -27,12 +27,10 @@ Beware that returning 0 is unclear: does it mean there are no possible
lookahead, or that there are too many?
** YYerror
yacc.c should `#define YYERRCODE YYerror` in the *.c for sake of the
projects that used it. In particular
https://git.savannah.gnu.org/gitweb/?p=gettext.git;a=blob;f=gettext-runtime/intl/plural.y;h=a712255af4f2f739c93336d4ff6556d932a426a5;hb=HEAD
should be updated.
should be updated to not use YYERRCODE. Returning an undef token is good
enough.
** Java
*** Examples

View File

@@ -746,6 +746,9 @@ enum { YYENOMEM = -2 };
} \
while (0)
/* Backward compatibility with an undocumented macro.
Use ]b4_symbol(1, id)[ or ]b4_symbol(2, id)[. */
#define YYERRCODE ]b4_symbol(2, id)[
]b4_locations_if([[
]b4_yylloc_default_define[
#define YYRHSLOC(Rhs, K) ((Rhs)[K])

View File

@@ -931,6 +931,9 @@ enum { YYENOMEM = -2 };
} \
while (0)
/* Backward compatibility with an undocumented macro.
Use GRAM_error or GRAM_UNDEF. */
#define YYERRCODE GRAM_UNDEF
/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
If N is 0, then set CURRENT to the empty location which ends