-/* A Bison parser, made by GNU Bison 2.5.1.899-d02b0-dirty.  */
+/* A Bison parser, made by GNU Bison 2.5.1.899-007c5.  */
 
 /* Bison implementation for Yacc-like parsers in C
 
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "2.5.1.899-d02b0-dirty"
+#define YYBISON_VERSION "2.5.1.899-007c5"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
 #line 326 "src/parse-gram.c"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 #endif
 
   int last_line;
   int last_column;
 } YYLTYPE;
-# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
 # define YYLTYPE_IS_DECLARED 1
 # define YYLTYPE_IS_TRIVIAL 1
 #endif
 /* Copy the second part of user declarations.  */
 
 /* Line 354 of yacc.c  */
-#line 368 "src/parse-gram.c"
+#line 366 "src/parse-gram.c"
 /* Unqualified %code blocks.  */
 /* Line 355 of yacc.c  */
 #line 57 "src/parse-gram.y"
 
 
 /* Line 355 of yacc.c  */
-#line 417 "src/parse-gram.c"
+#line 415 "src/parse-gram.c"
 
 #ifdef short
 # undef short
 #line 195 "src/parse-gram.y"
         { fputs (quotearg_style (c_quoting_style, ((*yyvaluep).chars)), yyo); }
 /* Line 725 of yacc.c  */
-#line 1052 "src/parse-gram.c"
+#line 1050 "src/parse-gram.c"
         break;
 
             case 4: // "integer"
 #line 208 "src/parse-gram.y"
         { fprintf (yyo, "%d", ((*yyvaluep).integer)); }
 /* Line 725 of yacc.c  */
-#line 1060 "src/parse-gram.c"
+#line 1058 "src/parse-gram.c"
         break;
 
             case 24: // "%<flag>"
 #line 204 "src/parse-gram.y"
         { fprintf (yyo, "%%%s", ((*yyvaluep).uniqstr)); }
 /* Line 725 of yacc.c  */
-#line 1068 "src/parse-gram.c"
+#line 1066 "src/parse-gram.c"
         break;
 
             case 40: // "{...}"
 #line 197 "src/parse-gram.y"
         { fprintf (yyo, "{\n%s\n}", ((*yyvaluep).code)); }
 /* Line 725 of yacc.c  */
-#line 1076 "src/parse-gram.c"
+#line 1074 "src/parse-gram.c"
         break;
 
             case 42: // "[identifier]"
 #line 202 "src/parse-gram.y"
         { fprintf (yyo, "[%s]", ((*yyvaluep).uniqstr)); }
 /* Line 725 of yacc.c  */
-#line 1084 "src/parse-gram.c"
+#line 1082 "src/parse-gram.c"
         break;
 
             case 43: // "char"
 #line 189 "src/parse-gram.y"
         { fputs (char_name (((*yyvaluep).character)), yyo); }
 /* Line 725 of yacc.c  */
-#line 1092 "src/parse-gram.c"
+#line 1090 "src/parse-gram.c"
         break;
 
             case 44: // "epilogue"
 #line 197 "src/parse-gram.y"
         { fprintf (yyo, "{\n%s\n}", ((*yyvaluep).chars)); }
 /* Line 725 of yacc.c  */
-#line 1100 "src/parse-gram.c"
+#line 1098 "src/parse-gram.c"
         break;
 
             case 46: // "identifier"
 #line 201 "src/parse-gram.y"
         { fputs (((*yyvaluep).uniqstr), yyo); }
 /* Line 725 of yacc.c  */
-#line 1108 "src/parse-gram.c"
+#line 1106 "src/parse-gram.c"
         break;
 
             case 47: // "identifier:"
 #line 203 "src/parse-gram.y"
         { fprintf (yyo, "%s:", ((*yyvaluep).uniqstr)); }
 /* Line 725 of yacc.c  */
-#line 1116 "src/parse-gram.c"
+#line 1114 "src/parse-gram.c"
         break;
 
             case 50: // "%{...%}"
 #line 197 "src/parse-gram.y"
         { fprintf (yyo, "{\n%s\n}", ((*yyvaluep).chars)); }
 /* Line 725 of yacc.c  */
