xref: /freebsd/contrib/byacc/yaccpar.skel (revision 8e022d3cdea10ee1039a632f670c27fd93f65625)
1*8e022d3cSDag-Erling Smørgrav/* $Id: yaccpar.skel,v 1.12 2021/08/08 19:55:43 tom Exp $ */
20c8de5b0SBaptiste Daroussin
30c8de5b0SBaptiste Daroussin#include "defs.h"
40c8de5b0SBaptiste Daroussin
50c8de5b0SBaptiste Daroussin/*  If the skeleton is changed, the banner should be changed so that	*/
60c8de5b0SBaptiste Daroussin/*  the altered version can be easily distinguished from the original.	*/
70c8de5b0SBaptiste Daroussin/*									*/
80c8de5b0SBaptiste Daroussin/*  The #defines included with the banner are there because they are	*/
90c8de5b0SBaptiste Daroussin/*  useful in subsequent code.  The macros #defined in the header or	*/
100c8de5b0SBaptiste Daroussin/*  the body either are not useful outside of semantic actions or	*/
110c8de5b0SBaptiste Daroussin/*  are conditional.							*/
120c8de5b0SBaptiste Daroussin
130c8de5b0SBaptiste Daroussin%% banner
140c8de5b0SBaptiste Daroussin/* original parser id follows */
150c8de5b0SBaptiste Daroussin/* yysccsid[] = "@(#)yaccpar	1.9 (Berkeley) 02/21/93" */
160c8de5b0SBaptiste Daroussin/* (use YYMAJOR/YYMINOR for ifdefs dependent on parser version) */
170c8de5b0SBaptiste Daroussin
180c8de5b0SBaptiste Daroussin#define YYBYACC 1
190c8de5b0SBaptiste Daroussin%% insert VERSION here
200c8de5b0SBaptiste Daroussin
210c8de5b0SBaptiste Daroussin#define YYEMPTY        (-1)
220c8de5b0SBaptiste Daroussin#define yyclearin      (yychar = YYEMPTY)
230c8de5b0SBaptiste Daroussin#define yyerrok        (yyerrflag = 0)
240c8de5b0SBaptiste Daroussin#define YYRECOVERING() (yyerrflag != 0)
250c8de5b0SBaptiste Daroussin#define YYENOMEM       (-2)
260c8de5b0SBaptiste Daroussin#define YYEOF          0
270c8de5b0SBaptiste Daroussin%% xdecls
280c8de5b0SBaptiste Daroussin
290c8de5b0SBaptiste Daroussinextern int YYPARSE_DECL();
300c8de5b0SBaptiste Daroussin%% tables
310c8de5b0SBaptiste Daroussinextern YYINT yylhs[];
320c8de5b0SBaptiste Daroussinextern YYINT yylen[];
330c8de5b0SBaptiste Daroussinextern YYINT yydefred[];
340c8de5b0SBaptiste Daroussinextern YYINT yydgoto[];
350c8de5b0SBaptiste Daroussinextern YYINT yysindex[];
360c8de5b0SBaptiste Daroussinextern YYINT yyrindex[];
370c8de5b0SBaptiste Daroussinextern YYINT yygindex[];
380c8de5b0SBaptiste Daroussinextern YYINT yytable[];
390c8de5b0SBaptiste Daroussinextern YYINT yycheck[];
400c8de5b0SBaptiste Daroussin
41c5b5d71aSJung-uk Kim#if YYDEBUG || defined(yytname)
420c8de5b0SBaptiste Daroussinextern char *yyname[];
43c5b5d71aSJung-uk Kim#endif
44c5b5d71aSJung-uk Kim#if YYDEBUG
450c8de5b0SBaptiste Daroussinextern char *yyrule[];
460c8de5b0SBaptiste Daroussin#endif
470c8de5b0SBaptiste Daroussin%% global_vars
480c8de5b0SBaptiste Daroussin
49b53bb29fSJung-uk Kim#if YYDEBUG
500c8de5b0SBaptiste Daroussinint      yydebug;
51b53bb29fSJung-uk Kim#endif
520c8de5b0SBaptiste Daroussin%% impure_vars
530c8de5b0SBaptiste Daroussin
540c8de5b0SBaptiste Daroussinint      yyerrflag;
550c8de5b0SBaptiste Daroussinint      yychar;
560c8de5b0SBaptiste DaroussinYYSTYPE  yyval;
570c8de5b0SBaptiste DaroussinYYSTYPE  yylval;
58b53bb29fSJung-uk Kimint      yynerrs;
590c8de5b0SBaptiste Daroussin%% hdr_defs
600c8de5b0SBaptiste Daroussin
610c8de5b0SBaptiste Daroussin/* define the initial stack-sizes */
620c8de5b0SBaptiste Daroussin#ifdef YYSTACKSIZE
630c8de5b0SBaptiste Daroussin#undef YYMAXDEPTH
640c8de5b0SBaptiste Daroussin#define YYMAXDEPTH  YYSTACKSIZE
650c8de5b0SBaptiste Daroussin#else
660c8de5b0SBaptiste Daroussin#ifdef YYMAXDEPTH
670c8de5b0SBaptiste Daroussin#define YYSTACKSIZE YYMAXDEPTH
680c8de5b0SBaptiste Daroussin#else
690c8de5b0SBaptiste Daroussin#define YYSTACKSIZE 10000
700c8de5b0SBaptiste Daroussin#define YYMAXDEPTH  10000
710c8de5b0SBaptiste Daroussin#endif
720c8de5b0SBaptiste Daroussin#endif
730c8de5b0SBaptiste Daroussin
740c8de5b0SBaptiste Daroussin#define YYINITSTACKSIZE 200
750c8de5b0SBaptiste Daroussin
760c8de5b0SBaptiste Daroussintypedef struct {
770c8de5b0SBaptiste Daroussin    unsigned stacksize;
780c8de5b0SBaptiste Daroussin    YYINT    *s_base;
790c8de5b0SBaptiste Daroussin    YYINT    *s_mark;
800c8de5b0SBaptiste Daroussin    YYINT    *s_last;
810c8de5b0SBaptiste Daroussin    YYSTYPE  *l_base;
820c8de5b0SBaptiste Daroussin    YYSTYPE  *l_mark;
830c8de5b0SBaptiste Daroussin} YYSTACKDATA;
840c8de5b0SBaptiste Daroussin%% hdr_vars
850c8de5b0SBaptiste Daroussin/* variables for the parser stack */
860c8de5b0SBaptiste Daroussinstatic YYSTACKDATA yystack;
870c8de5b0SBaptiste Daroussin%% body_vars
880c8de5b0SBaptiste Daroussin    int      yyerrflag;
890c8de5b0SBaptiste Daroussin    int      yychar;
900c8de5b0SBaptiste Daroussin    YYSTYPE  yyval;
910c8de5b0SBaptiste Daroussin    YYSTYPE  yylval;
92b53bb29fSJung-uk Kim    int      yynerrs;
930c8de5b0SBaptiste Daroussin
940c8de5b0SBaptiste Daroussin    /* variables for the parser stack */
950c8de5b0SBaptiste Daroussin    YYSTACKDATA yystack;
960c8de5b0SBaptiste Daroussin%% body_1
970c8de5b0SBaptiste Daroussin
980c8de5b0SBaptiste Daroussin#if YYDEBUG
990c8de5b0SBaptiste Daroussin#include <stdio.h>	/* needed for printf */
1000c8de5b0SBaptiste Daroussin#endif
1010c8de5b0SBaptiste Daroussin
1020c8de5b0SBaptiste Daroussin#include <stdlib.h>	/* needed for malloc, etc */
1030c8de5b0SBaptiste Daroussin#include <string.h>	/* needed for memset */
1040c8de5b0SBaptiste Daroussin
1050c8de5b0SBaptiste Daroussin/* allocate initial stack or double stack size, up to YYMAXDEPTH */
1060c8de5b0SBaptiste Daroussinstatic int yygrowstack(YYSTACKDATA *data)
1070c8de5b0SBaptiste Daroussin{
1080c8de5b0SBaptiste Daroussin    int i;
1090c8de5b0SBaptiste Daroussin    unsigned newsize;
1100c8de5b0SBaptiste Daroussin    YYINT *newss;
1110c8de5b0SBaptiste Daroussin    YYSTYPE *newvs;
1120c8de5b0SBaptiste Daroussin
1130c8de5b0SBaptiste Daroussin    if ((newsize = data->stacksize) == 0)
1140c8de5b0SBaptiste Daroussin        newsize = YYINITSTACKSIZE;
1150c8de5b0SBaptiste Daroussin    else if (newsize >= YYMAXDEPTH)
1160c8de5b0SBaptiste Daroussin        return YYENOMEM;
1170c8de5b0SBaptiste Daroussin    else if ((newsize *= 2) > YYMAXDEPTH)
1180c8de5b0SBaptiste Daroussin        newsize = YYMAXDEPTH;
1190c8de5b0SBaptiste Daroussin
1200c8de5b0SBaptiste Daroussin    i = (int) (data->s_mark - data->s_base);
1210c8de5b0SBaptiste Daroussin    newss = (YYINT *)realloc(data->s_base, newsize * sizeof(*newss));
12280f31432SJung-uk Kim    if (newss == NULL)
1230c8de5b0SBaptiste Daroussin        return YYENOMEM;
1240c8de5b0SBaptiste Daroussin
1250c8de5b0SBaptiste Daroussin    data->s_base = newss;
1260c8de5b0SBaptiste Daroussin    data->s_mark = newss + i;
1270c8de5b0SBaptiste Daroussin
1280c8de5b0SBaptiste Daroussin    newvs = (YYSTYPE *)realloc(data->l_base, newsize * sizeof(*newvs));
12980f31432SJung-uk Kim    if (newvs == NULL)
1300c8de5b0SBaptiste Daroussin        return YYENOMEM;
1310c8de5b0SBaptiste Daroussin
1320c8de5b0SBaptiste Daroussin    data->l_base = newvs;
1330c8de5b0SBaptiste Daroussin    data->l_mark = newvs + i;
1340c8de5b0SBaptiste Daroussin
1350c8de5b0SBaptiste Daroussin    data->stacksize = newsize;
1360c8de5b0SBaptiste Daroussin    data->s_last = data->s_base + newsize - 1;
1370c8de5b0SBaptiste Daroussin    return 0;
1380c8de5b0SBaptiste Daroussin}
1390c8de5b0SBaptiste Daroussin
1400c8de5b0SBaptiste Daroussin#if YYPURE || defined(YY_NO_LEAKS)
1410c8de5b0SBaptiste Daroussinstatic void yyfreestack(YYSTACKDATA *data)
1420c8de5b0SBaptiste Daroussin{
1430c8de5b0SBaptiste Daroussin    free(data->s_base);
1440c8de5b0SBaptiste Daroussin    free(data->l_base);
1450c8de5b0SBaptiste Daroussin    memset(data, 0, sizeof(*data));
1460c8de5b0SBaptiste Daroussin}
1470c8de5b0SBaptiste Daroussin#else
1480c8de5b0SBaptiste Daroussin#define yyfreestack(data) /* nothing */
1490c8de5b0SBaptiste Daroussin#endif
1500c8de5b0SBaptiste Daroussin
1510c8de5b0SBaptiste Daroussin#define YYABORT  goto yyabort
1520c8de5b0SBaptiste Daroussin#define YYREJECT goto yyabort
1530c8de5b0SBaptiste Daroussin#define YYACCEPT goto yyaccept
1540c8de5b0SBaptiste Daroussin#define YYERROR  goto yyerrlab
1550c8de5b0SBaptiste Daroussin
1560c8de5b0SBaptiste Daroussinint
1570c8de5b0SBaptiste DaroussinYYPARSE_DECL()
1580c8de5b0SBaptiste Daroussin{
1590c8de5b0SBaptiste Daroussin%% body_2
1600c8de5b0SBaptiste Daroussin    int yym, yyn, yystate;
1610c8de5b0SBaptiste Daroussin#if YYDEBUG
1620c8de5b0SBaptiste Daroussin    const char *yys;
1630c8de5b0SBaptiste Daroussin
16480f31432SJung-uk Kim    if ((yys = getenv("YYDEBUG")) != NULL)
1650c8de5b0SBaptiste Daroussin    {
1660c8de5b0SBaptiste Daroussin        yyn = *yys;
1670c8de5b0SBaptiste Daroussin        if (yyn >= '0' && yyn <= '9')
1680c8de5b0SBaptiste Daroussin            yydebug = yyn - '0';
1690c8de5b0SBaptiste Daroussin    }
1700c8de5b0SBaptiste Daroussin#endif
1710c8de5b0SBaptiste Daroussin
1726166fdceSJung-uk Kim%% init_vars
1736166fdceSJung-uk Kim    memset(&yyval,  0, sizeof(yyval));
1746166fdceSJung-uk Kim    memset(&yylval, 0, sizeof(yylval));
1756166fdceSJung-uk Kim
1762aca18c7SJung-uk Kim%% body_3
177*8e022d3cSDag-Erling Smørgrav    /* yym is set below */
178*8e022d3cSDag-Erling Smørgrav    /* yyn is set below */
1790c8de5b0SBaptiste Daroussin    yynerrs = 0;
1800c8de5b0SBaptiste Daroussin    yyerrflag = 0;
1810c8de5b0SBaptiste Daroussin    yychar = YYEMPTY;
1820c8de5b0SBaptiste Daroussin    yystate = 0;
1830c8de5b0SBaptiste Daroussin
1840c8de5b0SBaptiste Daroussin#if YYPURE
1850c8de5b0SBaptiste Daroussin    memset(&yystack, 0, sizeof(yystack));
1860c8de5b0SBaptiste Daroussin#endif
1870c8de5b0SBaptiste Daroussin
1880c8de5b0SBaptiste Daroussin    if (yystack.s_base == NULL && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
1890c8de5b0SBaptiste Daroussin    yystack.s_mark = yystack.s_base;
1900c8de5b0SBaptiste Daroussin    yystack.l_mark = yystack.l_base;
1910c8de5b0SBaptiste Daroussin    yystate = 0;
1920c8de5b0SBaptiste Daroussin    *yystack.s_mark = 0;
1930c8de5b0SBaptiste Daroussin
1940c8de5b0SBaptiste Daroussinyyloop:
1950c8de5b0SBaptiste Daroussin    if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
1960c8de5b0SBaptiste Daroussin    if (yychar < 0)
1970c8de5b0SBaptiste Daroussin    {
198c5b5d71aSJung-uk Kim        yychar = YYLEX;
199c5b5d71aSJung-uk Kim        if (yychar < 0) yychar = YYEOF;
2000c8de5b0SBaptiste Daroussin#if YYDEBUG
2010c8de5b0SBaptiste Daroussin        if (yydebug)
2020c8de5b0SBaptiste Daroussin        {
203c5b5d71aSJung-uk Kim            if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
2040c8de5b0SBaptiste Daroussin            printf("%sdebug: state %d, reading %d (%s)\n",
2050c8de5b0SBaptiste Daroussin                    YYPREFIX, yystate, yychar, yys);
2060c8de5b0SBaptiste Daroussin        }
2070c8de5b0SBaptiste Daroussin#endif
2080c8de5b0SBaptiste Daroussin    }
209c5b5d71aSJung-uk Kim    if (((yyn = yysindex[yystate]) != 0) && (yyn += yychar) >= 0 &&
210c5b5d71aSJung-uk Kim            yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)
2110c8de5b0SBaptiste Daroussin    {
2120c8de5b0SBaptiste Daroussin#if YYDEBUG
2130c8de5b0SBaptiste Daroussin        if (yydebug)
2140c8de5b0SBaptiste Daroussin            printf("%sdebug: state %d, shifting to state %d\n",
2150c8de5b0SBaptiste Daroussin                    YYPREFIX, yystate, yytable[yyn]);
2160c8de5b0SBaptiste Daroussin#endif
217c5b5d71aSJung-uk Kim        if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
2180c8de5b0SBaptiste Daroussin        yystate = yytable[yyn];
2190c8de5b0SBaptiste Daroussin        *++yystack.s_mark = yytable[yyn];
2200c8de5b0SBaptiste Daroussin        *++yystack.l_mark = yylval;
2210c8de5b0SBaptiste Daroussin        yychar = YYEMPTY;
2220c8de5b0SBaptiste Daroussin        if (yyerrflag > 0)  --yyerrflag;
2230c8de5b0SBaptiste Daroussin        goto yyloop;
2240c8de5b0SBaptiste Daroussin    }
225c5b5d71aSJung-uk Kim    if (((yyn = yyrindex[yystate]) != 0) && (yyn += yychar) >= 0 &&
226c5b5d71aSJung-uk Kim            yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)
2270c8de5b0SBaptiste Daroussin    {
2280c8de5b0SBaptiste Daroussin        yyn = yytable[yyn];
2290c8de5b0SBaptiste Daroussin        goto yyreduce;
2300c8de5b0SBaptiste Daroussin    }
231c5b5d71aSJung-uk Kim    if (yyerrflag != 0) goto yyinrecovery;
2320c8de5b0SBaptiste Daroussin
2330c8de5b0SBaptiste Daroussin    YYERROR_CALL("syntax error");
2340c8de5b0SBaptiste Daroussin
235c5b5d71aSJung-uk Kim    goto yyerrlab; /* redundant goto avoids 'unused label' warning */
2360c8de5b0SBaptiste Daroussinyyerrlab:
2370c8de5b0SBaptiste Daroussin    ++yynerrs;
2380c8de5b0SBaptiste Daroussin
2390c8de5b0SBaptiste Daroussinyyinrecovery:
2400c8de5b0SBaptiste Daroussin    if (yyerrflag < 3)
2410c8de5b0SBaptiste Daroussin    {
2420c8de5b0SBaptiste Daroussin        yyerrflag = 3;
2430c8de5b0SBaptiste Daroussin        for (;;)
2440c8de5b0SBaptiste Daroussin        {
245c5b5d71aSJung-uk Kim            if (((yyn = yysindex[*yystack.s_mark]) != 0) && (yyn += YYERRCODE) >= 0 &&
246c5b5d71aSJung-uk Kim                    yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) YYERRCODE)
2470c8de5b0SBaptiste Daroussin            {
2480c8de5b0SBaptiste Daroussin#if YYDEBUG
2490c8de5b0SBaptiste Daroussin                if (yydebug)
2500c8de5b0SBaptiste Daroussin                    printf("%sdebug: state %d, error recovery shifting\
2510c8de5b0SBaptiste Daroussin to state %d\n", YYPREFIX, *yystack.s_mark, yytable[yyn]);
2520c8de5b0SBaptiste Daroussin#endif
253c5b5d71aSJung-uk Kim                if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
2540c8de5b0SBaptiste Daroussin                yystate = yytable[yyn];
2550c8de5b0SBaptiste Daroussin                *++yystack.s_mark = yytable[yyn];
2560c8de5b0SBaptiste Daroussin                *++yystack.l_mark = yylval;
2570c8de5b0SBaptiste Daroussin                goto yyloop;
2580c8de5b0SBaptiste Daroussin            }
2590c8de5b0SBaptiste Daroussin            else
2600c8de5b0SBaptiste Daroussin            {
2610c8de5b0SBaptiste Daroussin#if YYDEBUG
2620c8de5b0SBaptiste Daroussin                if (yydebug)
2630c8de5b0SBaptiste Daroussin                    printf("%sdebug: error recovery discarding state %d\n",
2640c8de5b0SBaptiste Daroussin                            YYPREFIX, *yystack.s_mark);
2650c8de5b0SBaptiste Daroussin#endif
2660c8de5b0SBaptiste Daroussin                if (yystack.s_mark <= yystack.s_base) goto yyabort;
2670c8de5b0SBaptiste Daroussin                --yystack.s_mark;
2680c8de5b0SBaptiste Daroussin                --yystack.l_mark;
2690c8de5b0SBaptiste Daroussin            }
2700c8de5b0SBaptiste Daroussin        }
2710c8de5b0SBaptiste Daroussin    }
2720c8de5b0SBaptiste Daroussin    else
2730c8de5b0SBaptiste Daroussin    {
2740c8de5b0SBaptiste Daroussin        if (yychar == YYEOF) goto yyabort;
2750c8de5b0SBaptiste Daroussin#if YYDEBUG
2760c8de5b0SBaptiste Daroussin        if (yydebug)
2770c8de5b0SBaptiste Daroussin        {
278c5b5d71aSJung-uk Kim            if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
2790c8de5b0SBaptiste Daroussin            printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
2800c8de5b0SBaptiste Daroussin                    YYPREFIX, yystate, yychar, yys);
2810c8de5b0SBaptiste Daroussin        }
2820c8de5b0SBaptiste Daroussin#endif
2830c8de5b0SBaptiste Daroussin        yychar = YYEMPTY;
2840c8de5b0SBaptiste Daroussin        goto yyloop;
2850c8de5b0SBaptiste Daroussin    }
2860c8de5b0SBaptiste Daroussin
2870c8de5b0SBaptiste Daroussinyyreduce:
2880c8de5b0SBaptiste Daroussin#if YYDEBUG
2890c8de5b0SBaptiste Daroussin    if (yydebug)
2900c8de5b0SBaptiste Daroussin        printf("%sdebug: state %d, reducing by rule %d (%s)\n",
2910c8de5b0SBaptiste Daroussin                YYPREFIX, yystate, yyn, yyrule[yyn]);
2920c8de5b0SBaptiste Daroussin#endif
2930c8de5b0SBaptiste Daroussin    yym = yylen[yyn];
294c5b5d71aSJung-uk Kim    if (yym > 0)
2950c8de5b0SBaptiste Daroussin        yyval = yystack.l_mark[1-yym];
2960c8de5b0SBaptiste Daroussin    else
2970c8de5b0SBaptiste Daroussin        memset(&yyval, 0, sizeof yyval);
298c5b5d71aSJung-uk Kim
2990c8de5b0SBaptiste Daroussin    switch (yyn)
3000c8de5b0SBaptiste Daroussin    {
3010c8de5b0SBaptiste Daroussin%% trailer
3020c8de5b0SBaptiste Daroussin    }
3030c8de5b0SBaptiste Daroussin    yystack.s_mark -= yym;
3040c8de5b0SBaptiste Daroussin    yystate = *yystack.s_mark;
3050c8de5b0SBaptiste Daroussin    yystack.l_mark -= yym;
3060c8de5b0SBaptiste Daroussin    yym = yylhs[yyn];
3070c8de5b0SBaptiste Daroussin    if (yystate == 0 && yym == 0)
3080c8de5b0SBaptiste Daroussin    {
3090c8de5b0SBaptiste Daroussin#if YYDEBUG
3100c8de5b0SBaptiste Daroussin        if (yydebug)
3110c8de5b0SBaptiste Daroussin            printf("%sdebug: after reduction, shifting from state 0 to\
3120c8de5b0SBaptiste Daroussin state %d\n", YYPREFIX, YYFINAL);
3130c8de5b0SBaptiste Daroussin#endif
3140c8de5b0SBaptiste Daroussin        yystate = YYFINAL;
3150c8de5b0SBaptiste Daroussin        *++yystack.s_mark = YYFINAL;
3160c8de5b0SBaptiste Daroussin        *++yystack.l_mark = yyval;
3170c8de5b0SBaptiste Daroussin        if (yychar < 0)
3180c8de5b0SBaptiste Daroussin        {
319c5b5d71aSJung-uk Kim            yychar = YYLEX;
320c5b5d71aSJung-uk Kim            if (yychar < 0) yychar = YYEOF;
3210c8de5b0SBaptiste Daroussin#if YYDEBUG
3220c8de5b0SBaptiste Daroussin            if (yydebug)
3230c8de5b0SBaptiste Daroussin            {
324c5b5d71aSJung-uk Kim                if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
3250c8de5b0SBaptiste Daroussin                printf("%sdebug: state %d, reading %d (%s)\n",
3260c8de5b0SBaptiste Daroussin                        YYPREFIX, YYFINAL, yychar, yys);
3270c8de5b0SBaptiste Daroussin            }
3280c8de5b0SBaptiste Daroussin#endif
3290c8de5b0SBaptiste Daroussin        }
3300c8de5b0SBaptiste Daroussin        if (yychar == YYEOF) goto yyaccept;
3310c8de5b0SBaptiste Daroussin        goto yyloop;
3320c8de5b0SBaptiste Daroussin    }
333c5b5d71aSJung-uk Kim    if (((yyn = yygindex[yym]) != 0) && (yyn += yystate) >= 0 &&
334c5b5d71aSJung-uk Kim            yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yystate)
3350c8de5b0SBaptiste Daroussin        yystate = yytable[yyn];
3360c8de5b0SBaptiste Daroussin    else
3370c8de5b0SBaptiste Daroussin        yystate = yydgoto[yym];
3380c8de5b0SBaptiste Daroussin#if YYDEBUG
3390c8de5b0SBaptiste Daroussin    if (yydebug)
3400c8de5b0SBaptiste Daroussin        printf("%sdebug: after reduction, shifting from state %d \
3410c8de5b0SBaptiste Daroussinto state %d\n", YYPREFIX, *yystack.s_mark, yystate);
3420c8de5b0SBaptiste Daroussin#endif
343c5b5d71aSJung-uk Kim    if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
3440c8de5b0SBaptiste Daroussin    *++yystack.s_mark = (YYINT) yystate;
3450c8de5b0SBaptiste Daroussin    *++yystack.l_mark = yyval;
3460c8de5b0SBaptiste Daroussin    goto yyloop;
3470c8de5b0SBaptiste Daroussin
3480c8de5b0SBaptiste Daroussinyyoverflow:
3490c8de5b0SBaptiste Daroussin    YYERROR_CALL("yacc stack overflow");
3500c8de5b0SBaptiste Daroussin
3510c8de5b0SBaptiste Daroussinyyabort:
3520c8de5b0SBaptiste Daroussin    yyfreestack(&yystack);
3530c8de5b0SBaptiste Daroussin    return (1);
3540c8de5b0SBaptiste Daroussin
3550c8de5b0SBaptiste Daroussinyyaccept:
3560c8de5b0SBaptiste Daroussin    yyfreestack(&yystack);
3570c8de5b0SBaptiste Daroussin    return (0);
3580c8de5b0SBaptiste Daroussin}
359