]> git.saurik.com Git - bison.git/blobdiff - data/c.m4
* src/output.c (escaped_output): Renamed from
[bison.git] / data / c.m4
index c651f62c1c012be00e1d1851ab7734b13366bc1a..79ce9767e7400da410144d5db6db2a03e75e12f3 100644 (file)
--- 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, ")");
 }
-])
+]])