-#line 1124 "src/parse-gram.c"
+#line 1122 "src/parse-gram.c"
         break;
 
             case 52: // "<tag>"
 #line 205 "src/parse-gram.y"
         { fprintf (yyo, "<%s>", ((*yyvaluep).uniqstr)); }
 /* Line 725 of yacc.c  */
-#line 1132 "src/parse-gram.c"
+#line 1130 "src/parse-gram.c"
         break;
 
             case 55: // "%param"
     }
 }
 /* Line 725 of yacc.c  */
-#line 1151 "src/parse-gram.c"
+#line 1149 "src/parse-gram.c"
         break;
 
             case 64: // code_props_type
 #line 421 "src/parse-gram.y"
         { fprintf (yyo, "%s", code_props_type_string (((*yyvaluep).code_type))); }
 /* Line 725 of yacc.c  */
-#line 1159 "src/parse-gram.c"
+#line 1157 "src/parse-gram.c"
         break;
 
             case 73: // symbol.prec
 #line 211 "src/parse-gram.y"
         { fprintf (yyo, "%s", ((*yyvaluep).symbol)->tag); }
 /* Line 725 of yacc.c  */
-#line 1167 "src/parse-gram.c"
+#line 1165 "src/parse-gram.c"
         break;
 
             case 77: // tag
 #line 205 "src/parse-gram.y"
         { fprintf (yyo, "<%s>", ((*yyvaluep).uniqstr)); }
 /* Line 725 of yacc.c  */
-#line 1175 "src/parse-gram.c"
+#line 1173 "src/parse-gram.c"
         break;
 
             case 87: // variable
 #line 201 "src/parse-gram.y"
         { fputs (((*yyvaluep).uniqstr), yyo); }
 /* Line 725 of yacc.c  */
-#line 1183 "src/parse-gram.c"
+#line 1181 "src/parse-gram.c"
         break;
 
             case 88: // content.opt
 #line 197 "src/parse-gram.y"
         { fprintf (yyo, "{\n%s\n}", ((*yyvaluep).chars)); }
 /* Line 725 of yacc.c  */
-#line 1191 "src/parse-gram.c"
+#line 1189 "src/parse-gram.c"
         break;
 
             case 89: // braceless
 #line 197 "src/parse-gram.y"
         { fprintf (yyo, "{\n%s\n}", ((*yyvaluep).chars)); }
 /* Line 725 of yacc.c  */
-#line 1199 "src/parse-gram.c"
+#line 1197 "src/parse-gram.c"
         break;
 
             case 90: // id
 #line 211 "src/parse-gram.y"
         { fprintf (yyo, "%s", ((*yyvaluep).symbol)->tag); }
 /* Line 725 of yacc.c  */
-#line 1207 "src/parse-gram.c"
+#line 1205 "src/parse-gram.c"
         break;
 
             case 91: // id_colon
 #line 212 "src/parse-gram.y"
         { fprintf (yyo, "%s:", ((*yyvaluep).symbol)->tag); }
 /* Line 725 of yacc.c  */
-#line 1215 "src/parse-gram.c"
+#line 1213 "src/parse-gram.c"
         break;
 
             case 92: // symbol
 #line 211 "src/parse-gram.y"
         { fprintf (yyo, "%s", ((*yyvaluep).symbol)->tag); }
 /* Line 725 of yacc.c  */
-#line 1223 "src/parse-gram.c"
+#line 1221 "src/parse-gram.c"
         break;
 
             case 93: // string_as_id
 #line 211 "src/parse-gram.y"
         { fprintf (yyo, "%s", ((*yyvaluep).symbol)->tag); }
 /* Line 725 of yacc.c  */
-#line 1231 "src/parse-gram.c"
+#line 1229 "src/parse-gram.c"
         break;
 
       default:
   boundary_set (&yylloc.end, current_file, 1, 1);
 }
 /* Line 1486 of yacc.c  */
-#line 2013 "src/parse-gram.c"
+#line 2011 "src/parse-gram.c"
   yylsp[0] = yylloc;
 
   goto yysetstate;
       code_scanner_last_string_free ();
     }
 /* Line 1702 of yacc.c  */
