xref: /freebsd/contrib/byacc/btyaccpar.c (revision 8e022d3c)
10c8de5b0SBaptiste Daroussin /* This file generated automatically using
22aca18c7SJung-uk Kim  * @Id: skel2c,v 1.4 2016/06/07 00:26:09 tom Exp @
30c8de5b0SBaptiste Daroussin  */
40c8de5b0SBaptiste Daroussin 
58e022d3cSDag-Erling Smørgrav /* @Id: btyaccpar.skel,v 1.12 2021/06/19 20:46:31 tom Exp @ */
60c8de5b0SBaptiste Daroussin 
70c8de5b0SBaptiste Daroussin #include "defs.h"
80c8de5b0SBaptiste Daroussin 
90c8de5b0SBaptiste Daroussin /*  If the skeleton is changed, the banner should be changed so that	*/
100c8de5b0SBaptiste Daroussin /*  the altered version can be easily distinguished from the original.	*/
110c8de5b0SBaptiste Daroussin /*									*/
120c8de5b0SBaptiste Daroussin /*  The #defines included with the banner are there because they are	*/
130c8de5b0SBaptiste Daroussin /*  useful in subsequent code.  The macros #defined in the header or	*/
140c8de5b0SBaptiste Daroussin /*  the body either are not useful outside of semantic actions or	*/
150c8de5b0SBaptiste Daroussin /*  are conditional.							*/
160c8de5b0SBaptiste Daroussin 
170c8de5b0SBaptiste Daroussin const char *const banner[] =
180c8de5b0SBaptiste Daroussin {
190c8de5b0SBaptiste Daroussin     "/* original parser id follows */",
200c8de5b0SBaptiste Daroussin     "/* yysccsid[] = \"@(#)yaccpar	1.9 (Berkeley) 02/21/93\" */",
21c5b5d71aSJung-uk Kim     "/* (use YYMAJOR/YYMINOR for ifdefs dependent on parser version) */",
220c8de5b0SBaptiste Daroussin     "",
230c8de5b0SBaptiste Daroussin     "#define YYBYACC 1",
240c8de5b0SBaptiste Daroussin     CONCAT1("#define YYMAJOR ", YYMAJOR),
250c8de5b0SBaptiste Daroussin     CONCAT1("#define YYMINOR ", YYMINOR),
260c8de5b0SBaptiste Daroussin #ifdef YYPATCH
270c8de5b0SBaptiste Daroussin     CONCAT1("#define YYPATCH ", YYPATCH),
280c8de5b0SBaptiste Daroussin #endif
290c8de5b0SBaptiste Daroussin     "",
300c8de5b0SBaptiste Daroussin     "#define YYEMPTY        (-1)",
310c8de5b0SBaptiste Daroussin     "#define yyclearin      (yychar = YYEMPTY)",
320c8de5b0SBaptiste Daroussin     "#define yyerrok        (yyerrflag = 0)",
330c8de5b0SBaptiste Daroussin     "#define YYRECOVERING() (yyerrflag != 0)",
340c8de5b0SBaptiste Daroussin     "#define YYENOMEM       (-2)",
350c8de5b0SBaptiste Daroussin     "#define YYEOF          0",
360c8de5b0SBaptiste Daroussin     0
370c8de5b0SBaptiste Daroussin };
380c8de5b0SBaptiste Daroussin 
390c8de5b0SBaptiste Daroussin const char *const xdecls[] =
400c8de5b0SBaptiste Daroussin {
410c8de5b0SBaptiste Daroussin     "",
420c8de5b0SBaptiste Daroussin     "extern int YYPARSE_DECL();",
430c8de5b0SBaptiste Daroussin     0
440c8de5b0SBaptiste Daroussin };
450c8de5b0SBaptiste Daroussin 
460c8de5b0SBaptiste Daroussin const char *const tables[] =
470c8de5b0SBaptiste Daroussin {
480c8de5b0SBaptiste Daroussin     "extern const YYINT yylhs[];",
490c8de5b0SBaptiste Daroussin     "extern const YYINT yylen[];",
500c8de5b0SBaptiste Daroussin     "extern const YYINT yydefred[];",
510c8de5b0SBaptiste Daroussin     "extern const YYINT yystos[];",
520c8de5b0SBaptiste Daroussin     "extern const YYINT yydgoto[];",
530c8de5b0SBaptiste Daroussin     "extern const YYINT yysindex[];",
540c8de5b0SBaptiste Daroussin     "extern const YYINT yyrindex[];",
550c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
560c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
570c8de5b0SBaptiste Daroussin     "extern const YYINT yycindex[];",
580c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
590c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
600c8de5b0SBaptiste Daroussin     "extern const YYINT yygindex[];",
610c8de5b0SBaptiste Daroussin     "extern const YYINT yytable[];",
620c8de5b0SBaptiste Daroussin     "extern const YYINT yycheck[];",
630c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
640c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
650c8de5b0SBaptiste Daroussin     "extern const YYINT yyctable[];",
660c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
670c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
680c8de5b0SBaptiste Daroussin     "",
69c5b5d71aSJung-uk Kim     "#if YYDEBUG || defined(yytname)",
700c8de5b0SBaptiste Daroussin     "extern const char *const yyname[];",
71c5b5d71aSJung-uk Kim     "#endif",
72c5b5d71aSJung-uk Kim     "#if YYDEBUG",
730c8de5b0SBaptiste Daroussin     "extern const char *const yyrule[];",
740c8de5b0SBaptiste Daroussin     "#endif",
750c8de5b0SBaptiste Daroussin     0
760c8de5b0SBaptiste Daroussin };
770c8de5b0SBaptiste Daroussin 
780c8de5b0SBaptiste Daroussin const char *const global_vars[] =
790c8de5b0SBaptiste Daroussin {
800c8de5b0SBaptiste Daroussin     "",
81b53bb29fSJung-uk Kim     "#if YYDEBUG",
820c8de5b0SBaptiste Daroussin     "int      yydebug;",
83b53bb29fSJung-uk Kim     "#endif",
840c8de5b0SBaptiste Daroussin     0
850c8de5b0SBaptiste Daroussin };
860c8de5b0SBaptiste Daroussin 
870c8de5b0SBaptiste Daroussin const char *const impure_vars[] =
880c8de5b0SBaptiste Daroussin {
890c8de5b0SBaptiste Daroussin     "",
900c8de5b0SBaptiste Daroussin     "int      yyerrflag;",
910c8de5b0SBaptiste Daroussin     "int      yychar;",
920c8de5b0SBaptiste Daroussin     "YYSTYPE  yyval;",
930c8de5b0SBaptiste Daroussin     "YYSTYPE  yylval;",
94b53bb29fSJung-uk Kim     "int      yynerrs;",
95b53bb29fSJung-uk Kim     "",
960c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
970c8de5b0SBaptiste Daroussin     "YYLTYPE  yyloc; /* position returned by actions */",
980c8de5b0SBaptiste Daroussin     "YYLTYPE  yylloc; /* position from the lexer */",
990c8de5b0SBaptiste Daroussin     "#endif",
1000c8de5b0SBaptiste Daroussin     0
1010c8de5b0SBaptiste Daroussin };
1020c8de5b0SBaptiste Daroussin 
1030c8de5b0SBaptiste Daroussin const char *const hdr_defs[] =
1040c8de5b0SBaptiste Daroussin {
1050c8de5b0SBaptiste Daroussin     "",
1060c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
1070c8de5b0SBaptiste Daroussin     "#ifndef YYLLOC_DEFAULT",
1080c8de5b0SBaptiste Daroussin     "#define YYLLOC_DEFAULT(loc, rhs, n) \\",
1090c8de5b0SBaptiste Daroussin     "do \\",
1100c8de5b0SBaptiste Daroussin     "{ \\",
1110c8de5b0SBaptiste Daroussin     "    if (n == 0) \\",
1120c8de5b0SBaptiste Daroussin     "    { \\",
113b53bb29fSJung-uk Kim     "        (loc).first_line   = YYRHSLOC(rhs, 0).last_line; \\",
114b53bb29fSJung-uk Kim     "        (loc).first_column = YYRHSLOC(rhs, 0).last_column; \\",
115b53bb29fSJung-uk Kim     "        (loc).last_line    = YYRHSLOC(rhs, 0).last_line; \\",
116b53bb29fSJung-uk Kim     "        (loc).last_column  = YYRHSLOC(rhs, 0).last_column; \\",
1170c8de5b0SBaptiste Daroussin     "    } \\",
1180c8de5b0SBaptiste Daroussin     "    else \\",
1190c8de5b0SBaptiste Daroussin     "    { \\",
120b53bb29fSJung-uk Kim     "        (loc).first_line   = YYRHSLOC(rhs, 1).first_line; \\",
121b53bb29fSJung-uk Kim     "        (loc).first_column = YYRHSLOC(rhs, 1).first_column; \\",
122b53bb29fSJung-uk Kim     "        (loc).last_line    = YYRHSLOC(rhs, n).last_line; \\",
123b53bb29fSJung-uk Kim     "        (loc).last_column  = YYRHSLOC(rhs, n).last_column; \\",
1240c8de5b0SBaptiste Daroussin     "    } \\",
1250c8de5b0SBaptiste Daroussin     "} while (0)",
1260c8de5b0SBaptiste Daroussin     "#endif /* YYLLOC_DEFAULT */",
1270c8de5b0SBaptiste Daroussin     "#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */",
1280c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
1290c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
1300c8de5b0SBaptiste Daroussin     "",
1310c8de5b0SBaptiste Daroussin     "#ifndef YYLVQUEUEGROWTH",
1320c8de5b0SBaptiste Daroussin     "#define YYLVQUEUEGROWTH 32",
1330c8de5b0SBaptiste Daroussin     "#endif",
1340c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
1350c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
1360c8de5b0SBaptiste Daroussin     "",
1370c8de5b0SBaptiste Daroussin     "/* define the initial stack-sizes */",
1380c8de5b0SBaptiste Daroussin     "#ifdef YYSTACKSIZE",
1390c8de5b0SBaptiste Daroussin     "#undef YYMAXDEPTH",
1400c8de5b0SBaptiste Daroussin     "#define YYMAXDEPTH  YYSTACKSIZE",
1410c8de5b0SBaptiste Daroussin     "#else",
1420c8de5b0SBaptiste Daroussin     "#ifdef YYMAXDEPTH",
1430c8de5b0SBaptiste Daroussin     "#define YYSTACKSIZE YYMAXDEPTH",
1440c8de5b0SBaptiste Daroussin     "#else",
1450c8de5b0SBaptiste Daroussin     "#define YYSTACKSIZE 10000",
1460c8de5b0SBaptiste Daroussin     "#define YYMAXDEPTH  10000",
1470c8de5b0SBaptiste Daroussin     "#endif",
1480c8de5b0SBaptiste Daroussin     "#endif",
1490c8de5b0SBaptiste Daroussin     "",
1500c8de5b0SBaptiste Daroussin     "#ifndef YYINITSTACKSIZE",
1510c8de5b0SBaptiste Daroussin     "#define YYINITSTACKSIZE 200",
1520c8de5b0SBaptiste Daroussin     "#endif",
1530c8de5b0SBaptiste Daroussin     "",
1540c8de5b0SBaptiste Daroussin     "typedef struct {",
1550c8de5b0SBaptiste Daroussin     "    unsigned stacksize;",
156c5b5d71aSJung-uk Kim     "    YYINT    *s_base;",
157c5b5d71aSJung-uk Kim     "    YYINT    *s_mark;",
158c5b5d71aSJung-uk Kim     "    YYINT    *s_last;",
1590c8de5b0SBaptiste Daroussin     "    YYSTYPE  *l_base;",
1600c8de5b0SBaptiste Daroussin     "    YYSTYPE  *l_mark;",
1610c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
1620c8de5b0SBaptiste Daroussin     "    YYLTYPE  *p_base;",
1630c8de5b0SBaptiste Daroussin     "    YYLTYPE  *p_mark;",
1640c8de5b0SBaptiste Daroussin     "#endif",
1650c8de5b0SBaptiste Daroussin     "} YYSTACKDATA;",
1660c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
1670c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
1680c8de5b0SBaptiste Daroussin     "",
1690c8de5b0SBaptiste Daroussin     "struct YYParseState_s",
1700c8de5b0SBaptiste Daroussin     "{",
1710c8de5b0SBaptiste Daroussin     "    struct YYParseState_s *save;    /* Previously saved parser state */",
1720c8de5b0SBaptiste Daroussin     "    YYSTACKDATA            yystack; /* saved parser stack */",
1730c8de5b0SBaptiste Daroussin     "    int                    state;   /* saved parser state */",
1740c8de5b0SBaptiste Daroussin     "    int                    errflag; /* saved error recovery status */",
1750c8de5b0SBaptiste Daroussin     "    int                    lexeme;  /* saved index of the conflict lexeme in the lexical queue */",
1760c8de5b0SBaptiste Daroussin     "    YYINT                  ctry;    /* saved index in yyctable[] for this conflict */",
1770c8de5b0SBaptiste Daroussin     "};",
1780c8de5b0SBaptiste Daroussin     "typedef struct YYParseState_s YYParseState;",
1790c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
1800c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
1810c8de5b0SBaptiste Daroussin     0
1820c8de5b0SBaptiste Daroussin };
1830c8de5b0SBaptiste Daroussin 
1840c8de5b0SBaptiste Daroussin const char *const hdr_vars[] =
1850c8de5b0SBaptiste Daroussin {
1860c8de5b0SBaptiste Daroussin     "/* variables for the parser stack */",
1870c8de5b0SBaptiste Daroussin     "static YYSTACKDATA yystack;",
1880c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
1890c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
1900c8de5b0SBaptiste Daroussin     "",
1910c8de5b0SBaptiste Daroussin     "/* Current parser state */",
1920c8de5b0SBaptiste Daroussin     "static YYParseState *yyps = 0;",
1930c8de5b0SBaptiste Daroussin     "",
1940c8de5b0SBaptiste Daroussin     "/* yypath != NULL: do the full parse, starting at *yypath parser state. */",
1950c8de5b0SBaptiste Daroussin     "static YYParseState *yypath = 0;",
1960c8de5b0SBaptiste Daroussin     "",
1970c8de5b0SBaptiste Daroussin     "/* Base of the lexical value queue */",
1980c8de5b0SBaptiste Daroussin     "static YYSTYPE *yylvals = 0;",
1990c8de5b0SBaptiste Daroussin     "",
2000c8de5b0SBaptiste Daroussin     "/* Current position at lexical value queue */",
2010c8de5b0SBaptiste Daroussin     "static YYSTYPE *yylvp = 0;",
2020c8de5b0SBaptiste Daroussin     "",
2030c8de5b0SBaptiste Daroussin     "/* End position of lexical value queue */",
2040c8de5b0SBaptiste Daroussin     "static YYSTYPE *yylve = 0;",
2050c8de5b0SBaptiste Daroussin     "",
2060c8de5b0SBaptiste Daroussin     "/* The last allocated position at the lexical value queue */",
2070c8de5b0SBaptiste Daroussin     "static YYSTYPE *yylvlim = 0;",
2080c8de5b0SBaptiste Daroussin     "",
2090c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
2100c8de5b0SBaptiste Daroussin     "/* Base of the lexical position queue */",
2110c8de5b0SBaptiste Daroussin     "static YYLTYPE *yylpsns = 0;",
2120c8de5b0SBaptiste Daroussin     "",
2130c8de5b0SBaptiste Daroussin     "/* Current position at lexical position queue */",
2140c8de5b0SBaptiste Daroussin     "static YYLTYPE *yylpp = 0;",
2150c8de5b0SBaptiste Daroussin     "",
2160c8de5b0SBaptiste Daroussin     "/* End position of lexical position queue */",
2170c8de5b0SBaptiste Daroussin     "static YYLTYPE *yylpe = 0;",
2180c8de5b0SBaptiste Daroussin     "",
2190c8de5b0SBaptiste Daroussin     "/* The last allocated position at the lexical position queue */",
2200c8de5b0SBaptiste Daroussin     "static YYLTYPE *yylplim = 0;",
2210c8de5b0SBaptiste Daroussin     "#endif",
2220c8de5b0SBaptiste Daroussin     "",
2230c8de5b0SBaptiste Daroussin     "/* Current position at lexical token queue */",
2242aca18c7SJung-uk Kim     "static YYINT  *yylexp = 0;",
2250c8de5b0SBaptiste Daroussin     "",
2262aca18c7SJung-uk Kim     "static YYINT  *yylexemes = 0;",
2270c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
2280c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
2290c8de5b0SBaptiste Daroussin     0
2300c8de5b0SBaptiste Daroussin };
2310c8de5b0SBaptiste Daroussin 
2320c8de5b0SBaptiste Daroussin const char *const body_vars[] =
2330c8de5b0SBaptiste Daroussin {
2340c8de5b0SBaptiste Daroussin     "    int      yyerrflag;",
2350c8de5b0SBaptiste Daroussin     "    int      yychar;",
2360c8de5b0SBaptiste Daroussin     "    YYSTYPE  yyval;",
2370c8de5b0SBaptiste Daroussin     "    YYSTYPE  yylval;",
238b53bb29fSJung-uk Kim     "    int      yynerrs;",
239b53bb29fSJung-uk Kim     "",
2400c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
2410c8de5b0SBaptiste Daroussin     "    YYLTYPE  yyloc; /* position returned by actions */",
2420c8de5b0SBaptiste Daroussin     "    YYLTYPE  yylloc; /* position from the lexer */",
2430c8de5b0SBaptiste Daroussin     "#endif",
2440c8de5b0SBaptiste Daroussin     "",
2450c8de5b0SBaptiste Daroussin     "    /* variables for the parser stack */",
2460c8de5b0SBaptiste Daroussin     "    YYSTACKDATA yystack;",
2470c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
2480c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
2490c8de5b0SBaptiste Daroussin     "",
2500c8de5b0SBaptiste Daroussin     "    /* Current parser state */",
2510c8de5b0SBaptiste Daroussin     "    static YYParseState *yyps = 0;",
2520c8de5b0SBaptiste Daroussin     "",
2530c8de5b0SBaptiste Daroussin     "    /* yypath != NULL: do the full parse, starting at *yypath parser state. */",
2540c8de5b0SBaptiste Daroussin     "    static YYParseState *yypath = 0;",
2550c8de5b0SBaptiste Daroussin     "",
2560c8de5b0SBaptiste Daroussin     "    /* Base of the lexical value queue */",
2570c8de5b0SBaptiste Daroussin     "    static YYSTYPE *yylvals = 0;",
2580c8de5b0SBaptiste Daroussin     "",
2590c8de5b0SBaptiste Daroussin     "    /* Current position at lexical value queue */",
2600c8de5b0SBaptiste Daroussin     "    static YYSTYPE *yylvp = 0;",
2610c8de5b0SBaptiste Daroussin     "",
2620c8de5b0SBaptiste Daroussin     "    /* End position of lexical value queue */",
2630c8de5b0SBaptiste Daroussin     "    static YYSTYPE *yylve = 0;",
2640c8de5b0SBaptiste Daroussin     "",
2650c8de5b0SBaptiste Daroussin     "    /* The last allocated position at the lexical value queue */",
2660c8de5b0SBaptiste Daroussin     "    static YYSTYPE *yylvlim = 0;",
2670c8de5b0SBaptiste Daroussin     "",
2680c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
2690c8de5b0SBaptiste Daroussin     "    /* Base of the lexical position queue */",
2700c8de5b0SBaptiste Daroussin     "    static YYLTYPE *yylpsns = 0;",
2710c8de5b0SBaptiste Daroussin     "",
2720c8de5b0SBaptiste Daroussin     "    /* Current position at lexical position queue */",
2730c8de5b0SBaptiste Daroussin     "    static YYLTYPE *yylpp = 0;",
2740c8de5b0SBaptiste Daroussin     "",
2750c8de5b0SBaptiste Daroussin     "    /* End position of lexical position queue */",
2760c8de5b0SBaptiste Daroussin     "    static YYLTYPE *yylpe = 0;",
2770c8de5b0SBaptiste Daroussin     "",
2780c8de5b0SBaptiste Daroussin     "    /* The last allocated position at the lexical position queue */",
2790c8de5b0SBaptiste Daroussin     "    static YYLTYPE *yylplim = 0;",
2800c8de5b0SBaptiste Daroussin     "#endif",
2810c8de5b0SBaptiste Daroussin     "",
2820c8de5b0SBaptiste Daroussin     "    /* Current position at lexical token queue */",
2832aca18c7SJung-uk Kim     "    static YYINT  *yylexp = 0;",
2840c8de5b0SBaptiste Daroussin     "",
2852aca18c7SJung-uk Kim     "    static YYINT  *yylexemes = 0;",
2860c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
2870c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
2880c8de5b0SBaptiste Daroussin     0
2890c8de5b0SBaptiste Daroussin };
2900c8de5b0SBaptiste Daroussin 
2910c8de5b0SBaptiste Daroussin const char *const body_1[] =
2920c8de5b0SBaptiste Daroussin {
2930c8de5b0SBaptiste Daroussin     "",
2940c8de5b0SBaptiste Daroussin     "/* For use in generated program */",
2950c8de5b0SBaptiste Daroussin     "#define yydepth (int)(yystack.s_mark - yystack.s_base)",
2960c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
2970c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
2980c8de5b0SBaptiste Daroussin     "#define yytrial (yyps->save)",
2990c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
3000c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
3010c8de5b0SBaptiste Daroussin     "",
3020c8de5b0SBaptiste Daroussin     "#if YYDEBUG",
3030c8de5b0SBaptiste Daroussin     "#include <stdio.h>	/* needed for printf */",
3040c8de5b0SBaptiste Daroussin     "#endif",
3050c8de5b0SBaptiste Daroussin     "",
3060c8de5b0SBaptiste Daroussin     "#include <stdlib.h>	/* needed for malloc, etc */",
3070c8de5b0SBaptiste Daroussin     "#include <string.h>	/* needed for memset */",
3080c8de5b0SBaptiste Daroussin     "",
3090c8de5b0SBaptiste Daroussin     "/* allocate initial stack or double stack size, up to YYMAXDEPTH */",
3100c8de5b0SBaptiste Daroussin     "static int yygrowstack(YYSTACKDATA *data)",
3110c8de5b0SBaptiste Daroussin     "{",
3120c8de5b0SBaptiste Daroussin     "    int i;",
3130c8de5b0SBaptiste Daroussin     "    unsigned newsize;",
314c5b5d71aSJung-uk Kim     "    YYINT *newss;",
3150c8de5b0SBaptiste Daroussin     "    YYSTYPE *newvs;",
3160c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
3170c8de5b0SBaptiste Daroussin     "    YYLTYPE *newps;",
3180c8de5b0SBaptiste Daroussin     "#endif",
3190c8de5b0SBaptiste Daroussin     "",
3200c8de5b0SBaptiste Daroussin     "    if ((newsize = data->stacksize) == 0)",
3210c8de5b0SBaptiste Daroussin     "        newsize = YYINITSTACKSIZE;",
3220c8de5b0SBaptiste Daroussin     "    else if (newsize >= YYMAXDEPTH)",
3230c8de5b0SBaptiste Daroussin     "        return YYENOMEM;",
3240c8de5b0SBaptiste Daroussin     "    else if ((newsize *= 2) > YYMAXDEPTH)",
3250c8de5b0SBaptiste Daroussin     "        newsize = YYMAXDEPTH;",
3260c8de5b0SBaptiste Daroussin     "",
3270c8de5b0SBaptiste Daroussin     "    i = (int) (data->s_mark - data->s_base);",
328c5b5d71aSJung-uk Kim     "    newss = (YYINT *)realloc(data->s_base, newsize * sizeof(*newss));",
32980f31432SJung-uk Kim     "    if (newss == NULL)",
3300c8de5b0SBaptiste Daroussin     "        return YYENOMEM;",
3310c8de5b0SBaptiste Daroussin     "",
3320c8de5b0SBaptiste Daroussin     "    data->s_base = newss;",
3330c8de5b0SBaptiste Daroussin     "    data->s_mark = newss + i;",
3340c8de5b0SBaptiste Daroussin     "",
3350c8de5b0SBaptiste Daroussin     "    newvs = (YYSTYPE *)realloc(data->l_base, newsize * sizeof(*newvs));",
33680f31432SJung-uk Kim     "    if (newvs == NULL)",
3370c8de5b0SBaptiste Daroussin     "        return YYENOMEM;",
3380c8de5b0SBaptiste Daroussin     "",
3390c8de5b0SBaptiste Daroussin     "    data->l_base = newvs;",
3400c8de5b0SBaptiste Daroussin     "    data->l_mark = newvs + i;",
3410c8de5b0SBaptiste Daroussin     "",
3420c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
3430c8de5b0SBaptiste Daroussin     "    newps = (YYLTYPE *)realloc(data->p_base, newsize * sizeof(*newps));",
34480f31432SJung-uk Kim     "    if (newps == NULL)",
3450c8de5b0SBaptiste Daroussin     "        return YYENOMEM;",
3460c8de5b0SBaptiste Daroussin     "",
3470c8de5b0SBaptiste Daroussin     "    data->p_base = newps;",
3480c8de5b0SBaptiste Daroussin     "    data->p_mark = newps + i;",
3490c8de5b0SBaptiste Daroussin     "#endif",
3500c8de5b0SBaptiste Daroussin     "",
3510c8de5b0SBaptiste Daroussin     "    data->stacksize = newsize;",
3520c8de5b0SBaptiste Daroussin     "    data->s_last = data->s_base + newsize - 1;",
3530c8de5b0SBaptiste Daroussin     "",
3540c8de5b0SBaptiste Daroussin     "#if YYDEBUG",
3550c8de5b0SBaptiste Daroussin     "    if (yydebug)",
3560c8de5b0SBaptiste Daroussin     "        fprintf(stderr, \"%sdebug: stack size increased to %d\\n\", YYPREFIX, newsize);",
3570c8de5b0SBaptiste Daroussin     "#endif",
3580c8de5b0SBaptiste Daroussin     "    return 0;",
3590c8de5b0SBaptiste Daroussin     "}",
3600c8de5b0SBaptiste Daroussin     "",
3610c8de5b0SBaptiste Daroussin     "#if YYPURE || defined(YY_NO_LEAKS)",
3620c8de5b0SBaptiste Daroussin     "static void yyfreestack(YYSTACKDATA *data)",
3630c8de5b0SBaptiste Daroussin     "{",
3640c8de5b0SBaptiste Daroussin     "    free(data->s_base);",
3650c8de5b0SBaptiste Daroussin     "    free(data->l_base);",
3660c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
3670c8de5b0SBaptiste Daroussin     "    free(data->p_base);",
3680c8de5b0SBaptiste Daroussin     "#endif",
3690c8de5b0SBaptiste Daroussin     "    memset(data, 0, sizeof(*data));",
3700c8de5b0SBaptiste Daroussin     "}",
3710c8de5b0SBaptiste Daroussin     "#else",
3720c8de5b0SBaptiste Daroussin     "#define yyfreestack(data) /* nothing */",
3730c8de5b0SBaptiste Daroussin     "#endif /* YYPURE || defined(YY_NO_LEAKS) */",
3740c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
3750c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
3760c8de5b0SBaptiste Daroussin     "",
3770c8de5b0SBaptiste Daroussin     "static YYParseState *",
3780c8de5b0SBaptiste Daroussin     "yyNewState(unsigned size)",
3790c8de5b0SBaptiste Daroussin     "{",
3800c8de5b0SBaptiste Daroussin     "    YYParseState *p = (YYParseState *) malloc(sizeof(YYParseState));",
3810c8de5b0SBaptiste Daroussin     "    if (p == NULL) return NULL;",
3820c8de5b0SBaptiste Daroussin     "",
3830c8de5b0SBaptiste Daroussin     "    p->yystack.stacksize = size;",
3840c8de5b0SBaptiste Daroussin     "    if (size == 0)",
3850c8de5b0SBaptiste Daroussin     "    {",
3860c8de5b0SBaptiste Daroussin     "        p->yystack.s_base = NULL;",
3870c8de5b0SBaptiste Daroussin     "        p->yystack.l_base = NULL;",
3880c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
3890c8de5b0SBaptiste Daroussin     "        p->yystack.p_base = NULL;",
3900c8de5b0SBaptiste Daroussin     "#endif",
3910c8de5b0SBaptiste Daroussin     "        return p;",
3920c8de5b0SBaptiste Daroussin     "    }",
393c5b5d71aSJung-uk Kim     "    p->yystack.s_base    = (YYINT *) malloc(size * sizeof(YYINT));",
3940c8de5b0SBaptiste Daroussin     "    if (p->yystack.s_base == NULL) return NULL;",
3950c8de5b0SBaptiste Daroussin     "    p->yystack.l_base    = (YYSTYPE *) malloc(size * sizeof(YYSTYPE));",
3960c8de5b0SBaptiste Daroussin     "    if (p->yystack.l_base == NULL) return NULL;",
3970c8de5b0SBaptiste Daroussin     "    memset(p->yystack.l_base, 0, size * sizeof(YYSTYPE));",
3980c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
3990c8de5b0SBaptiste Daroussin     "    p->yystack.p_base    = (YYLTYPE *) malloc(size * sizeof(YYLTYPE));",
4000c8de5b0SBaptiste Daroussin     "    if (p->yystack.p_base == NULL) return NULL;",
4010c8de5b0SBaptiste Daroussin     "    memset(p->yystack.p_base, 0, size * sizeof(YYLTYPE));",
4020c8de5b0SBaptiste Daroussin     "#endif",
4030c8de5b0SBaptiste Daroussin     "",
4040c8de5b0SBaptiste Daroussin     "    return p;",
4050c8de5b0SBaptiste Daroussin     "}",
4060c8de5b0SBaptiste Daroussin     "",
4070c8de5b0SBaptiste Daroussin     "static void",
4080c8de5b0SBaptiste Daroussin     "yyFreeState(YYParseState *p)",
4090c8de5b0SBaptiste Daroussin     "{",
4100c8de5b0SBaptiste Daroussin     "    yyfreestack(&p->yystack);",
4110c8de5b0SBaptiste Daroussin     "    free(p);",
4120c8de5b0SBaptiste Daroussin     "}",
4130c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
4140c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
4150c8de5b0SBaptiste Daroussin     "",
4160c8de5b0SBaptiste Daroussin     "#define YYABORT  goto yyabort",
4170c8de5b0SBaptiste Daroussin     "#define YYREJECT goto yyabort",
4180c8de5b0SBaptiste Daroussin     "#define YYACCEPT goto yyaccept",
4190c8de5b0SBaptiste Daroussin     "#define YYERROR  goto yyerrlab",
4200c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
4210c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
4220c8de5b0SBaptiste Daroussin     "#define YYVALID        do { if (yyps->save)            goto yyvalid; } while(0)",
4230c8de5b0SBaptiste Daroussin     "#define YYVALID_NESTED do { if (yyps->save && \\",
4240c8de5b0SBaptiste Daroussin     "                                yyps->save->save == 0) goto yyvalid; } while(0)",
4250c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
4260c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
4270c8de5b0SBaptiste Daroussin     "",
4280c8de5b0SBaptiste Daroussin     "int",
4290c8de5b0SBaptiste Daroussin     "YYPARSE_DECL()",
4300c8de5b0SBaptiste Daroussin     "{",
4310c8de5b0SBaptiste Daroussin     0
4320c8de5b0SBaptiste Daroussin };
4330c8de5b0SBaptiste Daroussin 
4340c8de5b0SBaptiste Daroussin const char *const body_2[] =
4350c8de5b0SBaptiste Daroussin {
4360c8de5b0SBaptiste Daroussin     "    int yym, yyn, yystate, yyresult;",
4370c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
4380c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
4390c8de5b0SBaptiste Daroussin     "    int yynewerrflag;",
4400c8de5b0SBaptiste Daroussin     "    YYParseState *yyerrctx = NULL;",
4410c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
4420c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
4430c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
444b53bb29fSJung-uk Kim     "    YYLTYPE  yyerror_loc_range[3]; /* position of error start/end (0 unused) */",
4450c8de5b0SBaptiste Daroussin     "#endif",
4460c8de5b0SBaptiste Daroussin     "#if YYDEBUG",
4470c8de5b0SBaptiste Daroussin     "    const char *yys;",
4480c8de5b0SBaptiste Daroussin     "",
44980f31432SJung-uk Kim     "    if ((yys = getenv(\"YYDEBUG\")) != NULL)",
4500c8de5b0SBaptiste Daroussin     "    {",
4510c8de5b0SBaptiste Daroussin     "        yyn = *yys;",
4520c8de5b0SBaptiste Daroussin     "        if (yyn >= '0' && yyn <= '9')",
4530c8de5b0SBaptiste Daroussin     "            yydebug = yyn - '0';",
4540c8de5b0SBaptiste Daroussin     "    }",
4550c8de5b0SBaptiste Daroussin     "    if (yydebug)",
4560c8de5b0SBaptiste Daroussin     "        fprintf(stderr, \"%sdebug[<# of symbols on state stack>]\\n\", YYPREFIX);",
4570c8de5b0SBaptiste Daroussin     "#endif",
4586166fdceSJung-uk Kim     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
4596166fdceSJung-uk Kim     "    memset(yyerror_loc_range, 0, sizeof(yyerror_loc_range));",
4606166fdceSJung-uk Kim     "#endif",
4616166fdceSJung-uk Kim     "",
4626166fdceSJung-uk Kim     0
4636166fdceSJung-uk Kim };
4646166fdceSJung-uk Kim 
4656166fdceSJung-uk Kim const char *const init_vars[] =
4666166fdceSJung-uk Kim {
4676166fdceSJung-uk Kim     "    yyerrflag = 0;",
4686166fdceSJung-uk Kim     "    yychar = 0;",
4696166fdceSJung-uk Kim     "    memset(&yyval,  0, sizeof(yyval));",
4706166fdceSJung-uk Kim     "    memset(&yylval, 0, sizeof(yylval));",
4716166fdceSJung-uk Kim     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
4726166fdceSJung-uk Kim     "    memset(&yyloc,  0, sizeof(yyloc));",
4736166fdceSJung-uk Kim     "    memset(&yylloc, 0, sizeof(yylloc));",
4746166fdceSJung-uk Kim     "#endif",
4750c8de5b0SBaptiste Daroussin     "",
4762aca18c7SJung-uk Kim     0
4772aca18c7SJung-uk Kim };
4782aca18c7SJung-uk Kim 
4792aca18c7SJung-uk Kim const char *const body_3[] =
4802aca18c7SJung-uk Kim {
4810c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
4820c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
4830c8de5b0SBaptiste Daroussin     "    yyps = yyNewState(0); if (yyps == 0) goto yyenomem;",
4840c8de5b0SBaptiste Daroussin     "    yyps->save = 0;",
4850c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
4860c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
487c5b5d71aSJung-uk Kim     "    yym = 0;",
4888e022d3cSDag-Erling Smørgrav     "    /* yyn is set below */",
4890c8de5b0SBaptiste Daroussin     "    yynerrs = 0;",
4900c8de5b0SBaptiste Daroussin     "    yyerrflag = 0;",
4910c8de5b0SBaptiste Daroussin     "    yychar = YYEMPTY;",
4920c8de5b0SBaptiste Daroussin     "    yystate = 0;",
4930c8de5b0SBaptiste Daroussin     "",
4940c8de5b0SBaptiste Daroussin     "#if YYPURE",
4950c8de5b0SBaptiste Daroussin     "    memset(&yystack, 0, sizeof(yystack));",
4960c8de5b0SBaptiste Daroussin     "#endif",
4970c8de5b0SBaptiste Daroussin     "",
4980c8de5b0SBaptiste Daroussin     "    if (yystack.s_base == NULL && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;",
4990c8de5b0SBaptiste Daroussin     "    yystack.s_mark = yystack.s_base;",
5000c8de5b0SBaptiste Daroussin     "    yystack.l_mark = yystack.l_base;",
5010c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
5020c8de5b0SBaptiste Daroussin     "    yystack.p_mark = yystack.p_base;",
5030c8de5b0SBaptiste Daroussin     "#endif",
5040c8de5b0SBaptiste Daroussin     "    yystate = 0;",
5050c8de5b0SBaptiste Daroussin     "    *yystack.s_mark = 0;",
5060c8de5b0SBaptiste Daroussin     "",
5070c8de5b0SBaptiste Daroussin     "yyloop:",
5080c8de5b0SBaptiste Daroussin     "    if ((yyn = yydefred[yystate]) != 0) goto yyreduce;",
5090c8de5b0SBaptiste Daroussin     "    if (yychar < 0)",
5100c8de5b0SBaptiste Daroussin     "    {",
5110c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
5120c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
5130c8de5b0SBaptiste Daroussin     "        do {",
5140c8de5b0SBaptiste Daroussin     "        if (yylvp < yylve)",
5150c8de5b0SBaptiste Daroussin     "        {",
5160c8de5b0SBaptiste Daroussin     "            /* we're currently re-reading tokens */",
5170c8de5b0SBaptiste Daroussin     "            yylval = *yylvp++;",
5180c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
5190c8de5b0SBaptiste Daroussin     "            yylloc = *yylpp++;",
5200c8de5b0SBaptiste Daroussin     "#endif",
5210c8de5b0SBaptiste Daroussin     "            yychar = *yylexp++;",
5220c8de5b0SBaptiste Daroussin     "            break;",
5230c8de5b0SBaptiste Daroussin     "        }",
5240c8de5b0SBaptiste Daroussin     "        if (yyps->save)",
5250c8de5b0SBaptiste Daroussin     "        {",
5260c8de5b0SBaptiste Daroussin     "            /* in trial mode; save scanner results for future parse attempts */",
5270c8de5b0SBaptiste Daroussin     "            if (yylvp == yylvlim)",
5280c8de5b0SBaptiste Daroussin     "            {   /* Enlarge lexical value queue */",
52911fce282SBaptiste Daroussin     "                size_t p = (size_t) (yylvp - yylvals);",
53011fce282SBaptiste Daroussin     "                size_t s = (size_t) (yylvlim - yylvals);",
5310c8de5b0SBaptiste Daroussin     "",
5320c8de5b0SBaptiste Daroussin     "                s += YYLVQUEUEGROWTH;",
533b53bb29fSJung-uk Kim     "                if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;",
534b53bb29fSJung-uk Kim     "                if ((yylvals   = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;",
5350c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
536b53bb29fSJung-uk Kim     "                if ((yylpsns   = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;",
5370c8de5b0SBaptiste Daroussin     "#endif",
5380c8de5b0SBaptiste Daroussin     "                yylvp   = yylve = yylvals + p;",
5390c8de5b0SBaptiste Daroussin     "                yylvlim = yylvals + s;",
5400c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
5410c8de5b0SBaptiste Daroussin     "                yylpp   = yylpe = yylpsns + p;",
5420c8de5b0SBaptiste Daroussin     "                yylplim = yylpsns + s;",
5430c8de5b0SBaptiste Daroussin     "#endif",
5440c8de5b0SBaptiste Daroussin     "                yylexp  = yylexemes + p;",
5450c8de5b0SBaptiste Daroussin     "            }",
5462aca18c7SJung-uk Kim     "            *yylexp = (YYINT) YYLEX;",
5470c8de5b0SBaptiste Daroussin     "            *yylvp++ = yylval;",
5480c8de5b0SBaptiste Daroussin     "            yylve++;",
5490c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
5500c8de5b0SBaptiste Daroussin     "            *yylpp++ = yylloc;",
5510c8de5b0SBaptiste Daroussin     "            yylpe++;",
5520c8de5b0SBaptiste Daroussin     "#endif",
5530c8de5b0SBaptiste Daroussin     "            yychar = *yylexp++;",
5540c8de5b0SBaptiste Daroussin     "            break;",
5550c8de5b0SBaptiste Daroussin     "        }",
5560c8de5b0SBaptiste Daroussin     "        /* normal operation, no conflict encountered */",
5570c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
5580c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
5590c8de5b0SBaptiste Daroussin     "        yychar = YYLEX;",
5600c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
5610c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
5620c8de5b0SBaptiste Daroussin     "        } while (0);",
5630c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
5640c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
5650c8de5b0SBaptiste Daroussin     "        if (yychar < 0) yychar = YYEOF;",
5660c8de5b0SBaptiste Daroussin     "#if YYDEBUG",
5670c8de5b0SBaptiste Daroussin     "        if (yydebug)",
5680c8de5b0SBaptiste Daroussin     "        {",
569c5b5d71aSJung-uk Kim     "            if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];",
5700c8de5b0SBaptiste Daroussin     "            fprintf(stderr, \"%s[%d]: state %d, reading token %d (%s)\",",
5710c8de5b0SBaptiste Daroussin     "                            YYDEBUGSTR, yydepth, yystate, yychar, yys);",
5720c8de5b0SBaptiste Daroussin     "#ifdef YYSTYPE_TOSTRING",
5730c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
5740c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
5750c8de5b0SBaptiste Daroussin     "            if (!yytrial)",
5760c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
5770c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
5780c8de5b0SBaptiste Daroussin     "                fprintf(stderr, \" <%s>\", YYSTYPE_TOSTRING(yychar, yylval));",
5790c8de5b0SBaptiste Daroussin     "#endif",
5800c8de5b0SBaptiste Daroussin     "            fputc('\\n', stderr);",
5810c8de5b0SBaptiste Daroussin     "        }",
5820c8de5b0SBaptiste Daroussin     "#endif",
5830c8de5b0SBaptiste Daroussin     "    }",
5840c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
5850c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
5860c8de5b0SBaptiste Daroussin     "",
5870c8de5b0SBaptiste Daroussin     "    /* Do we have a conflict? */",
5880c8de5b0SBaptiste Daroussin     "    if (((yyn = yycindex[yystate]) != 0) && (yyn += yychar) >= 0 &&",
5890c8de5b0SBaptiste Daroussin     "        yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)",
5900c8de5b0SBaptiste Daroussin     "    {",
5910c8de5b0SBaptiste Daroussin     "        YYINT ctry;",
5920c8de5b0SBaptiste Daroussin     "",
5930c8de5b0SBaptiste Daroussin     "        if (yypath)",
5940c8de5b0SBaptiste Daroussin     "        {",
5950c8de5b0SBaptiste Daroussin     "            YYParseState *save;",
5960c8de5b0SBaptiste Daroussin     "#if YYDEBUG",
5970c8de5b0SBaptiste Daroussin     "            if (yydebug)",
5980c8de5b0SBaptiste Daroussin     "                fprintf(stderr, \"%s[%d]: CONFLICT in state %d: following successful trial parse\\n\",",
5990c8de5b0SBaptiste Daroussin     "                                YYDEBUGSTR, yydepth, yystate);",
6000c8de5b0SBaptiste Daroussin     "#endif",
6010c8de5b0SBaptiste Daroussin     "            /* Switch to the next conflict context */",
6020c8de5b0SBaptiste Daroussin     "            save = yypath;",
6030c8de5b0SBaptiste Daroussin     "            yypath = save->save;",
6040c8de5b0SBaptiste Daroussin     "            save->save = NULL;",
6050c8de5b0SBaptiste Daroussin     "            ctry = save->ctry;",
6060c8de5b0SBaptiste Daroussin     "            if (save->state != yystate) YYABORT;",
6070c8de5b0SBaptiste Daroussin     "            yyFreeState(save);",
6080c8de5b0SBaptiste Daroussin     "",
6090c8de5b0SBaptiste Daroussin     "        }",
6100c8de5b0SBaptiste Daroussin     "        else",
6110c8de5b0SBaptiste Daroussin     "        {",
6120c8de5b0SBaptiste Daroussin     "",
6130c8de5b0SBaptiste Daroussin     "            /* Unresolved conflict - start/continue trial parse */",
6140c8de5b0SBaptiste Daroussin     "            YYParseState *save;",
6150c8de5b0SBaptiste Daroussin     "#if YYDEBUG",
6160c8de5b0SBaptiste Daroussin     "            if (yydebug)",
6170c8de5b0SBaptiste Daroussin     "            {",
6180c8de5b0SBaptiste Daroussin     "                fprintf(stderr, \"%s[%d]: CONFLICT in state %d. \", YYDEBUGSTR, yydepth, yystate);",
6190c8de5b0SBaptiste Daroussin     "                if (yyps->save)",
6200c8de5b0SBaptiste Daroussin     "                    fputs(\"ALREADY in conflict, continuing trial parse.\\n\", stderr);",
6210c8de5b0SBaptiste Daroussin     "                else",
6220c8de5b0SBaptiste Daroussin     "                    fputs(\"Starting trial parse.\\n\", stderr);",
6230c8de5b0SBaptiste Daroussin     "            }",
6240c8de5b0SBaptiste Daroussin     "#endif",
6250c8de5b0SBaptiste Daroussin     "            save                  = yyNewState((unsigned)(yystack.s_mark - yystack.s_base + 1));",
6260c8de5b0SBaptiste Daroussin     "            if (save == NULL) goto yyenomem;",
6270c8de5b0SBaptiste Daroussin     "            save->save            = yyps->save;",
6280c8de5b0SBaptiste Daroussin     "            save->state           = yystate;",
6290c8de5b0SBaptiste Daroussin     "            save->errflag         = yyerrflag;",
6300c8de5b0SBaptiste Daroussin     "            save->yystack.s_mark  = save->yystack.s_base + (yystack.s_mark - yystack.s_base);",
631c5b5d71aSJung-uk Kim     "            memcpy (save->yystack.s_base, yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));",
6320c8de5b0SBaptiste Daroussin     "            save->yystack.l_mark  = save->yystack.l_base + (yystack.l_mark - yystack.l_base);",
63311fce282SBaptiste Daroussin     "            memcpy (save->yystack.l_base, yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));",
6340c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
6350c8de5b0SBaptiste Daroussin     "            save->yystack.p_mark  = save->yystack.p_base + (yystack.p_mark - yystack.p_base);",
63611fce282SBaptiste Daroussin     "            memcpy (save->yystack.p_base, yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));",
6370c8de5b0SBaptiste Daroussin     "#endif",
6380c8de5b0SBaptiste Daroussin     "            ctry                  = yytable[yyn];",
6390c8de5b0SBaptiste Daroussin     "            if (yyctable[ctry] == -1)",
6400c8de5b0SBaptiste Daroussin     "            {",
6410c8de5b0SBaptiste Daroussin     "#if YYDEBUG",
6420c8de5b0SBaptiste Daroussin     "                if (yydebug && yychar >= YYEOF)",
6430c8de5b0SBaptiste Daroussin     "                    fprintf(stderr, \"%s[%d]: backtracking 1 token\\n\", YYDEBUGSTR, yydepth);",
6440c8de5b0SBaptiste Daroussin     "#endif",
6450c8de5b0SBaptiste Daroussin     "                ctry++;",
6460c8de5b0SBaptiste Daroussin     "            }",
6470c8de5b0SBaptiste Daroussin     "            save->ctry = ctry;",
6480c8de5b0SBaptiste Daroussin     "            if (yyps->save == NULL)",
6490c8de5b0SBaptiste Daroussin     "            {",
6500c8de5b0SBaptiste Daroussin     "                /* If this is a first conflict in the stack, start saving lexemes */",
6510c8de5b0SBaptiste Daroussin     "                if (!yylexemes)",
6520c8de5b0SBaptiste Daroussin     "                {",
653b53bb29fSJung-uk Kim     "                    yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));",
6540c8de5b0SBaptiste Daroussin     "                    if (yylexemes == NULL) goto yyenomem;",
6550c8de5b0SBaptiste Daroussin     "                    yylvals   = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));",
6560c8de5b0SBaptiste Daroussin     "                    if (yylvals == NULL) goto yyenomem;",
6570c8de5b0SBaptiste Daroussin     "                    yylvlim   = yylvals + YYLVQUEUEGROWTH;",
6580c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
6590c8de5b0SBaptiste Daroussin     "                    yylpsns   = (YYLTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYLTYPE));",
6600c8de5b0SBaptiste Daroussin     "                    if (yylpsns == NULL) goto yyenomem;",
6610c8de5b0SBaptiste Daroussin     "                    yylplim   = yylpsns + YYLVQUEUEGROWTH;",
6620c8de5b0SBaptiste Daroussin     "#endif",
6630c8de5b0SBaptiste Daroussin     "                }",
6640c8de5b0SBaptiste Daroussin     "                if (yylvp == yylve)",
6650c8de5b0SBaptiste Daroussin     "                {",
6660c8de5b0SBaptiste Daroussin     "                    yylvp  = yylve = yylvals;",
6670c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
6680c8de5b0SBaptiste Daroussin     "                    yylpp  = yylpe = yylpsns;",
6690c8de5b0SBaptiste Daroussin     "#endif",
6700c8de5b0SBaptiste Daroussin     "                    yylexp = yylexemes;",
6710c8de5b0SBaptiste Daroussin     "                    if (yychar >= YYEOF)",
6720c8de5b0SBaptiste Daroussin     "                    {",
6730c8de5b0SBaptiste Daroussin     "                        *yylve++ = yylval;",
6740c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
6750c8de5b0SBaptiste Daroussin     "                        *yylpe++ = yylloc;",
6760c8de5b0SBaptiste Daroussin     "#endif",
6772aca18c7SJung-uk Kim     "                        *yylexp  = (YYINT) yychar;",
6780c8de5b0SBaptiste Daroussin     "                        yychar   = YYEMPTY;",
6790c8de5b0SBaptiste Daroussin     "                    }",
6800c8de5b0SBaptiste Daroussin     "                }",
6810c8de5b0SBaptiste Daroussin     "            }",
6820c8de5b0SBaptiste Daroussin     "            if (yychar >= YYEOF)",
6830c8de5b0SBaptiste Daroussin     "            {",
6840c8de5b0SBaptiste Daroussin     "                yylvp--;",
6850c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
6860c8de5b0SBaptiste Daroussin     "                yylpp--;",
6870c8de5b0SBaptiste Daroussin     "#endif",
6880c8de5b0SBaptiste Daroussin     "                yylexp--;",
6890c8de5b0SBaptiste Daroussin     "                yychar = YYEMPTY;",
6900c8de5b0SBaptiste Daroussin     "            }",
69111fce282SBaptiste Daroussin     "            save->lexeme = (int) (yylvp - yylvals);",
6920c8de5b0SBaptiste Daroussin     "            yyps->save   = save;",
6930c8de5b0SBaptiste Daroussin     "        }",
6940c8de5b0SBaptiste Daroussin     "        if (yytable[yyn] == ctry)",
6950c8de5b0SBaptiste Daroussin     "        {",
6960c8de5b0SBaptiste Daroussin     "#if YYDEBUG",
6970c8de5b0SBaptiste Daroussin     "            if (yydebug)",
6980c8de5b0SBaptiste Daroussin     "                fprintf(stderr, \"%s[%d]: state %d, shifting to state %d\\n\",",
6990c8de5b0SBaptiste Daroussin     "                                YYDEBUGSTR, yydepth, yystate, yyctable[ctry]);",
7000c8de5b0SBaptiste Daroussin     "#endif",
7010c8de5b0SBaptiste Daroussin     "            if (yychar < 0)",
7020c8de5b0SBaptiste Daroussin     "            {",
7030c8de5b0SBaptiste Daroussin     "                yylvp++;",
7040c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
7050c8de5b0SBaptiste Daroussin     "                yylpp++;",
7060c8de5b0SBaptiste Daroussin     "#endif",
7070c8de5b0SBaptiste Daroussin     "                yylexp++;",
7080c8de5b0SBaptiste Daroussin     "            }",
7090c8de5b0SBaptiste Daroussin     "            if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM)",
7100c8de5b0SBaptiste Daroussin     "                goto yyoverflow;",
7110c8de5b0SBaptiste Daroussin     "            yystate = yyctable[ctry];",
712c5b5d71aSJung-uk Kim     "            *++yystack.s_mark = (YYINT) yystate;",
7130c8de5b0SBaptiste Daroussin     "            *++yystack.l_mark = yylval;",
7140c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
7150c8de5b0SBaptiste Daroussin     "            *++yystack.p_mark = yylloc;",
7160c8de5b0SBaptiste Daroussin     "#endif",
7170c8de5b0SBaptiste Daroussin     "            yychar  = YYEMPTY;",
7180c8de5b0SBaptiste Daroussin     "            if (yyerrflag > 0) --yyerrflag;",
7190c8de5b0SBaptiste Daroussin     "            goto yyloop;",
7200c8de5b0SBaptiste Daroussin     "        }",
7210c8de5b0SBaptiste Daroussin     "        else",
7220c8de5b0SBaptiste Daroussin     "        {",
7230c8de5b0SBaptiste Daroussin     "            yyn = yyctable[ctry];",
7240c8de5b0SBaptiste Daroussin     "            goto yyreduce;",
7250c8de5b0SBaptiste Daroussin     "        }",
7260c8de5b0SBaptiste Daroussin     "    } /* End of code dealing with conflicts */",
7270c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
7280c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
7290c8de5b0SBaptiste Daroussin     "    if (((yyn = yysindex[yystate]) != 0) && (yyn += yychar) >= 0 &&",
7300c8de5b0SBaptiste Daroussin     "            yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)",
7310c8de5b0SBaptiste Daroussin     "    {",
7320c8de5b0SBaptiste Daroussin     "#if YYDEBUG",
7330c8de5b0SBaptiste Daroussin     "        if (yydebug)",
7340c8de5b0SBaptiste Daroussin     "            fprintf(stderr, \"%s[%d]: state %d, shifting to state %d\\n\",",
7350c8de5b0SBaptiste Daroussin     "                            YYDEBUGSTR, yydepth, yystate, yytable[yyn]);",
7360c8de5b0SBaptiste Daroussin     "#endif",
7370c8de5b0SBaptiste Daroussin     "        if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;",
7380c8de5b0SBaptiste Daroussin     "        yystate = yytable[yyn];",
7390c8de5b0SBaptiste Daroussin     "        *++yystack.s_mark = yytable[yyn];",
7400c8de5b0SBaptiste Daroussin     "        *++yystack.l_mark = yylval;",
7410c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
7420c8de5b0SBaptiste Daroussin     "        *++yystack.p_mark = yylloc;",
7430c8de5b0SBaptiste Daroussin     "#endif",
7440c8de5b0SBaptiste Daroussin     "        yychar = YYEMPTY;",
7450c8de5b0SBaptiste Daroussin     "        if (yyerrflag > 0)  --yyerrflag;",
7460c8de5b0SBaptiste Daroussin     "        goto yyloop;",
7470c8de5b0SBaptiste Daroussin     "    }",
7480c8de5b0SBaptiste Daroussin     "    if (((yyn = yyrindex[yystate]) != 0) && (yyn += yychar) >= 0 &&",
7490c8de5b0SBaptiste Daroussin     "            yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)",
7500c8de5b0SBaptiste Daroussin     "    {",
7510c8de5b0SBaptiste Daroussin     "        yyn = yytable[yyn];",
7520c8de5b0SBaptiste Daroussin     "        goto yyreduce;",
7530c8de5b0SBaptiste Daroussin     "    }",
7540c8de5b0SBaptiste Daroussin     "    if (yyerrflag != 0) goto yyinrecovery;",
7550c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
7560c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
7570c8de5b0SBaptiste Daroussin     "",
7580c8de5b0SBaptiste Daroussin     "    yynewerrflag = 1;",
7590c8de5b0SBaptiste Daroussin     "    goto yyerrhandler;",
760c5b5d71aSJung-uk Kim     "    goto yyerrlab; /* redundant goto avoids 'unused label' warning */",
7610c8de5b0SBaptiste Daroussin     "",
7620c8de5b0SBaptiste Daroussin     "yyerrlab:",
763c5b5d71aSJung-uk Kim     "    /* explicit YYERROR from an action -- pop the rhs of the rule reduced",
764c5b5d71aSJung-uk Kim     "     * before looking for error recovery */",
765c5b5d71aSJung-uk Kim     "    yystack.s_mark -= yym;",
766c5b5d71aSJung-uk Kim     "    yystate = *yystack.s_mark;",
767c5b5d71aSJung-uk Kim     "    yystack.l_mark -= yym;",
768c5b5d71aSJung-uk Kim     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
769c5b5d71aSJung-uk Kim     "    yystack.p_mark -= yym;",
770c5b5d71aSJung-uk Kim     "#endif",
771c5b5d71aSJung-uk Kim     "",
7720c8de5b0SBaptiste Daroussin     "    yynewerrflag = 0;",
7730c8de5b0SBaptiste Daroussin     "yyerrhandler:",
7740c8de5b0SBaptiste Daroussin     "    while (yyps->save)",
7750c8de5b0SBaptiste Daroussin     "    {",
7760c8de5b0SBaptiste Daroussin     "        int ctry;",
7770c8de5b0SBaptiste Daroussin     "        YYParseState *save = yyps->save;",
7780c8de5b0SBaptiste Daroussin     "#if YYDEBUG",
7790c8de5b0SBaptiste Daroussin     "        if (yydebug)",
7800c8de5b0SBaptiste Daroussin     "            fprintf(stderr, \"%s[%d]: ERROR in state %d, CONFLICT BACKTRACKING to state %d, %d tokens\\n\",",
7810c8de5b0SBaptiste Daroussin     "                            YYDEBUGSTR, yydepth, yystate, yyps->save->state,",
7820c8de5b0SBaptiste Daroussin     "                    (int)(yylvp - yylvals - yyps->save->lexeme));",
7830c8de5b0SBaptiste Daroussin     "#endif",
7840c8de5b0SBaptiste Daroussin     "        /* Memorize most forward-looking error state in case it's really an error. */",
7850c8de5b0SBaptiste Daroussin     "        if (yyerrctx == NULL || yyerrctx->lexeme < yylvp - yylvals)",
7860c8de5b0SBaptiste Daroussin     "        {",
7870c8de5b0SBaptiste Daroussin     "            /* Free old saved error context state */",
7880c8de5b0SBaptiste Daroussin     "            if (yyerrctx) yyFreeState(yyerrctx);",
7890c8de5b0SBaptiste Daroussin     "            /* Create and fill out new saved error context state */",
7900c8de5b0SBaptiste Daroussin     "            yyerrctx                 = yyNewState((unsigned)(yystack.s_mark - yystack.s_base + 1));",
7910c8de5b0SBaptiste Daroussin     "            if (yyerrctx == NULL) goto yyenomem;",
7920c8de5b0SBaptiste Daroussin     "            yyerrctx->save           = yyps->save;",
7930c8de5b0SBaptiste Daroussin     "            yyerrctx->state          = yystate;",
7940c8de5b0SBaptiste Daroussin     "            yyerrctx->errflag        = yyerrflag;",
7950c8de5b0SBaptiste Daroussin     "            yyerrctx->yystack.s_mark = yyerrctx->yystack.s_base + (yystack.s_mark - yystack.s_base);",
796c5b5d71aSJung-uk Kim     "            memcpy (yyerrctx->yystack.s_base, yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));",
7970c8de5b0SBaptiste Daroussin     "            yyerrctx->yystack.l_mark = yyerrctx->yystack.l_base + (yystack.l_mark - yystack.l_base);",
79811fce282SBaptiste Daroussin     "            memcpy (yyerrctx->yystack.l_base, yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));",
7990c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
8000c8de5b0SBaptiste Daroussin     "            yyerrctx->yystack.p_mark = yyerrctx->yystack.p_base + (yystack.p_mark - yystack.p_base);",
80111fce282SBaptiste Daroussin     "            memcpy (yyerrctx->yystack.p_base, yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));",
8020c8de5b0SBaptiste Daroussin     "#endif",
80311fce282SBaptiste Daroussin     "            yyerrctx->lexeme         = (int) (yylvp - yylvals);",
8040c8de5b0SBaptiste Daroussin     "        }",
8050c8de5b0SBaptiste Daroussin     "        yylvp          = yylvals   + save->lexeme;",
8060c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
8070c8de5b0SBaptiste Daroussin     "        yylpp          = yylpsns   + save->lexeme;",
8080c8de5b0SBaptiste Daroussin     "#endif",
8090c8de5b0SBaptiste Daroussin     "        yylexp         = yylexemes + save->lexeme;",
8100c8de5b0SBaptiste Daroussin     "        yychar         = YYEMPTY;",
8110c8de5b0SBaptiste Daroussin     "        yystack.s_mark = yystack.s_base + (save->yystack.s_mark - save->yystack.s_base);",
812c5b5d71aSJung-uk Kim     "        memcpy (yystack.s_base, save->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));",
8130c8de5b0SBaptiste Daroussin     "        yystack.l_mark = yystack.l_base + (save->yystack.l_mark - save->yystack.l_base);",
81411fce282SBaptiste Daroussin     "        memcpy (yystack.l_base, save->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));",
8150c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
8160c8de5b0SBaptiste Daroussin     "        yystack.p_mark = yystack.p_base + (save->yystack.p_mark - save->yystack.p_base);",
81711fce282SBaptiste Daroussin     "        memcpy (yystack.p_base, save->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));",
8180c8de5b0SBaptiste Daroussin     "#endif",
8190c8de5b0SBaptiste Daroussin     "        ctry           = ++save->ctry;",
8200c8de5b0SBaptiste Daroussin     "        yystate        = save->state;",
8210c8de5b0SBaptiste Daroussin     "        /* We tried shift, try reduce now */",
8220c8de5b0SBaptiste Daroussin     "        if ((yyn = yyctable[ctry]) >= 0) goto yyreduce;",
8230c8de5b0SBaptiste Daroussin     "        yyps->save     = save->save;",
8240c8de5b0SBaptiste Daroussin     "        save->save     = NULL;",
8250c8de5b0SBaptiste Daroussin     "        yyFreeState(save);",
8260c8de5b0SBaptiste Daroussin     "",
8270c8de5b0SBaptiste Daroussin     "        /* Nothing left on the stack -- error */",
8280c8de5b0SBaptiste Daroussin     "        if (!yyps->save)",
8290c8de5b0SBaptiste Daroussin     "        {",
8300c8de5b0SBaptiste Daroussin     "#if YYDEBUG",
8310c8de5b0SBaptiste Daroussin     "            if (yydebug)",
8320c8de5b0SBaptiste Daroussin     "                fprintf(stderr, \"%sdebug[%d,trial]: trial parse FAILED, entering ERROR mode\\n\",",
8330c8de5b0SBaptiste Daroussin     "                                YYPREFIX, yydepth);",
8340c8de5b0SBaptiste Daroussin     "#endif",
8350c8de5b0SBaptiste Daroussin     "            /* Restore state as it was in the most forward-advanced error */",
8360c8de5b0SBaptiste Daroussin     "            yylvp          = yylvals   + yyerrctx->lexeme;",
8370c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
8380c8de5b0SBaptiste Daroussin     "            yylpp          = yylpsns   + yyerrctx->lexeme;",
8390c8de5b0SBaptiste Daroussin     "#endif",
8400c8de5b0SBaptiste Daroussin     "            yylexp         = yylexemes + yyerrctx->lexeme;",
8410c8de5b0SBaptiste Daroussin     "            yychar         = yylexp[-1];",
8420c8de5b0SBaptiste Daroussin     "            yylval         = yylvp[-1];",
8430c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
8440c8de5b0SBaptiste Daroussin     "            yylloc         = yylpp[-1];",
8450c8de5b0SBaptiste Daroussin     "#endif",
8460c8de5b0SBaptiste Daroussin     "            yystack.s_mark = yystack.s_base + (yyerrctx->yystack.s_mark - yyerrctx->yystack.s_base);",
847c5b5d71aSJung-uk Kim     "            memcpy (yystack.s_base, yyerrctx->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));",
8480c8de5b0SBaptiste Daroussin     "            yystack.l_mark = yystack.l_base + (yyerrctx->yystack.l_mark - yyerrctx->yystack.l_base);",
84911fce282SBaptiste Daroussin     "            memcpy (yystack.l_base, yyerrctx->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));",
8500c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
8510c8de5b0SBaptiste Daroussin     "            yystack.p_mark = yystack.p_base + (yyerrctx->yystack.p_mark - yyerrctx->yystack.p_base);",
85211fce282SBaptiste Daroussin     "            memcpy (yystack.p_base, yyerrctx->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));",
8530c8de5b0SBaptiste Daroussin     "#endif",
8540c8de5b0SBaptiste Daroussin     "            yystate        = yyerrctx->state;",
8550c8de5b0SBaptiste Daroussin     "            yyFreeState(yyerrctx);",
8560c8de5b0SBaptiste Daroussin     "            yyerrctx       = NULL;",
8570c8de5b0SBaptiste Daroussin     "        }",
8580c8de5b0SBaptiste Daroussin     "        yynewerrflag = 1;",
8590c8de5b0SBaptiste Daroussin     "    }",
8600c8de5b0SBaptiste Daroussin     "    if (yynewerrflag == 0) goto yyinrecovery;",
8610c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
8620c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
8630c8de5b0SBaptiste Daroussin     "",
8640c8de5b0SBaptiste Daroussin     "    YYERROR_CALL(\"syntax error\");",
8650c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
866b53bb29fSJung-uk Kim     "    yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */",
8670c8de5b0SBaptiste Daroussin     "#endif",
8680c8de5b0SBaptiste Daroussin     "",
8690c8de5b0SBaptiste Daroussin     "#if !YYBTYACC",
870c5b5d71aSJung-uk Kim     "    goto yyerrlab; /* redundant goto avoids 'unused label' warning */",
8710c8de5b0SBaptiste Daroussin     "yyerrlab:",
8720c8de5b0SBaptiste Daroussin     "#endif",
8730c8de5b0SBaptiste Daroussin     "    ++yynerrs;",
8740c8de5b0SBaptiste Daroussin     "",
8750c8de5b0SBaptiste Daroussin     "yyinrecovery:",
8760c8de5b0SBaptiste Daroussin     "    if (yyerrflag < 3)",
8770c8de5b0SBaptiste Daroussin     "    {",
8780c8de5b0SBaptiste Daroussin     "        yyerrflag = 3;",
8790c8de5b0SBaptiste Daroussin     "        for (;;)",
8800c8de5b0SBaptiste Daroussin     "        {",
8810c8de5b0SBaptiste Daroussin     "            if (((yyn = yysindex[*yystack.s_mark]) != 0) && (yyn += YYERRCODE) >= 0 &&",
8820c8de5b0SBaptiste Daroussin     "                    yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) YYERRCODE)",
8830c8de5b0SBaptiste Daroussin     "            {",
8840c8de5b0SBaptiste Daroussin     "#if YYDEBUG",
8850c8de5b0SBaptiste Daroussin     "                if (yydebug)",
8860c8de5b0SBaptiste Daroussin     "                    fprintf(stderr, \"%s[%d]: state %d, error recovery shifting to state %d\\n\",",
8870c8de5b0SBaptiste Daroussin     "                                    YYDEBUGSTR, yydepth, *yystack.s_mark, yytable[yyn]);",
8880c8de5b0SBaptiste Daroussin     "#endif",
8890c8de5b0SBaptiste Daroussin     "                if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;",
8900c8de5b0SBaptiste Daroussin     "                yystate = yytable[yyn];",
8910c8de5b0SBaptiste Daroussin     "                *++yystack.s_mark = yytable[yyn];",
8920c8de5b0SBaptiste Daroussin     "                *++yystack.l_mark = yylval;",
8930c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
8940c8de5b0SBaptiste Daroussin     "                /* lookahead position is error end position */",
895b53bb29fSJung-uk Kim     "                yyerror_loc_range[2] = yylloc;",
8960c8de5b0SBaptiste Daroussin     "                YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */",
8970c8de5b0SBaptiste Daroussin     "                *++yystack.p_mark = yyloc;",
8980c8de5b0SBaptiste Daroussin     "#endif",
8990c8de5b0SBaptiste Daroussin     "                goto yyloop;",
9000c8de5b0SBaptiste Daroussin     "            }",
9010c8de5b0SBaptiste Daroussin     "            else",
9020c8de5b0SBaptiste Daroussin     "            {",
9030c8de5b0SBaptiste Daroussin     "#if YYDEBUG",
9040c8de5b0SBaptiste Daroussin     "                if (yydebug)",
9050c8de5b0SBaptiste Daroussin     "                    fprintf(stderr, \"%s[%d]: error recovery discarding state %d\\n\",",
9060c8de5b0SBaptiste Daroussin     "                                    YYDEBUGSTR, yydepth, *yystack.s_mark);",
9070c8de5b0SBaptiste Daroussin     "#endif",
9080c8de5b0SBaptiste Daroussin     "                if (yystack.s_mark <= yystack.s_base) goto yyabort;",
9090c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
9100c8de5b0SBaptiste Daroussin     "                /* the current TOS position is the error start position */",
911b53bb29fSJung-uk Kim     "                yyerror_loc_range[1] = *yystack.p_mark;",
9120c8de5b0SBaptiste Daroussin     "#endif",
9130c8de5b0SBaptiste Daroussin     "#if defined(YYDESTRUCT_CALL)",
9140c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
9150c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
9160c8de5b0SBaptiste Daroussin     "                if (!yytrial)",
9170c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
9180c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
9190c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
9200c8de5b0SBaptiste Daroussin     "                    YYDESTRUCT_CALL(\"error: discarding state\",",
9210c8de5b0SBaptiste Daroussin     "                                    yystos[*yystack.s_mark], yystack.l_mark, yystack.p_mark);",
9220c8de5b0SBaptiste Daroussin     "#else",
9230c8de5b0SBaptiste Daroussin     "                    YYDESTRUCT_CALL(\"error: discarding state\",",
9240c8de5b0SBaptiste Daroussin     "                                    yystos[*yystack.s_mark], yystack.l_mark);",
9250c8de5b0SBaptiste Daroussin     "#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */",
9260c8de5b0SBaptiste Daroussin     "#endif /* defined(YYDESTRUCT_CALL) */",
9270c8de5b0SBaptiste Daroussin     "                --yystack.s_mark;",
9280c8de5b0SBaptiste Daroussin     "                --yystack.l_mark;",
9290c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
9300c8de5b0SBaptiste Daroussin     "                --yystack.p_mark;",
9310c8de5b0SBaptiste Daroussin     "#endif",
9320c8de5b0SBaptiste Daroussin     "            }",
9330c8de5b0SBaptiste Daroussin     "        }",
9340c8de5b0SBaptiste Daroussin     "    }",
9350c8de5b0SBaptiste Daroussin     "    else",
9360c8de5b0SBaptiste Daroussin     "    {",
9370c8de5b0SBaptiste Daroussin     "        if (yychar == YYEOF) goto yyabort;",
9380c8de5b0SBaptiste Daroussin     "#if YYDEBUG",
9390c8de5b0SBaptiste Daroussin     "        if (yydebug)",
9400c8de5b0SBaptiste Daroussin     "        {",
941c5b5d71aSJung-uk Kim     "            if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];",
9420c8de5b0SBaptiste Daroussin     "            fprintf(stderr, \"%s[%d]: state %d, error recovery discarding token %d (%s)\\n\",",
9430c8de5b0SBaptiste Daroussin     "                            YYDEBUGSTR, yydepth, yystate, yychar, yys);",
9440c8de5b0SBaptiste Daroussin     "        }",
9450c8de5b0SBaptiste Daroussin     "#endif",
9460c8de5b0SBaptiste Daroussin     "#if defined(YYDESTRUCT_CALL)",
9470c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
9480c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
9490c8de5b0SBaptiste Daroussin     "        if (!yytrial)",
9500c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
9510c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
9520c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
9530c8de5b0SBaptiste Daroussin     "            YYDESTRUCT_CALL(\"error: discarding token\", yychar, &yylval, &yylloc);",
9540c8de5b0SBaptiste Daroussin     "#else",
9550c8de5b0SBaptiste Daroussin     "            YYDESTRUCT_CALL(\"error: discarding token\", yychar, &yylval);",
9560c8de5b0SBaptiste Daroussin     "#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */",
9570c8de5b0SBaptiste Daroussin     "#endif /* defined(YYDESTRUCT_CALL) */",
9580c8de5b0SBaptiste Daroussin     "        yychar = YYEMPTY;",
9590c8de5b0SBaptiste Daroussin     "        goto yyloop;",
9600c8de5b0SBaptiste Daroussin     "    }",
9610c8de5b0SBaptiste Daroussin     "",
9620c8de5b0SBaptiste Daroussin     "yyreduce:",
9630c8de5b0SBaptiste Daroussin     "    yym = yylen[yyn];",
9640c8de5b0SBaptiste Daroussin     "#if YYDEBUG",
9650c8de5b0SBaptiste Daroussin     "    if (yydebug)",
9660c8de5b0SBaptiste Daroussin     "    {",
9670c8de5b0SBaptiste Daroussin     "        fprintf(stderr, \"%s[%d]: state %d, reducing by rule %d (%s)\",",
9680c8de5b0SBaptiste Daroussin     "                        YYDEBUGSTR, yydepth, yystate, yyn, yyrule[yyn]);",
9690c8de5b0SBaptiste Daroussin     "#ifdef YYSTYPE_TOSTRING",
9700c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
9710c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
9720c8de5b0SBaptiste Daroussin     "        if (!yytrial)",
9730c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
9740c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
9750c8de5b0SBaptiste Daroussin     "            if (yym > 0)",
9760c8de5b0SBaptiste Daroussin     "            {",
9770c8de5b0SBaptiste Daroussin     "                int i;",
9780c8de5b0SBaptiste Daroussin     "                fputc('<', stderr);",
9790c8de5b0SBaptiste Daroussin     "                for (i = yym; i > 0; i--)",
9800c8de5b0SBaptiste Daroussin     "                {",
9810c8de5b0SBaptiste Daroussin     "                    if (i != yym) fputs(\", \", stderr);",
9820c8de5b0SBaptiste Daroussin     "                    fputs(YYSTYPE_TOSTRING(yystos[yystack.s_mark[1-i]],",
9830c8de5b0SBaptiste Daroussin     "                                           yystack.l_mark[1-i]), stderr);",
9840c8de5b0SBaptiste Daroussin     "                }",
9850c8de5b0SBaptiste Daroussin     "                fputc('>', stderr);",
9860c8de5b0SBaptiste Daroussin     "            }",
9870c8de5b0SBaptiste Daroussin     "#endif",
9880c8de5b0SBaptiste Daroussin     "        fputc('\\n', stderr);",
9890c8de5b0SBaptiste Daroussin     "    }",
9900c8de5b0SBaptiste Daroussin     "#endif",
9910c8de5b0SBaptiste Daroussin     "    if (yym > 0)",
9920c8de5b0SBaptiste Daroussin     "        yyval = yystack.l_mark[1-yym];",
9930c8de5b0SBaptiste Daroussin     "    else",
9940c8de5b0SBaptiste Daroussin     "        memset(&yyval, 0, sizeof yyval);",
9950c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
9960c8de5b0SBaptiste Daroussin     "",
9970c8de5b0SBaptiste Daroussin     "    /* Perform position reduction */",
9980c8de5b0SBaptiste Daroussin     "    memset(&yyloc, 0, sizeof(yyloc));",
9990c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
10000c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
10010c8de5b0SBaptiste Daroussin     "    if (!yytrial)",
10020c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
10030c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
10040c8de5b0SBaptiste Daroussin     "    {",
1005b53bb29fSJung-uk Kim     "        YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);",
10060c8de5b0SBaptiste Daroussin     "        /* just in case YYERROR is invoked within the action, save",
10070c8de5b0SBaptiste Daroussin     "           the start of the rhs as the error start position */",
1008b53bb29fSJung-uk Kim     "        yyerror_loc_range[1] = yystack.p_mark[1-yym];",
10090c8de5b0SBaptiste Daroussin     "    }",
10100c8de5b0SBaptiste Daroussin     "#endif",
10110c8de5b0SBaptiste Daroussin     "",
10120c8de5b0SBaptiste Daroussin     "    switch (yyn)",
10130c8de5b0SBaptiste Daroussin     "    {",
10140c8de5b0SBaptiste Daroussin     0
10150c8de5b0SBaptiste Daroussin };
10160c8de5b0SBaptiste Daroussin 
10170c8de5b0SBaptiste Daroussin const char *const trailer[] =
10180c8de5b0SBaptiste Daroussin {
10190c8de5b0SBaptiste Daroussin     "    default:",
10200c8de5b0SBaptiste Daroussin     "        break;",
10210c8de5b0SBaptiste Daroussin     "    }",
10220c8de5b0SBaptiste Daroussin     "    yystack.s_mark -= yym;",
10230c8de5b0SBaptiste Daroussin     "    yystate = *yystack.s_mark;",
10240c8de5b0SBaptiste Daroussin     "    yystack.l_mark -= yym;",
10250c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
10260c8de5b0SBaptiste Daroussin     "    yystack.p_mark -= yym;",
10270c8de5b0SBaptiste Daroussin     "#endif",
10280c8de5b0SBaptiste Daroussin     "    yym = yylhs[yyn];",
10290c8de5b0SBaptiste Daroussin     "    if (yystate == 0 && yym == 0)",
10300c8de5b0SBaptiste Daroussin     "    {",
10310c8de5b0SBaptiste Daroussin     "#if YYDEBUG",
10320c8de5b0SBaptiste Daroussin     "        if (yydebug)",
10330c8de5b0SBaptiste Daroussin     "        {",
10340c8de5b0SBaptiste Daroussin     "            fprintf(stderr, \"%s[%d]: after reduction, \", YYDEBUGSTR, yydepth);",
10350c8de5b0SBaptiste Daroussin     "#ifdef YYSTYPE_TOSTRING",
10360c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
10370c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
10380c8de5b0SBaptiste Daroussin     "            if (!yytrial)",
10390c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
10400c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
10410c8de5b0SBaptiste Daroussin     "                fprintf(stderr, \"result is <%s>, \", YYSTYPE_TOSTRING(yystos[YYFINAL], yyval));",
10420c8de5b0SBaptiste Daroussin     "#endif",
10430c8de5b0SBaptiste Daroussin     "            fprintf(stderr, \"shifting from state 0 to final state %d\\n\", YYFINAL);",
10440c8de5b0SBaptiste Daroussin     "        }",
10450c8de5b0SBaptiste Daroussin     "#endif",
10460c8de5b0SBaptiste Daroussin     "        yystate = YYFINAL;",
10470c8de5b0SBaptiste Daroussin     "        *++yystack.s_mark = YYFINAL;",
10480c8de5b0SBaptiste Daroussin     "        *++yystack.l_mark = yyval;",
10490c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
10500c8de5b0SBaptiste Daroussin     "        *++yystack.p_mark = yyloc;",
10510c8de5b0SBaptiste Daroussin     "#endif",
10520c8de5b0SBaptiste Daroussin     "        if (yychar < 0)",
10530c8de5b0SBaptiste Daroussin     "        {",
10540c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
10550c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
10560c8de5b0SBaptiste Daroussin     "            do {",
10570c8de5b0SBaptiste Daroussin     "            if (yylvp < yylve)",
10580c8de5b0SBaptiste Daroussin     "            {",
10590c8de5b0SBaptiste Daroussin     "                /* we're currently re-reading tokens */",
10600c8de5b0SBaptiste Daroussin     "                yylval = *yylvp++;",
10610c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
10620c8de5b0SBaptiste Daroussin     "                yylloc = *yylpp++;",
10630c8de5b0SBaptiste Daroussin     "#endif",
10640c8de5b0SBaptiste Daroussin     "                yychar = *yylexp++;",
10650c8de5b0SBaptiste Daroussin     "                break;",
10660c8de5b0SBaptiste Daroussin     "            }",
10670c8de5b0SBaptiste Daroussin     "            if (yyps->save)",
10680c8de5b0SBaptiste Daroussin     "            {",
10690c8de5b0SBaptiste Daroussin     "                /* in trial mode; save scanner results for future parse attempts */",
10700c8de5b0SBaptiste Daroussin     "                if (yylvp == yylvlim)",
10710c8de5b0SBaptiste Daroussin     "                {   /* Enlarge lexical value queue */",
107211fce282SBaptiste Daroussin     "                    size_t p = (size_t) (yylvp - yylvals);",
107311fce282SBaptiste Daroussin     "                    size_t s = (size_t) (yylvlim - yylvals);",
10740c8de5b0SBaptiste Daroussin     "",
10750c8de5b0SBaptiste Daroussin     "                    s += YYLVQUEUEGROWTH;",
1076b53bb29fSJung-uk Kim     "                    if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)",
10770c8de5b0SBaptiste Daroussin     "                        goto yyenomem;",
1078b53bb29fSJung-uk Kim     "                    if ((yylvals   = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)",
10790c8de5b0SBaptiste Daroussin     "                        goto yyenomem;",
10800c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
1081b53bb29fSJung-uk Kim     "                    if ((yylpsns   = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)",
10820c8de5b0SBaptiste Daroussin     "                        goto yyenomem;",
10830c8de5b0SBaptiste Daroussin     "#endif",
10840c8de5b0SBaptiste Daroussin     "                    yylvp   = yylve = yylvals + p;",
10850c8de5b0SBaptiste Daroussin     "                    yylvlim = yylvals + s;",
10860c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
10870c8de5b0SBaptiste Daroussin     "                    yylpp   = yylpe = yylpsns + p;",
10880c8de5b0SBaptiste Daroussin     "                    yylplim = yylpsns + s;",
10890c8de5b0SBaptiste Daroussin     "#endif",
10900c8de5b0SBaptiste Daroussin     "                    yylexp  = yylexemes + p;",
10910c8de5b0SBaptiste Daroussin     "                }",
10922aca18c7SJung-uk Kim     "                *yylexp = (YYINT) YYLEX;",
10930c8de5b0SBaptiste Daroussin     "                *yylvp++ = yylval;",
10940c8de5b0SBaptiste Daroussin     "                yylve++;",
10950c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
10960c8de5b0SBaptiste Daroussin     "                *yylpp++ = yylloc;",
10970c8de5b0SBaptiste Daroussin     "                yylpe++;",
10980c8de5b0SBaptiste Daroussin     "#endif",
10990c8de5b0SBaptiste Daroussin     "                yychar = *yylexp++;",
11000c8de5b0SBaptiste Daroussin     "                break;",
11010c8de5b0SBaptiste Daroussin     "            }",
11020c8de5b0SBaptiste Daroussin     "            /* normal operation, no conflict encountered */",
11030c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
11040c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
11050c8de5b0SBaptiste Daroussin     "            yychar = YYLEX;",
11060c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
11070c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
11080c8de5b0SBaptiste Daroussin     "            } while (0);",
11090c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
11100c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
11110c8de5b0SBaptiste Daroussin     "            if (yychar < 0) yychar = YYEOF;",
11120c8de5b0SBaptiste Daroussin     "#if YYDEBUG",
11130c8de5b0SBaptiste Daroussin     "            if (yydebug)",
11140c8de5b0SBaptiste Daroussin     "            {",
1115c5b5d71aSJung-uk Kim     "                if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];",
1116c5b5d71aSJung-uk Kim     "                fprintf(stderr, \"%s[%d]: state %d, reading token %d (%s)\\n\",",
11170c8de5b0SBaptiste Daroussin     "                                YYDEBUGSTR, yydepth, YYFINAL, yychar, yys);",
11180c8de5b0SBaptiste Daroussin     "            }",
11190c8de5b0SBaptiste Daroussin     "#endif",
11200c8de5b0SBaptiste Daroussin     "        }",
11210c8de5b0SBaptiste Daroussin     "        if (yychar == YYEOF) goto yyaccept;",
11220c8de5b0SBaptiste Daroussin     "        goto yyloop;",
11230c8de5b0SBaptiste Daroussin     "    }",
11240c8de5b0SBaptiste Daroussin     "    if (((yyn = yygindex[yym]) != 0) && (yyn += yystate) >= 0 &&",
11250c8de5b0SBaptiste Daroussin     "            yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yystate)",
11260c8de5b0SBaptiste Daroussin     "        yystate = yytable[yyn];",
11270c8de5b0SBaptiste Daroussin     "    else",
11280c8de5b0SBaptiste Daroussin     "        yystate = yydgoto[yym];",
11290c8de5b0SBaptiste Daroussin     "#if YYDEBUG",
11300c8de5b0SBaptiste Daroussin     "    if (yydebug)",
11310c8de5b0SBaptiste Daroussin     "    {",
11320c8de5b0SBaptiste Daroussin     "        fprintf(stderr, \"%s[%d]: after reduction, \", YYDEBUGSTR, yydepth);",
11330c8de5b0SBaptiste Daroussin     "#ifdef YYSTYPE_TOSTRING",
11340c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
11350c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
11360c8de5b0SBaptiste Daroussin     "        if (!yytrial)",
11370c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
11380c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
11390c8de5b0SBaptiste Daroussin     "            fprintf(stderr, \"result is <%s>, \", YYSTYPE_TOSTRING(yystos[yystate], yyval));",
11400c8de5b0SBaptiste Daroussin     "#endif",
11410c8de5b0SBaptiste Daroussin     "        fprintf(stderr, \"shifting from state %d to state %d\\n\", *yystack.s_mark, yystate);",
11420c8de5b0SBaptiste Daroussin     "    }",
11430c8de5b0SBaptiste Daroussin     "#endif",
11440c8de5b0SBaptiste Daroussin     "    if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;",
1145c5b5d71aSJung-uk Kim     "    *++yystack.s_mark = (YYINT) yystate;",
11460c8de5b0SBaptiste Daroussin     "    *++yystack.l_mark = yyval;",
11470c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
11480c8de5b0SBaptiste Daroussin     "    *++yystack.p_mark = yyloc;",
11490c8de5b0SBaptiste Daroussin     "#endif",
11500c8de5b0SBaptiste Daroussin     "    goto yyloop;",
11510c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
11520c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
11530c8de5b0SBaptiste Daroussin     "",
11540c8de5b0SBaptiste Daroussin     "    /* Reduction declares that this path is valid. Set yypath and do a full parse */",
11550c8de5b0SBaptiste Daroussin     "yyvalid:",
11560c8de5b0SBaptiste Daroussin     "    if (yypath) YYABORT;",
11570c8de5b0SBaptiste Daroussin     "    while (yyps->save)",
11580c8de5b0SBaptiste Daroussin     "    {",
11590c8de5b0SBaptiste Daroussin     "        YYParseState *save = yyps->save;",
11600c8de5b0SBaptiste Daroussin     "        yyps->save = save->save;",
11610c8de5b0SBaptiste Daroussin     "        save->save = yypath;",
11620c8de5b0SBaptiste Daroussin     "        yypath = save;",
11630c8de5b0SBaptiste Daroussin     "    }",
11640c8de5b0SBaptiste Daroussin     "#if YYDEBUG",
11650c8de5b0SBaptiste Daroussin     "    if (yydebug)",
11660c8de5b0SBaptiste Daroussin     "        fprintf(stderr, \"%s[%d]: state %d, CONFLICT trial successful, backtracking to state %d, %d tokens\\n\",",
11670c8de5b0SBaptiste Daroussin     "                        YYDEBUGSTR, yydepth, yystate, yypath->state, (int)(yylvp - yylvals - yypath->lexeme));",
11680c8de5b0SBaptiste Daroussin     "#endif",
11690c8de5b0SBaptiste Daroussin     "    if (yyerrctx)",
11700c8de5b0SBaptiste Daroussin     "    {",
11710c8de5b0SBaptiste Daroussin     "        yyFreeState(yyerrctx);",
11720c8de5b0SBaptiste Daroussin     "        yyerrctx = NULL;",
11730c8de5b0SBaptiste Daroussin     "    }",
11740c8de5b0SBaptiste Daroussin     "    yylvp          = yylvals + yypath->lexeme;",
11750c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
11760c8de5b0SBaptiste Daroussin     "    yylpp          = yylpsns + yypath->lexeme;",
11770c8de5b0SBaptiste Daroussin     "#endif",
11780c8de5b0SBaptiste Daroussin     "    yylexp         = yylexemes + yypath->lexeme;",
11790c8de5b0SBaptiste Daroussin     "    yychar         = YYEMPTY;",
11800c8de5b0SBaptiste Daroussin     "    yystack.s_mark = yystack.s_base + (yypath->yystack.s_mark - yypath->yystack.s_base);",
1181c5b5d71aSJung-uk Kim     "    memcpy (yystack.s_base, yypath->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));",
11820c8de5b0SBaptiste Daroussin     "    yystack.l_mark = yystack.l_base + (yypath->yystack.l_mark - yypath->yystack.l_base);",
118311fce282SBaptiste Daroussin     "    memcpy (yystack.l_base, yypath->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));",
11840c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
11850c8de5b0SBaptiste Daroussin     "    yystack.p_mark = yystack.p_base + (yypath->yystack.p_mark - yypath->yystack.p_base);",
118611fce282SBaptiste Daroussin     "    memcpy (yystack.p_base, yypath->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));",
11870c8de5b0SBaptiste Daroussin     "#endif",
11880c8de5b0SBaptiste Daroussin     "    yystate        = yypath->state;",
11890c8de5b0SBaptiste Daroussin     "    goto yyloop;",
11900c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
11910c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
11920c8de5b0SBaptiste Daroussin     "",
11930c8de5b0SBaptiste Daroussin     "yyoverflow:",
11940c8de5b0SBaptiste Daroussin     "    YYERROR_CALL(\"yacc stack overflow\");",
11950c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
11960c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
11970c8de5b0SBaptiste Daroussin     "    goto yyabort_nomem;",
11980c8de5b0SBaptiste Daroussin     "yyenomem:",
11990c8de5b0SBaptiste Daroussin     "    YYERROR_CALL(\"memory exhausted\");",
12000c8de5b0SBaptiste Daroussin     "yyabort_nomem:",
12010c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
12020c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
12030c8de5b0SBaptiste Daroussin     "    yyresult = 2;",
12040c8de5b0SBaptiste Daroussin     "    goto yyreturn;",
12050c8de5b0SBaptiste Daroussin     "",
12060c8de5b0SBaptiste Daroussin     "yyabort:",
12070c8de5b0SBaptiste Daroussin     "    yyresult = 1;",
12080c8de5b0SBaptiste Daroussin     "    goto yyreturn;",
12090c8de5b0SBaptiste Daroussin     "",
12100c8de5b0SBaptiste Daroussin     "yyaccept:",
12110c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
12120c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
12130c8de5b0SBaptiste Daroussin     "    if (yyps->save) goto yyvalid;",
12140c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
12150c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
12160c8de5b0SBaptiste Daroussin     "    yyresult = 0;",
12170c8de5b0SBaptiste Daroussin     "",
12180c8de5b0SBaptiste Daroussin     "yyreturn:",
12190c8de5b0SBaptiste Daroussin     "#if defined(YYDESTRUCT_CALL)",
12200c8de5b0SBaptiste Daroussin     "    if (yychar != YYEOF && yychar != YYEMPTY)",
12210c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
12220c8de5b0SBaptiste Daroussin     "        YYDESTRUCT_CALL(\"cleanup: discarding token\", yychar, &yylval, &yylloc);",
12230c8de5b0SBaptiste Daroussin     "#else",
12240c8de5b0SBaptiste Daroussin     "        YYDESTRUCT_CALL(\"cleanup: discarding token\", yychar, &yylval);",
12250c8de5b0SBaptiste Daroussin     "#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */",
12260c8de5b0SBaptiste Daroussin     "",
12270c8de5b0SBaptiste Daroussin     "    {",
12280c8de5b0SBaptiste Daroussin     "        YYSTYPE *pv;",
12290c8de5b0SBaptiste Daroussin     "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
12300c8de5b0SBaptiste Daroussin     "        YYLTYPE *pp;",
12310c8de5b0SBaptiste Daroussin     "",
12320c8de5b0SBaptiste Daroussin     "        for (pv = yystack.l_base, pp = yystack.p_base; pv <= yystack.l_mark; ++pv, ++pp)",
12330c8de5b0SBaptiste Daroussin     "             YYDESTRUCT_CALL(\"cleanup: discarding state\",",
12340c8de5b0SBaptiste Daroussin     "                             yystos[*(yystack.s_base + (pv - yystack.l_base))], pv, pp);",
12350c8de5b0SBaptiste Daroussin     "#else",
12360c8de5b0SBaptiste Daroussin     "        for (pv = yystack.l_base; pv <= yystack.l_mark; ++pv)",
12370c8de5b0SBaptiste Daroussin     "             YYDESTRUCT_CALL(\"cleanup: discarding state\",",
12380c8de5b0SBaptiste Daroussin     "                             yystos[*(yystack.s_base + (pv - yystack.l_base))], pv);",
12390c8de5b0SBaptiste Daroussin     "#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */",
12400c8de5b0SBaptiste Daroussin     "    }",
12410c8de5b0SBaptiste Daroussin     "#endif /* defined(YYDESTRUCT_CALL) */",
12420c8de5b0SBaptiste Daroussin     "",
12430c8de5b0SBaptiste Daroussin #if defined(YYBTYACC)
12440c8de5b0SBaptiste Daroussin     "#if YYBTYACC",
12450c8de5b0SBaptiste Daroussin     "    if (yyerrctx)",
12460c8de5b0SBaptiste Daroussin     "    {",
12470c8de5b0SBaptiste Daroussin     "        yyFreeState(yyerrctx);",
12480c8de5b0SBaptiste Daroussin     "        yyerrctx = NULL;",
12490c8de5b0SBaptiste Daroussin     "    }",
12500c8de5b0SBaptiste Daroussin     "    while (yyps)",
12510c8de5b0SBaptiste Daroussin     "    {",
12520c8de5b0SBaptiste Daroussin     "        YYParseState *save = yyps;",
12530c8de5b0SBaptiste Daroussin     "        yyps = save->save;",
12540c8de5b0SBaptiste Daroussin     "        save->save = NULL;",
12550c8de5b0SBaptiste Daroussin     "        yyFreeState(save);",
12560c8de5b0SBaptiste Daroussin     "    }",
12570c8de5b0SBaptiste Daroussin     "    while (yypath)",
12580c8de5b0SBaptiste Daroussin     "    {",
12590c8de5b0SBaptiste Daroussin     "        YYParseState *save = yypath;",
12600c8de5b0SBaptiste Daroussin     "        yypath = save->save;",
12610c8de5b0SBaptiste Daroussin     "        save->save = NULL;",
12620c8de5b0SBaptiste Daroussin     "        yyFreeState(save);",
12630c8de5b0SBaptiste Daroussin     "    }",
12640c8de5b0SBaptiste Daroussin     "#endif /* YYBTYACC */",
12650c8de5b0SBaptiste Daroussin #endif			/* defined(YYBTYACC) */
12660c8de5b0SBaptiste Daroussin     "    yyfreestack(&yystack);",
12670c8de5b0SBaptiste Daroussin     "    return (yyresult);",
12680c8de5b0SBaptiste Daroussin     "}",
12690c8de5b0SBaptiste Daroussin     0
12700c8de5b0SBaptiste Daroussin };
12710c8de5b0SBaptiste Daroussin 
12720c8de5b0SBaptiste Daroussin void
write_section(FILE * fp,const char * const section[])12730c8de5b0SBaptiste Daroussin write_section(FILE * fp, const char *const section[])
12740c8de5b0SBaptiste Daroussin {
12750c8de5b0SBaptiste Daroussin     int i;
12760c8de5b0SBaptiste Daroussin     const char *s;
12770c8de5b0SBaptiste Daroussin 
12780c8de5b0SBaptiste Daroussin     for (i = 0; (s = section[i]) != 0; ++i)
12790c8de5b0SBaptiste Daroussin     {
12800c8de5b0SBaptiste Daroussin 	if (fp == code_file)
12810c8de5b0SBaptiste Daroussin 	    ++outline;
12820c8de5b0SBaptiste Daroussin 	fprintf(fp, "%s\n", s);
12830c8de5b0SBaptiste Daroussin     }
12840c8de5b0SBaptiste Daroussin }
1285