+#if defined (__STDC__) || defined (__cplusplus)
+ typedef signed char yysigned_char;
+#else
+ typedef short yysigned_char;
+#endif
+
+/* YYFINAL -- State number of the termination state. */
+#define YYFINAL 3
+/* YYLAST -- Last index in YYTABLE. */
+#define YYLAST 152
+
+/* YYNTOKENS -- Number of terminals. */
+#define YYNTOKENS 48
+/* YYNNTS -- Number of nonterminals. */
+#define YYNNTS 28
+/* YYNRULES -- Number of rules. */
+#define YYNRULES 77
+/* YYNRULES -- Number of states. */
+#define YYNSTATES 116
+
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+#define YYUNDEFTOK 2
+#define YYMAXUTOK 302
+
+#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, 42, 43, 44,
+ 45, 46, 47
+};
+
+#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, 41, 43, 47, 49, 53,
+ 58, 60, 63, 65, 67, 69, 71, 73, 76, 79,
+ 80, 85, 86, 91, 92, 96, 97, 101, 105, 109,
+ 111, 113, 115, 116, 118, 120, 123, 125, 127, 130,
+ 133, 137, 139, 142, 144, 147, 149, 152, 155, 156,
+ 162, 164, 168, 169, 172, 175, 179, 183, 187, 189,
+ 191, 193, 195, 197, 199, 200, 203, 204
+};
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+static const yysigned_char yyrhs[] =
+{
+ 49, 0, -1, 50, 44, 64, 74, -1, -1, 50,
+ 51, 75, -1, 52, -1, 45, -1, 18, -1, 19,
+ 73, 73, -1, 20, -1, 21, -1, 22, 5, -1,
+ 23, 38, 73, -1, 24, -1, 25, 73, 41, 73,
+ -1, 26, -1, 27, 38, 73, -1, 28, -1, 29,
+ 38, 73, -1, 30, 73, 41, 73, -1, 31, -1,
+ 32, 73, -1, 34, -1, 35, -1, 36, -1, 58,
+ -1, 55, -1, 33, 70, -1, 11, 47, -1, -1,
+ 9, 53, 47, 61, -1, -1, 10, 54, 47, 61,
+ -1, -1, 7, 56, 63, -1, -1, 6, 57, 63,
+ -1, 8, 37, 61, -1, 59, 60, 61, -1, 12,
+ -1, 13, -1, 14, -1, -1, 37, -1, 70, -1,
+ 61, 70, -1, 37, -1, 43, -1, 43, 5, -1,
+ 43, 72, -1, 43, 5, 72, -1, 62, -1, 63,
+ 62, -1, 65, -1, 64, 65, -1, 66, -1, 52,
+ 39, -1, 1, 39, -1, -1, 43, 40, 67, 68,
+ 39, -1, 69, -1, 68, 42, 69, -1, -1, 69,
+ 70, -1, 69, 71, -1, 69, 15, 70, -1, 69,
+ 16, 5, -1, 69, 17, 37, -1, 43, -1, 72,
+ -1, 4, -1, 47, -1, 3, -1, 3, -1, -1,
+ 44, 46, -1, -1, 39, -1
+};
+
+/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+static const unsigned short yyrline[] =
+{
+ 0, 168, 168, 181, 183, 186, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 198, 199, 200, 201, 202,
+ 204, 205, 206, 207, 208, 211, 213, 214, 218, 225,
+ 224, 235, 234, 247, 246, 252, 252, 257, 266, 281,
+ 283, 284, 287, 289, 294, 296, 300, 305, 310, 316,
+ 322, 332, 335, 344, 346, 352, 354, 359, 366, 365,
+ 370, 372, 375, 378, 380, 382, 384, 386, 390, 392,
+ 393, 396, 402, 411, 419, 424, 430, 432
+};
+#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 file\"", "error", "$undefined", "\"string\"", "\"character\"",
+ "\"integer\"", "\"%token\"", "\"%nterm\"", "\"%type\"",
+ "\"%destructor\"", "\"%printer\"", "\"%union\"", "\"%left\"",
+ "\"%right\"", "\"%nonassoc\"", "\"%prec\"", "\"%dprec\"", "\"%merge\"",
+ "\"%debug\"", "\"%define\"", "\"%defines\"", "\"%error-verbose\"",
+ "\"%expect\"", "\"%file-prefix\"", "\"%glr-parser\"", "\"%lex-param\"",
+ "\"%locations\"", "\"%name-prefix\"", "\"%no-lines\"", "\"%output\"",
+ "\"%parse-param\"", "\"%pure-parser\"", "\"%skeleton\"", "\"%start\"",
+ "\"%token-table\"", "\"%verbose\"", "\"%yacc\"", "\"type\"", "\"=\"",
+ "\";\"", "\":\"", "\",\"", "\"|\"", "\"identifier\"", "\"%%\"",
+ "\"%{...%}\"", "\"epilogue\"", "\"{...}\"", "$accept", "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
+
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+ token YYLEX-NUM. */
+static const unsigned 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, 297, 298, 299, 300, 301, 302
+};
+# endif
+
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+static const unsigned char yyr1[] =
+{
+ 0, 48, 49, 50, 50, 51, 51, 51, 51, 51,
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
+ 51, 51, 51, 51, 51, 52, 52, 52, 52, 53,
+ 52, 54, 52, 56, 55, 57, 55, 55, 58, 59,
+ 59, 59, 60, 60, 61, 61, 62, 62, 62, 62,
+ 62, 63, 63, 64, 64, 65, 65, 65, 67, 66,
+ 68, 68, 69, 69, 69, 69, 69, 69, 70, 70,
+ 70, 71, 72, 73, 74, 74, 75, 75
+};
+
+/* 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, 4, 1, 3, 1, 3, 4,
+ 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, 2, 0, 5,
+ 1, 3, 0, 2, 2, 3, 3, 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 unsigned char yydefact[] =
+{
+ 3, 0, 0, 1, 35, 33, 0, 29, 31, 0,
+ 39, 40, 41, 7, 0, 9, 10, 0, 0, 13,
+ 0, 15, 0, 17, 0, 0, 20, 0, 0, 22,
+ 23, 24, 0, 6, 76, 5, 26, 25, 42, 0,
+ 0, 0, 0, 0, 28, 73, 0, 11, 0, 0,
+ 0, 0, 0, 21, 72, 70, 68, 27, 69, 0,
+ 0, 0, 0, 53, 55, 77, 4, 43, 0, 46,
+ 47, 51, 36, 34, 37, 44, 0, 0, 8, 12,
+ 0, 16, 18, 0, 57, 58, 56, 0, 54, 2,
+ 38, 48, 49, 52, 45, 30, 32, 14, 19, 62,
+ 75, 50, 0, 60, 59, 62, 0, 0, 0, 71,
+ 63, 64, 61, 65, 66, 67
+};
+
+/* YYDEFGOTO[NTERM-NUM]. */
+static const yysigned_char yydefgoto[] =
+{
+ -1, 1, 2, 34, 61, 42, 43, 36, 40, 39,
+ 37, 38, 68, 74, 71, 72, 62, 63, 64, 99,
+ 102, 103, 75, 111, 58, 46, 89, 66
+};
+
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+#define YYPACT_NINF -64
+static const yysigned_char yypact[] =
+{
+ -64, 9, 107, -64, -64, -64, -13, -64, -64, -9,
+ -64, -64, -64, -64, 27, -64, -64, 38, 3, -64,
+ 27, -64, 6, -64, 7, 27, -64, 27, -1, -64,
+ -64, -64, 79, -64, 10, -64, -64, -64, 13, -17,
+ -17, -1, 8, 11, -64, -64, 27, -64, 27, 15,
+ 27, 27, 16, -64, -64, -64, -64, -64, -64, 20,
+ 14, 21, 4, -64, -64, -64, -64, -64, -1, -64,
+ 18, -64, -17, -17, -1, -64, -1, -1, -64, -64,
+ 27, -64, -64, 27, -64, -64, -64, 17, -64, -64,
+ -1, 62, -64, -64, -64, -1, -1, -64, -64, -64,
+ -64, -64, -20, 36, -64, -64, -1, 61, 32, -64,
+ -64, -64, 36, -64, -64, -64
+};
+
+/* YYPGOTO[NTERM-NUM]. */
+static const yysigned_char yypgoto[] =
+{
+ -64, -64, -64, -64, 68, -64, -64, -64, -64, -64,
+ -64, -64, -64, -43, -37, 31, -64, 12, -64, -64,
+ -64, -33, -28, -64, -63, -19, -64, -64
+};
+
+/* 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.
+ If YYTABLE_NINF, parse error. */
+#define YYTABLE_NINF -75
+static const yysigned_char yytable[] =
+{
+ 57, 49, 54, 55, -74, 59, 52, 92, 53, 3,
+ 4, 5, 6, 7, 8, 9, 10, 11, 12, 104,
+ 69, 54, 105, 91, 41, 90, 70, 78, 101, 79,
+ 45, 81, 82, 95, 96, 93, 93, 28, 44, 54,
+ 55, 48, 56, 47, 50, 51, 94, 60, 87, 65,
+ 67, 106, 107, 108, 85, 76, 80, 83, 77, 84,
+ 86, 97, 94, 100, 98, 54, 114, 94, 94, 115,
+ 35, 73, 112, 0, 88, 110, 0, 0, 113, 56,
+ 59, 0, 0, 109, 110, 4, 5, 6, 7, 8,
+ 9, 10, 11, 12, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 28, 4, 5, 6, 7, 8, 9, 10,
+ 11, 12, 60, 0, 0, 13, 14, 15, 16, 17,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+ 28, 29, 30, 31, 0, 0, 0, 0, 0, 0,
+ 0, 32, 33
+};
+
+static const yysigned_char yycheck[] =
+{
+ 28, 20, 3, 4, 0, 1, 25, 70, 27, 0,
+ 6, 7, 8, 9, 10, 11, 12, 13, 14, 39,
+ 37, 3, 42, 5, 37, 68, 43, 46, 91, 48,
+ 3, 50, 51, 76, 77, 72, 73, 33, 47, 3,
+ 4, 38, 43, 5, 38, 38, 74, 43, 44, 39,
+ 37, 15, 16, 17, 40, 47, 41, 41, 47, 39,
+ 39, 80, 90, 46, 83, 3, 5, 95, 96, 37,
+ 2, 40, 105, -1, 62, 103, -1, -1, 106, 43,
+ 1, -1, -1, 47, 112, 6, 7, 8, 9, 10,
+ 11, 12, 13, 14, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 33, 6, 7, 8, 9, 10, 11, 12,
+ 13, 14, 43, -1, -1, 18, 19, 20, 21, 22,
+ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, -1, -1, -1, -1, -1, -1,
+ -1, 44, 45
+};
+
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
+static const unsigned char yystos[] =
+{
+ 0, 49, 50, 0, 6, 7, 8, 9, 10, 11,
+ 12, 13, 14, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 44, 45, 51, 52, 55, 58, 59, 57,
+ 56, 37, 53, 54, 47, 3, 73, 5, 38, 73,
+ 38, 38, 73, 73, 3, 4, 43, 70, 72, 1,
+ 43, 52, 64, 65, 66, 39, 75, 37, 60, 37,
+ 43, 62, 63, 63, 61, 70, 47, 47, 73, 73,
+ 41, 73, 73, 41, 39, 40, 39, 44, 65, 74,
+ 61, 5, 72, 62, 70, 61, 61, 73, 73, 67,
+ 46, 72, 68, 69, 39, 42, 15, 16, 17, 47,
+ 70, 71, 69, 70, 5, 37
+};