-#line 2218 "src/parse-gram.c"
+#line 2216 "src/parse-gram.c"
     break;
 
   case 7:
       muscle_percent_define_ensure ((yyvsp[0].uniqstr), (yylsp[0]), true);
     }
 /* Line 1702 of yacc.c  */
-#line 2228 "src/parse-gram.c"
+#line 2226 "src/parse-gram.c"
     break;
 
   case 8:
                                     MUSCLE_PERCENT_DEFINE_GRAMMAR_FILE);
     }
 /* Line 1702 of yacc.c  */
-#line 2239 "src/parse-gram.c"
+#line 2237 "src/parse-gram.c"
     break;
 
   case 9:
 #line 305 "src/parse-gram.y"
     { defines_flag = true; }
 /* Line 1702 of yacc.c  */
-#line 2247 "src/parse-gram.c"
+#line 2245 "src/parse-gram.c"
     break;
 
   case 10:
       spec_defines_file = xstrdup ((yyvsp[0].chars));
     }
 /* Line 1702 of yacc.c  */
-#line 2258 "src/parse-gram.c"
+#line 2256 "src/parse-gram.c"
     break;
 
   case 11:
                                     MUSCLE_PERCENT_DEFINE_GRAMMAR_FILE);
     }
 /* Line 1702 of yacc.c  */
-#line 2269 "src/parse-gram.c"
+#line 2267 "src/parse-gram.c"
     break;
 
   case 12:
 #line 316 "src/parse-gram.y"
     { expected_sr_conflicts = (yyvsp[0].integer); }
 /* Line 1702 of yacc.c  */
-#line 2277 "src/parse-gram.c"
+#line 2275 "src/parse-gram.c"
     break;
 
   case 13:
 #line 317 "src/parse-gram.y"
     { expected_rr_conflicts = (yyvsp[0].integer); }
 /* Line 1702 of yacc.c  */
-#line 2285 "src/parse-gram.c"
+#line 2283 "src/parse-gram.c"
     break;
 
   case 14:
 #line 318 "src/parse-gram.y"
     { spec_file_prefix = (yyvsp[0].chars); }
 /* Line 1702 of yacc.c  */
-#line 2293 "src/parse-gram.c"
+#line 2291 "src/parse-gram.c"
     break;
 
   case 15:
 #line 319 "src/parse-gram.y"
     { spec_file_prefix = (yyvsp[0].chars); }
 /* Line 1702 of yacc.c  */
-#line 2301 "src/parse-gram.c"
+#line 2299 "src/parse-gram.c"
     break;
 
   case 16:
       glr_parser = true;
     }
 /* Line 1702 of yacc.c  */
-#line 2312 "src/parse-gram.c"
+#line 2310 "src/parse-gram.c"
     break;
 
   case 17:
       code_scanner_last_string_free ();
     }
 /* Line 1702 of yacc.c  */
-#line 2327 "src/parse-gram.c"
+#line 2325 "src/parse-gram.c"
     break;
 
   case 18:
 #line 334 "src/parse-gram.y"
     { language_argmatch ((yyvsp[0].chars), grammar_prio, (yylsp[-1])); }
 /* Line 1702 of yacc.c  */
-#line 2335 "src/parse-gram.c"
+#line 2333 "src/parse-gram.c"
     break;
 
   case 19:
 #line 335 "src/parse-gram.y"
     { spec_name_prefix = (yyvsp[0].chars); }
 /* Line 1702 of yacc.c  */
-#line 2343 "src/parse-gram.c"
+#line 2341 "src/parse-gram.c"
     break;
 
   case 20:
 #line 336 "src/parse-gram.y"
     { spec_name_prefix = (yyvsp[0].chars); }
 /* Line 1702 of yacc.c  */
-#line 2351 "src/parse-gram.c"
+#line 2349 "src/parse-gram.c"
     break;
 
   case 21:
 #line 337 "src/parse-gram.y"
     { no_lines_flag = true; }
 /* Line 1702 of yacc.c  */
-#line 2359 "src/parse-gram.c"
+#line 2357 "src/parse-gram.c"
     break;
 
   case 22:
 #line 338 "src/parse-gram.y"
     { nondeterministic_parser = true; }
 /* Line 1702 of yacc.c  */
