+} while (YYID (0))
+
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
+do { \
+ if (yydebug) \
+ { \
+ YYFPRINTF (stderr, "%s ", Title); \
+ yysymprint (stderr, \
+ Type, Value, Location); \
+ YYFPRINTF (stderr, "\n"); \
+ } \
+} while (YYID (0))
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT. |
+`--------------------------------*/
+
+/*ARGSUSED*/
+#if defined (__STDC__) || defined (__C99__FUNC__) || defined (__cplusplus)
+static void
+yysymprint (FILE *yyoutput, int yytype, const YYSTYPE * const yyvaluep, const YYLTYPE * const yylocationp)
+#else
+static void
+yysymprint (yyoutput, yytype, yyvaluep, yylocationp)
+ FILE *yyoutput;
+ int yytype;
+ const YYSTYPE * const yyvaluep;
+ const YYLTYPE * const yylocationp;
+#endif
+{
+ YYUSE (yyvaluep);
+ YYUSE (yylocationp);
+ if (yytype < YYNTOKENS)
+ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+ else
+ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+ YY_LOCATION_PRINT (yyoutput, *yylocationp);
+ YYFPRINTF (yyoutput, ": ");
+
+# ifdef YYPRINT
+ if (yytype < YYNTOKENS)
+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# endif
+ switch (yytype)
+ {
+ case 3: /* "\"string\"" */
+#line 168 "parse-gram.y"
+ { fprintf (stderr, "\"%s\"", (yyvaluep->chars)); };
+#line 936 "parse-gram.c"
+ break;
+ case 4: /* "\"integer\"" */
+#line 181 "parse-gram.y"
+ { fprintf (stderr, "%d", (yyvaluep->integer)); };
+#line 941 "parse-gram.c"
+ break;
+ case 8: /* "\"%destructor {...}\"" */
+#line 170 "parse-gram.y"
+ { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
+#line 946 "parse-gram.c"
+ break;
+ case 9: /* "\"%printer {...}\"" */
+#line 174 "parse-gram.y"
+ { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
+#line 951 "parse-gram.c"
+ break;
+ case 10: /* "\"%union {...}\"" */
+#line 175 "parse-gram.y"
+ { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
+#line 956 "parse-gram.c"
+ break;
+ case 26: /* "\"%initial-action {...}\"" */
+#line 171 "parse-gram.y"
+ { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
+#line 961 "parse-gram.c"
+ break;
+ case 27: /* "\"%lex-param {...}\"" */
+#line 172 "parse-gram.y"
+ { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
+#line 966 "parse-gram.c"
+ break;
+ case 34: /* "\"%parse-param {...}\"" */
+#line 173 "parse-gram.y"
+ { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
+#line 971 "parse-gram.c"
+ break;
+ case 42: /* "\"type\"" */
+#line 179 "parse-gram.y"
+ { fprintf (stderr, "<%s>", (yyvaluep->uniqstr)); };
+#line 976 "parse-gram.c"
+ break;
+ case 46: /* "\"identifier\"" */
+#line 183 "parse-gram.y"
+ { fprintf (stderr, "%s", (yyvaluep->symbol)->tag); };
+#line 981 "parse-gram.c"
+ break;
+ case 47: /* "\"identifier:\"" */
+#line 185 "parse-gram.y"
+ { fprintf (stderr, "%s:", (yyvaluep->symbol)->tag); };
+#line 986 "parse-gram.c"
+ break;
+ case 49: /* "\"%{...%}\"" */
+#line 177 "parse-gram.y"
+ { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
+#line 991 "parse-gram.c"
+ break;
+ case 50: /* "\"epilogue\"" */
+#line 177 "parse-gram.y"
+ { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
+#line 996 "parse-gram.c"
+ break;
+ case 51: /* "\"{...}\"" */
+#line 176 "parse-gram.y"
+ { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
+#line 1001 "parse-gram.c"
+ break;
+ case 72: /* "symbol" */
+#line 183 "parse-gram.y"
+ { fprintf (stderr, "%s", (yyvaluep->symbol)->tag); };
+#line 1006 "parse-gram.c"
+ break;
+ case 73: /* "action" */
+#line 176 "parse-gram.y"
+ { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
+#line 1011 "parse-gram.c"
+ break;
+ case 74: /* "string_as_id" */
+#line 183 "parse-gram.y"
+ { fprintf (stderr, "%s", (yyvaluep->symbol)->tag); };
+#line 1016 "parse-gram.c"
+ break;
+ case 75: /* "string_content" */
+#line 168 "parse-gram.y"
+ { fprintf (stderr, "\"%s\"", (yyvaluep->chars)); };
+#line 1021 "parse-gram.c"
+ break;
+ default:
+ break;
+ }
+ YYFPRINTF (yyoutput, ")");
+}
+
+/*------------------------------------------------------------------.
+| yy_stack_print -- Print the state stack from its BOTTOM up to its |
+| TOP (included). |
+`------------------------------------------------------------------*/
+
+#if defined (__STDC__) || defined (__C99__FUNC__) || defined (__cplusplus)
+static void
+yy_stack_print (short int *bottom, short int *top)
+#else
+static void
+yy_stack_print (bottom, top)
+ short int *bottom;
+ short int *top;
+#endif
+{
+ YYFPRINTF (stderr, "Stack now");
+ for (/* Nothing. */; bottom <= top; ++bottom)
+ YYFPRINTF (stderr, " %d", *bottom);
+ YYFPRINTF (stderr, "\n");
+}
+
+# define YY_STACK_PRINT(Bottom, Top) \
+do { \
+ if (yydebug) \
+ yy_stack_print ((Bottom), (Top)); \
+} while (YYID (0))
+
+
+/*------------------------------------------------.
+| Report that the YYRULE is going to be reduced. |
+`------------------------------------------------*/
+
+#if defined (__STDC__) || defined (__C99__FUNC__) || defined (__cplusplus)
+static void
+yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule)
+#else
+static void
+yy_reduce_print (yyvsp, yylsp, yyrule
+ )
+ YYSTYPE *yyvsp;
+ YYLTYPE *yylsp;
+ int yyrule;
+#endif
+{
+ int yynrhs = yyr2[yyrule];
+ int yyi;
+ unsigned long int yylno = yyrline[yyrule];
+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
+ yyrule - 1, yylno);
+ /* The symbols being reduced. */
+ for (yyi = 0; yyi < yynrhs; yyi++)
+ {
+ fprintf (stderr, " $%d = ", yyi + 1);
+ yysymprint (stderr, yyrhs[yyprhs[yyrule] + yyi],
+ &(yyvsp[(yyi + 1) - (yynrhs)])
+ , &(yylsp[(yyi + 1) - (yynrhs)]) );
+ fprintf (stderr, "\n");
+ }
+}
+
+# define YY_REDUCE_PRINT(Rule) \
+do { \
+ if (yydebug) \
+ yy_reduce_print (yyvsp, yylsp, Rule); \
+} while (YYID (0))
+