+# define YYSTACK_USE_ALLOCA 1
+# else /* not MSDOS, or __TURBOC__, or _AIX */
+# if 0
+ /* haible@ilog.fr says this works for HPUX 9.05 and up, and on
+ HPUX 10. Eventually we can turn this on. */
+# ifdef __hpux
+# define YYSTACK_USE_ALLOCA 1
+# define alloca __builtin_alloca
+# endif /* __hpux */
+# endif
+# endif /* not _AIX */
+# endif /* not MSDOS, or __TURBOC__ */
+# endif /* not sparc */
+# endif /* not GNU C */
+# endif /* alloca not defined */
+#endif /* YYSTACK_USE_ALLOCA not defined */
+
+#ifndef YYSTACK_USE_ALLOCA
+# define YYSTACK_USE_ALLOCA 0
+#endif
+
+#if YYSTACK_USE_ALLOCA
+# define YYSTACK_ALLOC alloca
+#else
+# define YYSTACK_ALLOC malloc
+#endif
+
+#define YYBISON 1 /* Identify Bison output. */
+#define YYPURE %%pure /* Identify pure parsers. */
+
+#ifndef YYDEBUG
+# define YYDEBUG %%debug
+#endif
+
+#line %%input_line "%%filename"
+#ifndef YYSTYPE
+typedef %%stype yystype;
+# define YYSTYPE yystype
+#endif
+
+#ifndef YYLTYPE
+typedef struct yyltype
+{
+ int first_line;
+ int first_column;
+ int last_line;
+ int last_column;
+} yyltype;
+# define YYLTYPE %%ltype
+#endif
+
+#ifndef YYERROR_VERBOSE
+# define YYERROR_VERBOSE %%verbose
+#endif
+
+/* Tokens. */
+%%tokendef
+
+#define YYFINAL %%final
+#define YYFLAG %%flag
+#define YYNTBASE %%ntbase
+#define YYLAST %%last
+
+#define YYNTOKENS %%ntokens
+#define YYNNTS %%nnts
+#define YYNRULES %%nrules
+#define YYNSTATES %%nstates
+#define YYMAXUTOK %%maxtok
+
+/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
+#define YYTRANSLATE(x) ((unsigned)(x) <= %%maxtok ? yytranslate[x] : %%nsym)
+
+/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
+static const char yytranslate[] =
+{
+ %%translate
+};
+
+#if YYDEBUG
+static const short yyprhs[] =
+{
+ %%prhs
+};
+
+static const short yyrhs[] =
+{
+ %%rhs
+};
+
+/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+static const short yyrline[] =
+{
+ %%rline
+};
+#endif
+
+#if YYDEBUG || YYERROR_VERBOSE
+/* YYTNME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
+static const char *const yytname[] =
+{
+ %%tname
+};
+#endif
+
+/* YYTOKNUM[YYN] -- Index in YYTNAME corresponding to YYLEX. */
+static const short yytoknum[] =
+{
+ %%toknum
+};
+
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+static const short yyr1[] =
+{
+ %%r1
+};
+
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+static const short yyr2[] =
+{
+ %%r2
+};
+
+/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
+ doesn't specify something else to do. Zero means the default is an
+ error. */
+static const short yydefact[] =
+{
+ %%defact
+};
+
+static const short yydefgoto[] =
+{
+ %%defgoto
+};
+
+static const short yypact[] =
+{
+ %%pact
+};
+
+static const short yypgoto[] =
+{
+ %%pgoto
+};
+
+static const short yytable[] =
+{
+ %%table
+};
+
+static const short yycheck[] =
+{
+ %%check