-#line 2367 "src/parse-gram.c"
+#line 2365 "src/parse-gram.c"
     break;
 
   case 23:
 #line 339 "src/parse-gram.y"
     { spec_outfile = (yyvsp[0].chars); }
 /* Line 1702 of yacc.c  */
-#line 2375 "src/parse-gram.c"
+#line 2373 "src/parse-gram.c"
     break;
 
   case 24:
 #line 340 "src/parse-gram.y"
     { spec_outfile = (yyvsp[0].chars); }
 /* Line 1702 of yacc.c  */
-#line 2383 "src/parse-gram.c"
+#line 2381 "src/parse-gram.c"
     break;
 
   case 25:
 #line 341 "src/parse-gram.y"
     { current_param = (yyvsp[0].param); }
 /* Line 1702 of yacc.c  */
-#line 2391 "src/parse-gram.c"
+#line 2389 "src/parse-gram.c"
     break;
 
   case 26:
 #line 341 "src/parse-gram.y"
     { current_param = param_none; }
 /* Line 1702 of yacc.c  */
-#line 2399 "src/parse-gram.c"
+#line 2397 "src/parse-gram.c"
     break;
 
   case 27:
 #line 342 "src/parse-gram.y"
     { version_check (&(yylsp[0]), (yyvsp[0].chars)); }
 /* Line 1702 of yacc.c  */
-#line 2407 "src/parse-gram.c"
+#line 2405 "src/parse-gram.c"
     break;
 
   case 28:
       skeleton_arg (skeleton_user, grammar_prio, (yylsp[-1]));
     }
 /* Line 1702 of yacc.c  */
-#line 2437 "src/parse-gram.c"
+#line 2435 "src/parse-gram.c"
     break;
 
   case 29:
 #line 367 "src/parse-gram.y"
     { token_table_flag = true; }
 /* Line 1702 of yacc.c  */
-#line 2445 "src/parse-gram.c"
+#line 2443 "src/parse-gram.c"
     break;
 
   case 30:
 #line 368 "src/parse-gram.y"
     { report_flag |= report_states; }
 /* Line 1702 of yacc.c  */
-#line 2453 "src/parse-gram.c"
+#line 2451 "src/parse-gram.c"
     break;
 
   case 31:
 #line 369 "src/parse-gram.y"
     { yacc_flag = true; }
 /* Line 1702 of yacc.c  */
-#line 2461 "src/parse-gram.c"
+#line 2459 "src/parse-gram.c"
     break;
 
   case 33:
 #line 374 "src/parse-gram.y"
     { add_param (current_param, (yyvsp[0].code), (yylsp[0])); }
 /* Line 1702 of yacc.c  */
-#line 2469 "src/parse-gram.c"
+#line 2467 "src/parse-gram.c"
     break;
 
   case 34:
 #line 375 "src/parse-gram.y"
     { add_param (current_param, (yyvsp[0].code), (yylsp[0])); }
 /* Line 1702 of yacc.c  */
-#line 2477 "src/parse-gram.c"
+#line 2475 "src/parse-gram.c"
     break;
 
   case 37:
       grammar_start_symbol_set ((yyvsp[0].symbol), (yylsp[0]));
     }
 /* Line 1702 of yacc.c  */
-#line 2487 "src/parse-gram.c"
+#line 2485 "src/parse-gram.c"
     break;
 
   case 38:
       symbol_list_free ((yyvsp[0].list));
     }
 /* Line 1702 of yacc.c  */
-#line 2500 "src/parse-gram.c"
+#line 2498 "src/parse-gram.c"
     break;
 
   case 39:
       default_prec = true;
     }
 /* Line 1702 of yacc.c  */
-#line 2510 "src/parse-gram.c"
+#line 2508 "src/parse-gram.c"
     break;
 
   case 40:
       default_prec = false;
     }
 /* Line 1702 of yacc.c  */
-#line 2520 "src/parse-gram.c"
+#line 2518 "src/parse-gram.c"
     break;
 
   case 41:
       code_scanner_last_string_free ();
     }
 /* Line 1702 of yacc.c  */
