+#if YYDEBUG
+/*-----------------------------.
+| Print this symbol on YYOUT. |
+`-----------------------------*/
+
+b4_c_function([yysymprint],
+ [static void],
+ [[FILE*], [yyout]],
+ [[int], [yytype]],
+ [[YYSTYPE], [yyvalue]]b4_location_if([,
+ [[YYLTYPE], [yylocation]]]))
+{
+ /* Pacify ``unused variable'' warnings. */
+ (void) yyvalue;
+b4_location_if([ (void) yylocation;
+])dnl
+
+ if (yytype < YYNTOKENS)
+ {
+ YYFPRINTF (yyout, "token %s (", yytname[[yytype]]);
+# ifdef YYPRINT
+ YYPRINT (yyout, yytoknum[[yytype]], yyvalue);
+# endif
+ }
+ else
+ YYFPRINTF (yyout, "nterm %s (", yytname[[yytype]]);
+
+ switch (yytype)
+ {
+m4_map([b4_symbol_actions], m4_defn([b4_symbol_printers]))dnl
+ default:
+ break;
+ }
+ YYFPRINTF (yyout, ")");
+}
+#endif /* YYDEBUG. */
+
+
+/*-----------------------------------------------.
+| Release the memory associated to this symbol. |
+`-----------------------------------------------*/
+
+b4_c_function([yydestruct],
+ [static void],
+ [[int], [yytype]],
+ [[YYSTYPE], [yyvalue]]b4_location_if([,
+ [[YYLTYPE], [yylocation]]]))
+{
+ /* Pacify ``unused variable'' warnings. */
+ (void) yyvalue;
+b4_location_if([ (void) yylocation;
+])dnl
+
+ switch (yytype)
+ {
+m4_map([b4_symbol_actions], m4_defn([b4_symbol_destructors]))dnl
+ default:
+ break;
+ }
+}
+
+\f
+