X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/60c8294801d179c1b038f1be3e45c8d5935c5240..f55ec70868b265324deb269be2059b3f85864ac6:/data/c.m4 diff --git a/data/c.m4 b/data/c.m4 index c651f62c..79ce9767 100644 --- a/data/c.m4 +++ b/data/c.m4 @@ -352,6 +352,7 @@ m4_define([b4_yydestruct_generate], ]$1([yydestruct], [static void], + [[const char *yymsg], [yymsg]], [[int yytype], [yytype]], [[YYSTYPE *yyvaluep], [yyvaluep]]b4_location_if([, [[YYLTYPE *yylocationp], [yylocationp]]]))[ @@ -360,6 +361,10 @@ m4_define([b4_yydestruct_generate], (void) yyvaluep; ]b4_location_if([ (void) yylocationp; ])[ + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + switch (yytype) { ]m4_map([b4_symbol_actions], m4_defn([b4_symbol_destructors]))[ @@ -391,23 +396,26 @@ m4_define([b4_yysymprint_generate], (void) yyvaluep; b4_location_if([ (void) yylocationp; ])dnl - +[ if (yytype < YYNTOKENS) - { - YYFPRINTF (yyoutput, "token %s (", yytname[[yytype]]); -# ifdef YYPRINT - YYPRINT (yyoutput, yytoknum[[yytype]], *yyvaluep); -# endif - } + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); else - YYFPRINTF (yyoutput, "nterm %s (", yytname[[yytype]]); + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); +]b4_location_if([ YY_LOCATION_PRINT (yyoutput, *yylocationp); + fprintf (yyoutput, ": "); +])dnl +[ +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# endif switch (yytype) { -m4_map([b4_symbol_actions], m4_defn([b4_symbol_printers]))dnl - default: +]m4_map([b4_symbol_actions], m4_defn([b4_symbol_printers]))dnl +[ default: break; } YYFPRINTF (yyoutput, ")"); } -]) +]])