-#line 2533 "src/parse-gram.c"
+#line 2531 "src/parse-gram.c"
     break;
 
   case 42:
       code_scanner_last_string_free ();
     }
 /* Line 1702 of yacc.c  */
-#line 2544 "src/parse-gram.c"
+#line 2542 "src/parse-gram.c"
     break;
 
   case 43:
 #line 423 "src/parse-gram.y"
     { (yyval.code_type) = destructor; }
 /* Line 1702 of yacc.c  */
-#line 2552 "src/parse-gram.c"
+#line 2550 "src/parse-gram.c"
     break;
 
   case 44:
 #line 424 "src/parse-gram.y"
     { (yyval.code_type) = printer; }
 /* Line 1702 of yacc.c  */
-#line 2560 "src/parse-gram.c"
+#line 2558 "src/parse-gram.c"
     break;
 
   case 45:
 #line 434 "src/parse-gram.y"
     {}
 /* Line 1702 of yacc.c  */
-#line 2568 "src/parse-gram.c"
+#line 2566 "src/parse-gram.c"
     break;
 
   case 46:
 #line 435 "src/parse-gram.y"
     { muscle_code_grow ("union_name", (yyvsp[0].uniqstr), (yylsp[0])); }
 /* Line 1702 of yacc.c  */
-#line 2576 "src/parse-gram.c"
+#line 2574 "src/parse-gram.c"
     break;
 
   case 47:
       code_scanner_last_string_free ();
     }
 /* Line 1702 of yacc.c  */
-#line 2588 "src/parse-gram.c"
+#line 2586 "src/parse-gram.c"
     break;
 
   case 48:
 #line 451 "src/parse-gram.y"
     { current_class = nterm_sym; }
 /* Line 1702 of yacc.c  */
-#line 2596 "src/parse-gram.c"
+#line 2594 "src/parse-gram.c"
     break;
 
   case 49:
       current_type = NULL;
     }
 /* Line 1702 of yacc.c  */
-#line 2607 "src/parse-gram.c"
+#line 2605 "src/parse-gram.c"
     break;
 
   case 50:
 #line 456 "src/parse-gram.y"
     { current_class = token_sym; }
 /* Line 1702 of yacc.c  */
-#line 2615 "src/parse-gram.c"
+#line 2613 "src/parse-gram.c"
     break;
 
   case 51:
       current_type = NULL;
     }
 /* Line 1702 of yacc.c  */
-#line 2626 "src/parse-gram.c"
+#line 2624 "src/parse-gram.c"
     break;
 
   case 52:
       symbol_list_free ((yyvsp[0].list));
     }
 /* Line 1702 of yacc.c  */
-#line 2640 "src/parse-gram.c"
+#line 2638 "src/parse-gram.c"
     break;
 
   case 53:
       current_type = NULL;
     }
 /* Line 1702 of yacc.c  */
-#line 2658 "src/parse-gram.c"
+#line 2656 "src/parse-gram.c"
     break;
 
   case 54:
 #line 487 "src/parse-gram.y"
     { (yyval.assoc) = left_assoc; }
 /* Line 1702 of yacc.c  */
-#line 2666 "src/parse-gram.c"
+#line 2664 "src/parse-gram.c"
     break;
 
   case 55:
 #line 488 "src/parse-gram.y"
     { (yyval.assoc) = right_assoc; }
 /* Line 1702 of yacc.c  */
-#line 2674 "src/parse-gram.c"
+#line 2672 "src/parse-gram.c"
     break;
 
   case 56:
 #line 489 "src/parse-gram.y"
     { (yyval.assoc) = non_assoc; }
 /* Line 1702 of yacc.c  */
-#line 2682 "src/parse-gram.c"
+#line 2680 "src/parse-gram.c"
     break;
 
   case 57:
 #line 490 "src/parse-gram.y"
     { (yyval.assoc) = precedence_assoc; }
 /* Line 1702 of yacc.c  */
-#line 2690 "src/parse-gram.c"
+#line 2688 "src/parse-gram.c"
     break;
 
   case 58:
 #line 494 "src/parse-gram.y"
     { current_type = NULL; }
 /* Line 1702 of yacc.c  */
