+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT. |
+`--------------------------------*/
+
+static void
+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
+{
+ FILE *yyo = yyoutput;
+ YYUSE(yyo);
+ YYUSE (yylocationp);
+ if (!yyvaluep)
+ return;
+# ifdef YYPRINT
+ if (yytype < YYNTOKENS)
+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# endif
+ switch (yytype)
+ {
+ case 3: // "string"
+/* Line 727 of yacc.c */
+#line 196 "src/parse-gram.y"
+ { fputs (quotearg_style (c_quoting_style, ((*yyvaluep).chars)), yyo); }
+/* Line 727 of yacc.c */
+#line 1006 "src/parse-gram.c"
+ break;
+
+ case 4: // "integer"
+/* Line 727 of yacc.c */
+#line 209 "src/parse-gram.y"
+ { fprintf (yyo, "%d", ((*yyvaluep).integer)); }
+/* Line 727 of yacc.c */
+#line 1014 "src/parse-gram.c"
+ break;
+
+ case 24: // "%<flag>"
+/* Line 727 of yacc.c */
+#line 205 "src/parse-gram.y"
+ { fprintf (yyo, "%%%s", ((*yyvaluep).uniqstr)); }
+/* Line 727 of yacc.c */
+#line 1022 "src/parse-gram.c"
+ break;
+
+ case 40: // "{...}"
+/* Line 727 of yacc.c */
+#line 198 "src/parse-gram.y"
+ { fprintf (yyo, "{\n%s\n}", ((*yyvaluep).code)); }
+/* Line 727 of yacc.c */
+#line 1030 "src/parse-gram.c"
+ break;
+
+ case 42: // "[identifier]"
+/* Line 727 of yacc.c */
+#line 203 "src/parse-gram.y"
+ { fprintf (yyo, "[%s]", ((*yyvaluep).uniqstr)); }
+/* Line 727 of yacc.c */
+#line 1038 "src/parse-gram.c"
+ break;
+
+ case 43: // "char"
+/* Line 727 of yacc.c */
+#line 190 "src/parse-gram.y"
+ { fputs (char_name (((*yyvaluep).character)), yyo); }
+/* Line 727 of yacc.c */
+#line 1046 "src/parse-gram.c"
+ break;
+
+ case 44: // "epilogue"
+/* Line 727 of yacc.c */
+#line 198 "src/parse-gram.y"
+ { fprintf (yyo, "{\n%s\n}", ((*yyvaluep).chars)); }
+/* Line 727 of yacc.c */
+#line 1054 "src/parse-gram.c"
+ break;
+
+ case 46: // "identifier"
+/* Line 727 of yacc.c */
+#line 202 "src/parse-gram.y"
+ { fputs (((*yyvaluep).uniqstr), yyo); }
+/* Line 727 of yacc.c */
+#line 1062 "src/parse-gram.c"
+ break;
+
+ case 47: // "identifier:"
+/* Line 727 of yacc.c */
+#line 204 "src/parse-gram.y"
+ { fprintf (yyo, "%s:", ((*yyvaluep).uniqstr)); }
+/* Line 727 of yacc.c */
+#line 1070 "src/parse-gram.c"
+ break;
+
+ case 50: // "%{...%}"
+/* Line 727 of yacc.c */
+#line 198 "src/parse-gram.y"
+ { fprintf (yyo, "{\n%s\n}", ((*yyvaluep).chars)); }
+/* Line 727 of yacc.c */
+#line 1078 "src/parse-gram.c"
+ break;
+
+ case 52: // "<tag>"
+/* Line 727 of yacc.c */
+#line 206 "src/parse-gram.y"
+ { fprintf (yyo, "<%s>", ((*yyvaluep).uniqstr)); }
+/* Line 727 of yacc.c */
+#line 1086 "src/parse-gram.c"
+ break;
+
+ case 55: // "%param"
+/* Line 727 of yacc.c */
+#line 252 "src/parse-gram.y"
+ {
+ switch (((*yyvaluep).param))
+ {
+#define CASE(In, Out) \
+ case param_ ## In: fputs ("%" #Out, stderr); break
+ CASE(lex, lex-param);
+ CASE(parse, parse-param);
+ CASE(both, param);
+#undef CASE
+ case param_none: aver (false); break;
+ }
+}
+/* Line 727 of yacc.c */
+#line 1105 "src/parse-gram.c"
+ break;
+
+ case 64: // code_props_type
+/* Line 727 of yacc.c */
+#line 424 "src/parse-gram.y"
+ { fprintf (yyo, "%s", code_props_type_string (((*yyvaluep).code_type))); }
+/* Line 727 of yacc.c */
+#line 1113 "src/parse-gram.c"
+ break;
+
+ case 73: // symbol.prec
+/* Line 727 of yacc.c */
+#line 212 "src/parse-gram.y"
+ { fprintf (yyo, "%s", ((*yyvaluep).symbol)->tag); }
+/* Line 727 of yacc.c */
+#line 1121 "src/parse-gram.c"
+ break;
+
+ case 77: // tag
+/* Line 727 of yacc.c */
+#line 206 "src/parse-gram.y"
+ { fprintf (yyo, "<%s>", ((*yyvaluep).uniqstr)); }
+/* Line 727 of yacc.c */
+#line 1129 "src/parse-gram.c"
+ break;
+
+ case 87: // variable
+/* Line 727 of yacc.c */
+#line 202 "src/parse-gram.y"
+ { fputs (((*yyvaluep).uniqstr), yyo); }
+/* Line 727 of yacc.c */
+#line 1137 "src/parse-gram.c"
+ break;
+
+ case 88: // content.opt
+/* Line 727 of yacc.c */
+#line 198 "src/parse-gram.y"
+ { fprintf (yyo, "{\n%s\n}", ((*yyvaluep).chars)); }
+/* Line 727 of yacc.c */
+#line 1145 "src/parse-gram.c"
+ break;
+
+ case 89: // braceless
+/* Line 727 of yacc.c */
+#line 198 "src/parse-gram.y"
+ { fprintf (yyo, "{\n%s\n}", ((*yyvaluep).chars)); }
+/* Line 727 of yacc.c */
+#line 1153 "src/parse-gram.c"
+ break;
+
+ case 90: // id
+/* Line 727 of yacc.c */
+#line 212 "src/parse-gram.y"
+ { fprintf (yyo, "%s", ((*yyvaluep).symbol)->tag); }
+/* Line 727 of yacc.c */
+#line 1161 "src/parse-gram.c"
+ break;
+
+ case 91: // id_colon
+/* Line 727 of yacc.c */
+#line 213 "src/parse-gram.y"
+ { fprintf (yyo, "%s:", ((*yyvaluep).symbol)->tag); }
+/* Line 727 of yacc.c */
+#line 1169 "src/parse-gram.c"
+ break;
+
+ case 92: // symbol
+/* Line 727 of yacc.c */
+#line 212 "src/parse-gram.y"
+ { fprintf (yyo, "%s", ((*yyvaluep).symbol)->tag); }
+/* Line 727 of yacc.c */
+#line 1177 "src/parse-gram.c"
+ break;
+
+ case 93: // string_as_id
+/* Line 727 of yacc.c */
+#line 212 "src/parse-gram.y"
+ { fprintf (yyo, "%s", ((*yyvaluep).symbol)->tag); }
+/* Line 727 of yacc.c */
+#line 1185 "src/parse-gram.c"
+ break;
+
+ default:
+ break;
+ }
+}
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT. |
+`--------------------------------*/
+
+static void
+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
+{
+ if (yytype < YYNTOKENS)
+ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+ else
+ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+ YY_LOCATION_PRINT (yyoutput, *yylocationp);
+ YYFPRINTF (yyoutput, ": ");
+ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp);
+ YYFPRINTF (yyoutput, ")");
+}