+#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 148
+
+/* YYNTOKENS -- Number of terminals. */
+#define YYNTOKENS 47
+/* YYNNTS -- Number of nonterminals. */
+#define YYNNTS 25
+/* YYNRULES -- Number of rules. */
+#define YYNRULES 75
+/* YYNRULES -- Number of states. */
+#define YYNSTATES 103
+
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+#define YYUNDEFTOK 2
+#define YYMAXUTOK 301
+
+#define YYTRANSLATE(YYX) \
+ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : 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
+};
+
+#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, 12, 14, 16, 18, 22,
+ 24, 26, 29, 33, 35, 37, 39, 43, 45, 47,
+ 51, 53, 55, 58, 60, 62, 64, 66, 68, 70,
+ 73, 75, 78, 81, 82, 86, 87, 91, 95, 99,
+ 101, 103, 105, 106, 108, 110, 113, 115, 117, 120,
+ 123, 127, 129, 132, 134, 137, 139, 142, 145, 146,
+ 150, 152, 156, 159, 160, 163, 166, 170, 174, 178,
+ 180, 182, 184, 186, 188, 189
+};
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+static const yysigned_char yyrhs[] =
+{
+ 48, 0, -1, 49, 43, 61, 71, -1, -1, 49,
+ 50, -1, 51, -1, 44, -1, 17, -1, 18, 70,
+ 70, -1, 19, -1, 20, -1, 21, 4, -1, 22,
+ 38, 70, -1, 23, -1, 24, -1, 25, -1, 26,
+ 38, 70, -1, 27, -1, 28, -1, 29, 38, 70,
+ -1, 30, -1, 31, -1, 32, 70, -1, 34, -1,
+ 35, -1, 36, -1, 39, -1, 55, -1, 52, -1,
+ 33, 67, -1, 10, -1, 8, 58, -1, 9, 58,
+ -1, -1, 6, 53, 60, -1, -1, 5, 54, 60,
+ -1, 7, 37, 58, -1, 56, 57, 58, -1, 11,
+ -1, 12, -1, 13, -1, -1, 37, -1, 67, -1,
+ 58, 67, -1, 37, -1, 41, -1, 41, 4, -1,
+ 41, 69, -1, 41, 4, 69, -1, 59, -1, 60,
+ 59, -1, 62, -1, 61, 62, -1, 63, -1, 51,
+ 39, -1, 1, 39, -1, -1, 42, 64, 65, -1,
+ 66, -1, 65, 40, 66, -1, 65, 39, -1, -1,
+ 66, 67, -1, 66, 68, -1, 66, 14, 67, -1,
+ 66, 15, 4, -1, 66, 16, 37, -1, 41, -1,
+ 69, -1, 46, -1, 3, -1, 3, -1, -1, 43,
+ 45, -1
+};
+
+/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+static const unsigned short yyrline[] =
+{
+ 0, 162, 162, 170, 172, 176, 177, 178, 179, 180,
+ 181, 182, 183, 184, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 202, 203, 204,
+ 208, 214, 221, 231, 231, 236, 236, 241, 251, 266,
+ 267, 268, 272, 273, 279, 280, 285, 289, 294, 300,
+ 306, 317, 318, 327, 328, 334, 335, 340, 347, 347,
+ 351, 352, 353, 358, 359, 361, 363, 365, 367, 372,
+ 373, 377, 383, 392, 399, 401
+};
+#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\"", "\"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\"",
+ "\"%nondeterministic-parser\"", "\"%output\"", "\"%parse-param {...}\"",
+ "\"%pure-parser\"", "\"%skeleton\"", "\"%start\"", "\"%token-table\"",
+ "\"%verbose\"", "\"%yacc\"", "\"type\"", "\"=\"", "\";\"", "\"|\"",
+ "\"identifier\"", "\"identifier:\"", "\"%%\"", "\"%{...%}\"",
+ "\"epilogue\"", "\"{...}\"", "$accept", "input", "declarations",
+ "declaration", "grammar_declaration", "symbol_declaration", "@1", "@2",
+ "precedence_declaration", "precedence_declarator", "type.opt",
+ "symbols.1", "symbol_def", "symbol_defs.1", "grammar",
+ "rules_or_grammar_declaration", "rules", "@3", "rhses.1", "rhs",
+ "symbol", "action", "string_as_id", "string_content", "epilogue.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
+};
+# endif
+
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+static const unsigned char yyr1[] =
+{
+ 0, 47, 48, 49, 49, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 51, 51, 51,
+ 51, 51, 51, 53, 52, 54, 52, 52, 55, 56,
+ 56, 56, 57, 57, 58, 58, 59, 59, 59, 59,
+ 59, 60, 60, 61, 61, 62, 62, 62, 64, 63,
+ 65, 65, 65, 66, 66, 66, 66, 66, 66, 67,
+ 67, 68, 69, 70, 71, 71
+};
+
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+static const unsigned char yyr2[] =
+{
+ 0, 2, 4, 0, 2, 1, 1, 1, 3, 1,
+ 1, 2, 3, 1, 1, 1, 3, 1, 1, 3,
+ 1, 1, 2, 1, 1, 1, 1, 1, 1, 2,
+ 1, 2, 2, 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, 3,
+ 1, 3, 2, 0, 2, 2, 3, 3, 3, 1,
+ 1, 1, 1, 1, 0, 2
+};
+
+/* 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, 0, 0, 30,
+ 39, 40, 41, 7, 0, 9, 10, 0, 0, 13,
+ 14, 15, 0, 17, 18, 0, 20, 21, 0, 0,
+ 23, 24, 25, 26, 0, 6, 4, 5, 28, 27,
+ 42, 0, 0, 0, 72, 69, 31, 44, 70, 32,
+ 73, 0, 11, 0, 0, 0, 22, 29, 0, 58,
+ 0, 0, 53, 55, 43, 0, 46, 47, 51, 36,
+ 34, 37, 45, 8, 12, 16, 19, 57, 63, 56,
+ 0, 54, 2, 38, 48, 49, 52, 59, 60, 75,
+ 50, 62, 63, 0, 0, 0, 71, 64, 65, 61,
+ 66, 67, 68
+};
+
+/* YYDEFGOTO[NTERM-NUM]. */
+static const yysigned_char yydefgoto[] =
+{
+ -1, 1, 2, 36, 60, 38, 42, 41, 39, 40,
+ 65, 46, 68, 69, 61, 62, 63, 78, 87, 88,
+ 47, 98, 48, 51, 82
+};
+
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+#define YYPACT_NINF -64
+static const yysigned_char yypact[] =
+{
+ -64, 32, 104, -64, -64, -64, -21, 16, 16, -64,
+ -64, -64, -64, -64, 30, -64, -64, 33, -4, -64,
+ -64, -64, 0, -64, -64, 1, -64, -64, 30, 16,
+ -64, -64, -64, -64, 66, -64, -64, -64, -64, -64,
+ 3, -15, -15, 16, -64, -64, 16, -64, -64, 16,
+ -64, 30, -64, 30, 30, 30, -64, -64, 4, -64,
+ 8, 2, -64, -64, -64, 16, -64, 21, -64, -15,
+ -15, 16, -64, -64, -64, -64, -64, -64, -64, -64,
+ 6, -64, -64, 16, 38, -64, -64, -34, 15, -64,
+ -64, -64, -64, 16, 48, 18, -64, -64, -64, 15,
+ -64, -64, -64
+};
+
+/* YYPGOTO[NTERM-NUM]. */
+static const yysigned_char yypgoto[] =
+{
+ -64, -64, -64, -64, 51, -64, -64, -64, -64, -64,
+ -64, -7, -42, 20, -64, -1, -64, -64, -64, -27,
+ -29, -64, -63, -5, -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, syntax error. */
+#define YYTABLE_NINF -75
+static const yysigned_char yytable[] =
+{
+ 57, 49, -74, 58, 85, 91, 92, 4, 5, 6,
+ 7, 8, 9, 10, 11, 12, 43, 72, 44, 44,
+ 72, 90, 66, 56, 44, 84, 67, 86, 86, 93,
+ 94, 95, 3, 50, 53, 29, 71, 52, 54, 55,
+ 64, 44, 72, 77, 59, 80, 73, 79, 74, 75,
+ 76, 89, 101, 37, 72, 102, 45, 45, 83, 97,
+ 81, 96, 70, 0, 100, 99, 0, 58, 0, 0,
+ 97, 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, 0, 29,
+ 0, 0, 0, 0, 0, 0, 0, 0, 59, 4,
+ 5, 6, 7, 8, 9, 10, 11, 12, 0, 0,
+ 0, 13, 14, 15, 16, 17, 18, 19, 20, 21,
+ 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 0, 0, 33, 0, 0, 0, 34, 35
+};
+
+static const yysigned_char yycheck[] =
+{
+ 29, 8, 0, 1, 67, 39, 40, 5, 6, 7,
+ 8, 9, 10, 11, 12, 13, 37, 46, 3, 3,
+ 49, 84, 37, 28, 3, 4, 41, 69, 70, 14,
+ 15, 16, 0, 3, 38, 33, 43, 4, 38, 38,
+ 37, 3, 71, 39, 42, 43, 51, 39, 53, 54,
+ 55, 45, 4, 2, 83, 37, 41, 41, 65, 88,
+ 61, 46, 42, -1, 93, 92, -1, 1, -1, -1,
+ 99, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 33,
+ -1, -1, -1, -1, -1, -1, -1, -1, 42, 5,
+ 6, 7, 8, 9, 10, 11, 12, 13, -1, -1,
+ -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ 36, -1, -1, 39, -1, -1, -1, 43, 44
+};
+
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
+static const unsigned char yystos[] =
+{
+ 0, 48, 49, 0, 5, 6, 7, 8, 9, 10,
+ 11, 12, 13, 17, 18, 19, 20, 21, 22, 23,
+ 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
+ 34, 35, 36, 39, 43, 44, 50, 51, 52, 55,
+ 56, 54, 53, 37, 3, 41, 58, 67, 69, 58,
+ 3, 70, 4, 38, 38, 38, 70, 67, 1, 42,
+ 51, 61, 62, 63, 37, 57, 37, 41, 59, 60,
+ 60, 58, 67, 70, 70, 70, 70, 39, 64, 39,
+ 43, 62, 71, 58, 4, 69, 59, 65, 66, 45,
+ 69, 39, 40, 14, 15, 16, 46, 67, 68, 66,
+ 67, 4, 37
+};