-#line 2698 "src/parse-gram.c"
+#line 2696 "src/parse-gram.c"
     break;
 
   case 59:
 #line 495 "src/parse-gram.y"
     { current_type = (yyvsp[0].uniqstr); tag_seen = true; }
 /* Line 1702 of yacc.c  */
-#line 2706 "src/parse-gram.c"
+#line 2704 "src/parse-gram.c"
     break;
 
   case 60:
 #line 501 "src/parse-gram.y"
     { (yyval.list) = symbol_list_sym_new ((yyvsp[0].symbol), (yylsp[0])); }
 /* Line 1702 of yacc.c  */
-#line 2714 "src/parse-gram.c"
+#line 2712 "src/parse-gram.c"
     break;
 
   case 61:
 #line 503 "src/parse-gram.y"
     { (yyval.list) = symbol_list_prepend ((yyvsp[-1].list), symbol_list_sym_new ((yyvsp[0].symbol), (yylsp[0]))); }
 /* Line 1702 of yacc.c  */
-#line 2722 "src/parse-gram.c"
+#line 2720 "src/parse-gram.c"
     break;
 
   case 62:
 #line 507 "src/parse-gram.y"
     { (yyval.symbol) = (yyvsp[0].symbol); }
 /* Line 1702 of yacc.c  */
-#line 2730 "src/parse-gram.c"
+#line 2728 "src/parse-gram.c"
     break;
 
   case 63:
 #line 508 "src/parse-gram.y"
     { (yyval.symbol) = (yyvsp[-1].symbol); symbol_user_token_number_set ((yyvsp[-1].symbol), (yyvsp[0].integer), (yylsp[0])); }
 /* Line 1702 of yacc.c  */
-#line 2738 "src/parse-gram.c"
+#line 2736 "src/parse-gram.c"
     break;
 
   case 64:
 #line 514 "src/parse-gram.y"
     { (yyval.list) = symbol_list_sym_new ((yyvsp[0].symbol), (yylsp[0])); }
 /* Line 1702 of yacc.c  */
-#line 2746 "src/parse-gram.c"
+#line 2744 "src/parse-gram.c"
     break;
 
   case 65:
 #line 516 "src/parse-gram.y"
     { (yyval.list) = symbol_list_prepend ((yyvsp[-1].list), symbol_list_sym_new ((yyvsp[0].symbol), (yylsp[0]))); }
 /* Line 1702 of yacc.c  */
-#line 2754 "src/parse-gram.c"
+#line 2752 "src/parse-gram.c"
     break;
 
   case 66:
 #line 520 "src/parse-gram.y"
     { (yyval.list) = (yyvsp[0].list); }
 /* Line 1702 of yacc.c  */
-#line 2762 "src/parse-gram.c"
+#line 2760 "src/parse-gram.c"
     break;
 
   case 67:
 #line 521 "src/parse-gram.y"
     { (yyval.list) = symbol_list_prepend ((yyvsp[-1].list), (yyvsp[0].list)); }
 /* Line 1702 of yacc.c  */
-#line 2770 "src/parse-gram.c"
+#line 2768 "src/parse-gram.c"
     break;
 
   case 68:
 #line 525 "src/parse-gram.y"
     { (yyval.list) = symbol_list_sym_new ((yyvsp[0].symbol), (yylsp[0])); }
 /* Line 1702 of yacc.c  */
-#line 2778 "src/parse-gram.c"
+#line 2776 "src/parse-gram.c"
     break;
 
   case 69:
 #line 526 "src/parse-gram.y"
     { (yyval.list) = symbol_list_type_new ((yyvsp[0].uniqstr), (yylsp[0])); }
 /* Line 1702 of yacc.c  */
-#line 2786 "src/parse-gram.c"
+#line 2784 "src/parse-gram.c"
     break;
 
   case 71:
 #line 531 "src/parse-gram.y"
     { (yyval.uniqstr) = uniqstr_new ("*"); }
 /* Line 1702 of yacc.c  */
-#line 2794 "src/parse-gram.c"
+#line 2792 "src/parse-gram.c"
     break;
 
   case 72:
 #line 532 "src/parse-gram.y"
     { (yyval.uniqstr) = uniqstr_new (""); }
 /* Line 1702 of yacc.c  */
