diff --git a/TODO b/TODO index 24af226c..13c1f858 100644 --- a/TODO +++ b/TODO @@ -43,13 +43,6 @@ Enhance bench.pl with %b to run different bisons. Warnings about type tags that are used in printer and dtors, but not for symbols? -** YYPRINT -glr.c inherits its symbol_print function from c.m4, which supports -YYPRINT. But to use YYPRINT yytoknum is needed, which not defined by -glr.c. - -Anyway, IMHO YYPRINT is obsolete and should be restricted to yacc.c. - ** YYERRCODE Defined to 256, but not used, not documented. Probably the token number for the error token, which POSIX wants to be 256, but which diff --git a/data/c.m4 b/data/c.m4 index 78d8e9c0..c0cf9e4d 100644 --- a/data/c.m4 +++ b/data/c.m4 @@ -485,12 +485,15 @@ m4_ifset([b4_parse_param], [, b4_parse_param]))[ { ]b4_parse_param_use([yyoutput], [yylocationp])[ if (!yyvaluep) - return; -# ifdef YYPRINT + return;] +dnl glr.c does not feature yytoknum. +m4_if(b4_skeleton, ["yacc.c"], +[[# ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); # endif - switch (yytype) +]])dnl +[ switch (yytype) { ]b4_symbol_foreach([b4_symbol_printer])dnl [ default: