+/* YYFINAL -- State number of the termination state. */
+#define YYFINAL 3
+#define YYFLAG -32768
+#define YYLAST 151
+
+/* YYNTOKENS -- Number of terminals. */
+#define YYNTOKENS 42
+/* YYNNTS -- Number of nonterminals. */
+#define YYNNTS 28
+/* YYNRULES -- Number of rules. */
+#define YYNRULES 71
+/* YYNRULES -- Number of states. */
+#define YYNSTATES 101
+
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+#define YYUNDEFTOK 2
+#define YYMAXUTOK 296
+
+#define YYTRANSLATE(X) \
+ ((unsigned)(X) <= YYMAXUTOK ? yytranslate[X] : YYUNDEFTOK)
+
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
+static const unsigned char yytranslate[] =
+{
+ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41
+};
+
+#if YYDEBUG
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+ YYRHS. */
+static const unsigned char yyprhs[] =
+{
+ 0, 0, 3, 8, 9, 13, 15, 17, 19, 23,
+ 25, 27, 30, 34, 36, 40, 42, 46, 48, 51,
+ 53, 55, 57, 59, 61, 64, 67, 68, 73, 74,
+ 79, 80, 84, 85, 89, 93, 97, 99, 101, 103,
+ 104, 106, 108, 111, 113, 115, 118, 121, 125, 127,
+ 130, 132, 135, 137, 140, 141, 147, 149, 153, 154,
+ 157, 160, 164, 166, 168, 170, 172, 174, 176, 177,
+ 180, 181
+};
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+static const signed char yyrhs[] =
+{
+ 43, 0, -1, 44, 38, 58, 68, -1, -1, 44,
+ 45, 69, -1, 46, -1, 39, -1, 27, -1, 23,
+ 67, 67, -1, 25, -1, 19, -1, 15, 5, -1,
+ 21, 33, 67, -1, 28, -1, 22, 33, 67, -1,
+ 29, -1, 20, 33, 67, -1, 24, -1, 30, 67,
+ -1, 31, -1, 18, -1, 26, -1, 52, -1, 49,
+ -1, 16, 64, -1, 11, 41, -1, -1, 9, 47,
+ 41, 55, -1, -1, 10, 48, 41, 55, -1, -1,
+ 7, 50, 57, -1, -1, 6, 51, 57, -1, 8,
+ 32, 55, -1, 53, 54, 55, -1, 12, -1, 13,
+ -1, 14, -1, -1, 32, -1, 64, -1, 55, 64,
+ -1, 32, -1, 37, -1, 37, 5, -1, 37, 66,
+ -1, 37, 5, 66, -1, 56, -1, 57, 56, -1,
+ 59, -1, 58, 59, -1, 60, -1, 46, 34, -1,
+ -1, 37, 35, 61, 62, 34, -1, 63, -1, 62,
+ 36, 63, -1, -1, 63, 64, -1, 63, 65, -1,
+ 63, 17, 64, -1, 37, -1, 66, -1, 4, -1,
+ 41, -1, 3, -1, 3, -1, -1, 38, 40, -1,
+ -1, 34, -1
+};
+
+/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+static const unsigned short yyrline[] =
+{
+ 0, 155, 155, 168, 170, 173, 175, 176, 177, 178,
+ 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
+ 189, 190, 193, 195, 196, 200, 207, 206, 217, 216,
+ 229, 228, 234, 234, 239, 248, 263, 265, 266, 269,
+ 271, 276, 278, 282, 287, 292, 298, 304, 314, 317,
+ 326, 328, 334, 336, 340, 339, 344, 346, 349, 352,
+ 354, 356, 360, 362, 363, 366, 372, 381, 389, 394,
+ 400, 402
+};
+#endif
+
+#if YYDEBUG || YYERROR_VERBOSE
+/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+static const char *const yytname[] =
+{
+ "\"end of string\"", "error", "$undefined.", "STRING", "CHARACTER", "INT",
+ "\"%token\"", "\"%nterm\"", "\"%type\"", "\"%destructor\"",
+ "\"%printer\"", "\"%union\"", "\"%left\"", "\"%right\"",
+ "\"%nonassoc\"", "\"%expect\"", "\"%start\"", "\"%prec\"",
+ "\"%verbose\"", "\"%error-verbose\"", "\"%output\"", "\"%file-prefix\"",
+ "\"%name-prefix\"", "\"%define\"", "\"%pure-parser\"", "\"%defines\"",
+ "\"%yacc\"", "\"%debug\"", "\"%locations\"", "\"%no-lines\"",
+ "\"%skeleton\"", "\"%token-table\"", "TYPE", "\"=\"", "\";\"", "\":\"",
+ "\"|\"", "\"identifier\"", "\"%%\"", "PROLOGUE", "EPILOGUE",
+ "BRACED_CODE", "$axiom", "input", "declarations", "declaration",
+ "grammar_declaration", "@1", "@2", "symbol_declaration", "@3", "@4",
+ "precedence_declaration", "precedence_declarator", "type.opt",
+ "symbols.1", "symbol_def", "symbol_defs.1", "grammar",
+ "rules_or_grammar_declaration", "rules", "@5", "rhses.1", "rhs",
+ "symbol", "action", "string_as_id", "string_content", "epilogue.opt",
+ "semi_colon.opt", 0
+};
+#endif
+
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+ token YYLEX-NUM. */
+static const short yytoknum[] =
+{
+ 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+ 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
+ 295, 296, -1
+};
+
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+static const unsigned char yyr1[] =
+{
+ 0, 42, 43, 44, 44, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 46, 46, 46, 46, 47, 46, 48, 46,
+ 50, 49, 51, 49, 49, 52, 53, 53, 53, 54,
+ 54, 55, 55, 56, 56, 56, 56, 56, 57, 57,
+ 58, 58, 59, 59, 61, 60, 62, 62, 63, 63,
+ 63, 63, 64, 64, 64, 65, 66, 67, 68, 68,
+ 69, 69
+};
+
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+static const unsigned char yyr2[] =
+{
+ 0, 2, 4, 0, 3, 1, 1, 1, 3, 1,
+ 1, 2, 3, 1, 3, 1, 3, 1, 2, 1,
+ 1, 1, 1, 1, 2, 2, 0, 4, 0, 4,
+ 0, 3, 0, 3, 3, 3, 1, 1, 1, 0,
+ 1, 1, 2, 1, 1, 2, 2, 3, 1, 2,
+ 1, 2, 1, 2, 0, 5, 1, 3, 0, 2,
+ 2, 3, 1, 1, 1, 1, 1, 1, 0, 2,
+ 0, 1
+};
+
+/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+ STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+ means the default is an error. */
+static const short yydefact[] =
+{
+ 3, 0, 0, 0, 32, 30, 0, 26, 28, 0,
+ 36, 37, 38, 0, 0, 20, 10, 0, 0, 0,
+ 0, 17, 9, 21, 7, 13, 15, 0, 19, 0,
+ 6, 70, 5, 23, 22, 39, 0, 0, 0, 0,
+ 0, 25, 11, 66, 64, 62, 24, 63, 0, 0,
+ 0, 67, 0, 18, 0, 0, 68, 50, 52, 71,
+ 4, 40, 0, 43, 44, 48, 33, 31, 34, 41,
+ 0, 0, 16, 12, 14, 8, 54, 53, 0, 51,
+ 2, 35, 45, 46, 49, 42, 27, 29, 58, 69,
+ 47, 0, 56, 55, 58, 0, 65, 59, 60, 57,
+ 61
+};
+
+/* YYPGOTO[NTERM-NUM]. */
+static const short yydefgoto[] =
+{
+ -1, 1, 2, 31, 55, 39, 40, 33, 37, 36,
+ 34, 35, 62, 68, 65, 66, 56, 57, 58, 88,
+ 91, 92, 69, 98, 47, 52, 80, 60
+};
+
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+static const short yypact[] =
+{
+ -32768, 8, 80,-32768,-32768,-32768, -19,-32768,-32768, -11,
+ -32768,-32768,-32768, 31, 0,-32768,-32768, 5, 9, 11,
+ 40,-32768,-32768,-32768,-32768,-32768,-32768, 40,-32768, 114,
+ -32768, 12,-32768,-32768,-32768, 13, -27, -27, 0, 14,
+ 15,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 40, 40,
+ 40,-32768, 40,-32768, 16, 18, 10,-32768,-32768,-32768,
+ -32768,-32768, 0,-32768, 6,-32768, -27, -27, 0,-32768,
+ 0, 0,-32768,-32768,-32768,-32768,-32768,-32768, 17,-32768,
+ -32768, 0, 46,-32768,-32768,-32768, 0, 0,-32768,-32768,
+ -32768, -22, -2,-32768,-32768, 0,-32768,-32768,-32768, -2,
+ -32768
+};
+
+/* YYPGOTO[NTERM-NUM]. */
+static const short yypgoto[] =
+{
+ -32768,-32768,-32768,-32768, 48,-32768,-32768,-32768,-32768,-32768,
+ -32768,-32768,-32768, -30, -33, 21,-32768, -3,-32768,-32768,
+ -32768, -35, -14,-32768, -57, -21,-32768,-32768
+};
+
+/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
+ positive, shift that token. If negative, reduce the rule which
+ number is the opposite. If zero, do what YYDEFACT says. */
+static const short yytable[] =
+{
+ 46, 43, 44, 43, 44, 63, 53, 83, 3, 43,
+ 64, 82, 93, 38, 94, 95, 4, 5, 6, 7,
+ 8, 9, 10, 11, 12, 90, 14, 72, 73, 74,
+ 41, 75, 81, 84, 84, 45, 42, 45, 48, 96,
+ 86, 87, 49, 51, 50, 61, 59, 54, 78, 43,
+ 32, 76, 77, 79, 85, 70, 71, 89, 67, 99,
+ 0, 0, 0, 0, 0, 0, 0, 85, 0, 0,
+ 0, 0, 85, 85, 0, 0, 0, 0, 97, 0,
+ 0, 100, 0, 0, 0, 97, 4, 5, 6, 7,
+ 8, 9, 10, 11, 12, 13, 14, 0, 15, 16,
+ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
+ 27, 28, 0, 0, 0, 0, 0, 0, 29, 30,
+ 4, 5, 6, 7, 8, 9, 10, 11, 12, 0,
+ 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 54
+};
+
+static const short yycheck[] =
+{
+ 14, 3, 4, 3, 4, 32, 27, 64, 0, 3,
+ 37, 5, 34, 32, 36, 17, 6, 7, 8, 9,
+ 10, 11, 12, 13, 14, 82, 16, 48, 49, 50,
+ 41, 52, 62, 66, 67, 37, 5, 37, 33, 41,
+ 70, 71, 33, 3, 33, 32, 34, 37, 38, 3,
+ 2, 35, 34, 56, 68, 41, 41, 40, 37, 94,
+ -1, -1, -1, -1, -1, -1, -1, 81, -1, -1,
+ -1, -1, 86, 87, -1, -1, -1, -1, 92, -1,
+ -1, 95, -1, -1, -1, 99, 6, 7, 8, 9,
+ 10, 11, 12, 13, 14, 15, 16, -1, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, -1, -1, -1, -1, -1, -1, 38, 39,
+ 6, 7, 8, 9, 10, 11, 12, 13, 14, -1,
+ 16, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 37
+};
+
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
+static const unsigned char yystos[] =
+{
+ 0, 43, 44, 0, 6, 7, 8, 9, 10, 11,
+ 12, 13, 14, 15, 16, 18, 19, 20, 21, 22,
+ 23, 24, 25, 26, 27, 28, 29, 30, 31, 38,
+ 39, 45, 46, 49, 52, 53, 51, 50, 32, 47,
+ 48, 41, 5, 3, 4, 37, 64, 66, 33, 33,
+ 33, 3, 67, 67, 37, 46, 58, 59, 60, 34,
+ 69, 32, 54, 32, 37, 56, 57, 57, 55, 64,
+ 41, 41, 67, 67, 67, 67, 35, 34, 38, 59,
+ 68, 55, 5, 66, 56, 64, 55, 55, 61, 40,
+ 66, 62, 63, 34, 36, 17, 41, 64, 65, 63,
+ 64
+};