-#line 2802 "src/parse-gram.c"
+#line 2800 "src/parse-gram.c"
     break;
 
   case 73:
        tag_seen = true;
      }
 /* Line 1702 of yacc.c  */
-#line 2813 "src/parse-gram.c"
+#line 2811 "src/parse-gram.c"
     break;
 
   case 74:
        symbol_type_set ((yyvsp[0].symbol), current_type, (yylsp[0]));
      }
 /* Line 1702 of yacc.c  */
-#line 2824 "src/parse-gram.c"
+#line 2822 "src/parse-gram.c"
     break;
 
   case 75:
       symbol_user_token_number_set ((yyvsp[-1].symbol), (yyvsp[0].integer), (yylsp[0]));
     }
 /* Line 1702 of yacc.c  */
-#line 2836 "src/parse-gram.c"
+#line 2834 "src/parse-gram.c"
     break;
 
   case 76:
       symbol_make_alias ((yyvsp[-1].symbol), (yyvsp[0].symbol), (yyloc));
     }
 /* Line 1702 of yacc.c  */
-#line 2848 "src/parse-gram.c"
+#line 2846 "src/parse-gram.c"
     break;
 
   case 77:
       symbol_make_alias ((yyvsp[-2].symbol), (yyvsp[0].symbol), (yyloc));
     }
 /* Line 1702 of yacc.c  */
-#line 2861 "src/parse-gram.c"
+#line 2859 "src/parse-gram.c"
     break;
 
   case 84:
       yyerrok;
     }
 /* Line 1702 of yacc.c  */
-#line 2871 "src/parse-gram.c"
+#line 2869 "src/parse-gram.c"
     break;
 
   case 85:
 #line 596 "src/parse-gram.y"
     { current_lhs ((yyvsp[-1].symbol), (yylsp[-1]), (yyvsp[0].named_ref)); }
 /* Line 1702 of yacc.c  */
-#line 2879 "src/parse-gram.c"
+#line 2877 "src/parse-gram.c"
     break;
 
   case 86:
     current_lhs (0, (yylsp[-3]), 0);
   }
 /* Line 1702 of yacc.c  */
-#line 2890 "src/parse-gram.c"
+#line 2888 "src/parse-gram.c"
     break;
 
   case 87:
 #line 604 "src/parse-gram.y"
     { grammar_current_rule_end ((yylsp[0])); }
 /* Line 1702 of yacc.c  */
-#line 2898 "src/parse-gram.c"
+#line 2896 "src/parse-gram.c"
     break;
 
   case 88:
 #line 605 "src/parse-gram.y"
     { grammar_current_rule_end ((yylsp[0])); }
 /* Line 1702 of yacc.c  */
-#line 2906 "src/parse-gram.c"
+#line 2904 "src/parse-gram.c"
     break;
 
   case 90:
     { grammar_current_rule_begin (current_lhs_symbol, current_lhs_location,
                                   current_lhs_named_ref); }
 /* Line 1702 of yacc.c  */
-#line 2915 "src/parse-gram.c"
+#line 2913 "src/parse-gram.c"
     break;
 
   case 91:
 #line 614 "src/parse-gram.y"
     { grammar_current_rule_symbol_append ((yyvsp[-1].symbol), (yylsp[-1]), (yyvsp[0].named_ref)); }
 /* Line 1702 of yacc.c  */
-#line 2923 "src/parse-gram.c"
+#line 2921 "src/parse-gram.c"
     break;
 
   case 92:
 #line 616 "src/parse-gram.y"
     { grammar_current_rule_action_append ((yyvsp[-1].code), (yylsp[-1]), (yyvsp[0].named_ref), false); }
 /* Line 1702 of yacc.c  */
-#line 2931 "src/parse-gram.c"
+#line 2929 "src/parse-gram.c"
     break;
 
   case 93:
 #line 618 "src/parse-gram.y"
     { grammar_current_rule_action_append ((yyvsp[0].code), (yylsp[0]), NULL, true); }
 /* Line 1702 of yacc.c  */
-#line 2939 "src/parse-gram.c"
+#line 2937 "src/parse-gram.c"
     break;
 
   case 94:
 #line 620 "src/parse-gram.y"
     { grammar_current_rule_prec_set ((yyvsp[0].symbol), (yylsp[0])); }
 /* Line 1702 of yacc.c  */
-#line 2947 "src/parse-gram.c"
+#line 2945 "src/parse-gram.c"
     break;
 
   case 95:
 #line 622 "src/parse-gram.y"
     { grammar_current_rule_dprec_set ((yyvsp[0].integer), (yylsp[0])); }
 /* Line 1702 of yacc.c  */
-#line 2955 "src/parse-gram.c"
+#line 2953 "src/parse-gram.c"
     break;
 
   case 96:
 #line 624 "src/parse-gram.y"
     { grammar_current_rule_merge_set ((yyvsp[0].uniqstr), (yylsp[0])); }
 /* Line 1702 of yacc.c  */
-#line 2963 "src/parse-gram.c"
+#line 2961 "src/parse-gram.c"
     break;
 
   case 97:
 #line 628 "src/parse-gram.y"
     { (yyval.named_ref) = 0; }
 /* Line 1702 of yacc.c  */
-#line 2971 "src/parse-gram.c"
+#line 2969 "src/parse-gram.c"
     break;
 
   case 98:
 #line 630 "src/parse-gram.y"
     { (yyval.named_ref) = named_ref_new((yyvsp[0].uniqstr), (yylsp[0])); }
 /* Line 1702 of yacc.c  */
-#line 2979 "src/parse-gram.c"
+#line 2977 "src/parse-gram.c"
     break;
 
   case 100:
 #line 641 "src/parse-gram.y"
     { (yyval.uniqstr) = uniqstr_new ((yyvsp[0].chars)); }
 /* Line 1702 of yacc.c  */
-#line 2987 "src/parse-gram.c"
+#line 2985 "src/parse-gram.c"
     break;
 
   case 101:
 #line 646 "src/parse-gram.y"
     { (yyval.chars) = ""; }
 /* Line 1702 of yacc.c  */
-#line 2995 "src/parse-gram.c"
+#line 2993 "src/parse-gram.c"
     break;
 
   case 102:
 #line 647 "src/parse-gram.y"
     { (yyval.chars) = (yyvsp[0].uniqstr); }
 /* Line 1702 of yacc.c  */
-#line 3003 "src/parse-gram.c"
+#line 3001 "src/parse-gram.c"
     break;
 
   case 104:
       (yyval.chars) = plain_code.code;
     }
 /* Line 1702 of yacc.c  */
-#line 3018 "src/parse-gram.c"
+#line 3016 "src/parse-gram.c"
     break;
 
   case 105:
 #line 678 "src/parse-gram.y"
     { (yyval.symbol) = symbol_from_uniqstr ((yyvsp[0].uniqstr), (yylsp[0])); }
 /* Line 1702 of yacc.c  */
-#line 3026 "src/parse-gram.c"
+#line 3024 "src/parse-gram.c"
     break;
 
   case 106:
       symbol_user_token_number_set ((yyval.symbol), (yyvsp[0].character), (yylsp[0]));
     }
 /* Line 1702 of yacc.c  */
-#line 3038 "src/parse-gram.c"
+#line 3036 "src/parse-gram.c"
     break;
 
   case 107:
 #line 688 "src/parse-gram.y"
     { (yyval.symbol) = symbol_from_uniqstr ((yyvsp[0].uniqstr), (yylsp[0])); }
 /* Line 1702 of yacc.c  */
-#line 3046 "src/parse-gram.c"
+#line 3044 "src/parse-gram.c"
     break;
 
   case 110:
       symbol_class_set ((yyval.symbol), token_sym, (yylsp[0]), false);
     }
 /* Line 1702 of yacc.c  */
-#line 3057 "src/parse-gram.c"
+#line 3055 "src/parse-gram.c"
     break;
 
   case 112:
       code_scanner_last_string_free ();
     }
 /* Line 1702 of yacc.c  */
-#line 3072 "src/parse-gram.c"
+#line 3070 "src/parse-gram.c"
     break;
 
 
 /* Line 1702 of yacc.c  */
-#line 3077 "src/parse-gram.c"
+#line 3075 "src/parse-gram.c"
         default: break;
       }
     if (yychar_backup != yychar)