Home | History | Annotate | Line # | Download | only in yacc
err_syntax18.tab.c revision 1.2.12.1
      1  1.2.12.1  christos /*	$NetBSD: err_syntax18.tab.c,v 1.2.12.1 2019/06/10 21:44:42 christos Exp $	*/
      2       1.1  christos 
      3       1.1  christos /* original parser id follows */
      4       1.1  christos /* yysccsid[] = "@(#)yaccpar	1.9 (Berkeley) 02/21/93" */
      5       1.1  christos /* (use YYMAJOR/YYMINOR for ifdefs dependent on parser version) */
      6       1.1  christos 
      7       1.1  christos #define YYBYACC 1
      8       1.1  christos #define YYMAJOR 1
      9       1.1  christos #define YYMINOR 9
     10       1.1  christos #define YYCHECK "yyyymmdd"
     11       1.1  christos 
     12       1.1  christos #define YYEMPTY        (-1)
     13       1.1  christos #define yyclearin      (yychar = YYEMPTY)
     14       1.1  christos #define yyerrok        (yyerrflag = 0)
     15       1.1  christos #define YYRECOVERING() (yyerrflag != 0)
     16       1.1  christos #define YYENOMEM       (-2)
     17       1.1  christos #define YYEOF          0
     18       1.1  christos 
     19       1.1  christos #ifndef yyparse
     20       1.1  christos #define yyparse    err_syntax18_parse
     21       1.1  christos #endif /* yyparse */
     22       1.1  christos 
     23       1.1  christos #ifndef yylex
     24       1.1  christos #define yylex      err_syntax18_lex
     25       1.1  christos #endif /* yylex */
     26       1.1  christos 
     27       1.1  christos #ifndef yyerror
     28       1.1  christos #define yyerror    err_syntax18_error
     29       1.1  christos #endif /* yyerror */
     30       1.1  christos 
     31       1.1  christos #ifndef yychar
     32       1.1  christos #define yychar     err_syntax18_char
     33       1.1  christos #endif /* yychar */
     34       1.1  christos 
     35       1.1  christos #ifndef yyval
     36       1.1  christos #define yyval      err_syntax18_val
     37       1.1  christos #endif /* yyval */
     38       1.1  christos 
     39       1.1  christos #ifndef yylval
     40       1.1  christos #define yylval     err_syntax18_lval
     41       1.1  christos #endif /* yylval */
     42       1.1  christos 
     43       1.1  christos #ifndef yydebug
     44       1.1  christos #define yydebug    err_syntax18_debug
     45       1.1  christos #endif /* yydebug */
     46       1.1  christos 
     47       1.1  christos #ifndef yynerrs
     48       1.1  christos #define yynerrs    err_syntax18_nerrs
     49       1.1  christos #endif /* yynerrs */
     50       1.1  christos 
     51       1.1  christos #ifndef yyerrflag
     52       1.1  christos #define yyerrflag  err_syntax18_errflag
     53       1.1  christos #endif /* yyerrflag */
     54       1.1  christos 
     55       1.1  christos #ifndef yylhs
     56       1.1  christos #define yylhs      err_syntax18_lhs
     57       1.1  christos #endif /* yylhs */
     58       1.1  christos 
     59       1.1  christos #ifndef yylen
     60       1.1  christos #define yylen      err_syntax18_len
     61       1.1  christos #endif /* yylen */
     62       1.1  christos 
     63       1.1  christos #ifndef yydefred
     64       1.1  christos #define yydefred   err_syntax18_defred
     65       1.1  christos #endif /* yydefred */
     66       1.1  christos 
     67       1.1  christos #ifndef yydgoto
     68       1.1  christos #define yydgoto    err_syntax18_dgoto
     69       1.1  christos #endif /* yydgoto */
     70       1.1  christos 
     71       1.1  christos #ifndef yysindex
     72       1.1  christos #define yysindex   err_syntax18_sindex
     73       1.1  christos #endif /* yysindex */
     74       1.1  christos 
     75       1.1  christos #ifndef yyrindex
     76       1.1  christos #define yyrindex   err_syntax18_rindex
     77       1.1  christos #endif /* yyrindex */
     78       1.1  christos 
     79       1.1  christos #ifndef yygindex
     80       1.1  christos #define yygindex   err_syntax18_gindex
     81       1.1  christos #endif /* yygindex */
     82       1.1  christos 
     83       1.1  christos #ifndef yytable
     84       1.1  christos #define yytable    err_syntax18_table
     85       1.1  christos #endif /* yytable */
     86       1.1  christos 
     87       1.1  christos #ifndef yycheck
     88       1.1  christos #define yycheck    err_syntax18_check
     89       1.1  christos #endif /* yycheck */
     90       1.1  christos 
     91       1.1  christos #ifndef yyname
     92       1.1  christos #define yyname     err_syntax18_name
     93       1.1  christos #endif /* yyname */
     94       1.1  christos 
     95       1.1  christos #ifndef yyrule
     96       1.1  christos #define yyrule     err_syntax18_rule
     97       1.1  christos #endif /* yyrule */
     98       1.1  christos #define YYPREFIX "err_syntax18_"
     99       1.1  christos 
    100       1.1  christos #define YYPURE 0
    101       1.1  christos 
    102       1.1  christos #line 2 "err_syntax18.y"
    103       1.1  christos int yylex(void);
    104       1.1  christos static void yyerror(const char *);
    105       1.1  christos #line 104 "err_syntax18.tab.c"
    106       1.1  christos 
    107       1.1  christos #if ! defined(YYSTYPE) && ! defined(YYSTYPE_IS_DECLARED)
    108       1.1  christos /* Default: YYSTYPE is the semantic value type. */
    109       1.1  christos typedef int YYSTYPE;
    110       1.1  christos # define YYSTYPE_IS_DECLARED 1
    111       1.1  christos #endif
    112       1.1  christos 
    113       1.1  christos /* compatibility with bison */
    114       1.1  christos #ifdef YYPARSE_PARAM
    115       1.1  christos /* compatibility with FreeBSD */
    116       1.1  christos # ifdef YYPARSE_PARAM_TYPE
    117       1.1  christos #  define YYPARSE_DECL() yyparse(YYPARSE_PARAM_TYPE YYPARSE_PARAM)
    118       1.1  christos # else
    119       1.1  christos #  define YYPARSE_DECL() yyparse(void *YYPARSE_PARAM)
    120       1.1  christos # endif
    121       1.1  christos #else
    122       1.1  christos # define YYPARSE_DECL() yyparse(void)
    123       1.1  christos #endif
    124       1.1  christos 
    125       1.1  christos /* Parameters sent to lex. */
    126       1.1  christos #ifdef YYLEX_PARAM
    127       1.1  christos # define YYLEX_DECL() yylex(void *YYLEX_PARAM)
    128       1.1  christos # define YYLEX yylex(YYLEX_PARAM)
    129       1.1  christos #else
    130       1.1  christos # define YYLEX_DECL() yylex(void)
    131       1.1  christos # define YYLEX yylex()
    132       1.1  christos #endif
    133       1.1  christos 
    134       1.1  christos /* Parameters sent to yyerror. */
    135       1.1  christos #ifndef YYERROR_DECL
    136       1.1  christos #define YYERROR_DECL() yyerror(const char *s)
    137       1.1  christos #endif
    138       1.1  christos #ifndef YYERROR_CALL
    139       1.1  christos #define YYERROR_CALL(msg) yyerror(msg)
    140       1.1  christos #endif
    141       1.1  christos 
    142       1.1  christos extern int YYPARSE_DECL();
    143       1.1  christos 
    144       1.1  christos #define YYERRCODE 256
    145       1.1  christos typedef short YYINT;
    146       1.1  christos static const YYINT err_syntax18_lhs[] = {                -1,
    147       1.1  christos     0,
    148       1.1  christos };
    149       1.1  christos static const YYINT err_syntax18_len[] = {                 2,
    150       1.1  christos     3,
    151       1.1  christos };
    152       1.1  christos static const YYINT err_syntax18_defred[] = {              0,
    153       1.1  christos     0,    0,    0,    1,
    154       1.1  christos };
    155       1.1  christos static const YYINT err_syntax18_dgoto[] = {               2,
    156       1.1  christos };
    157       1.1  christos static const YYINT err_syntax18_sindex[] = {            -40,
    158       1.1  christos   -40,    0,  -39,    0,
    159       1.1  christos };
    160       1.1  christos static const YYINT err_syntax18_rindex[] = {              0,
    161       1.1  christos     0,    0,    0,    0,
    162       1.1  christos };
    163       1.1  christos static const YYINT err_syntax18_gindex[] = {              2,
    164       1.1  christos };
    165       1.1  christos #define YYTABLESIZE 3
    166       1.1  christos static const YYINT err_syntax18_table[] = {               1,
    167       1.1  christos     0,    4,    3,
    168       1.1  christos };
    169       1.1  christos static const YYINT err_syntax18_check[] = {              40,
    170       1.1  christos    -1,   41,    1,
    171       1.1  christos };
    172       1.1  christos #define YYFINAL 2
    173       1.1  christos #ifndef YYDEBUG
    174       1.1  christos #define YYDEBUG 0
    175       1.1  christos #endif
    176       1.1  christos #define YYMAXTOKEN 256
    177       1.1  christos #define YYUNDFTOKEN 259
    178       1.1  christos #define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? YYUNDFTOKEN : (a))
    179       1.1  christos #if YYDEBUG
    180       1.1  christos static const char *const err_syntax18_name[] = {
    181       1.1  christos 
    182       1.1  christos "end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    183       1.1  christos 0,0,0,0,0,0,"'('","')'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    184       1.1  christos 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    185       1.1  christos 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    186       1.1  christos 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    187       1.1  christos 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    188       1.1  christos 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"illegal-symbol",
    189       1.1  christos };
    190       1.1  christos static const char *const err_syntax18_rule[] = {
    191       1.1  christos "$accept : expr",
    192       1.1  christos "expr : '(' expr ')'",
    193       1.1  christos 
    194       1.1  christos };
    195       1.1  christos #endif
    196       1.1  christos 
    197  1.2.12.1  christos #if YYDEBUG
    198       1.1  christos int      yydebug;
    199  1.2.12.1  christos #endif
    200       1.1  christos 
    201       1.1  christos int      yyerrflag;
    202       1.1  christos int      yychar;
    203       1.1  christos YYSTYPE  yyval;
    204       1.1  christos YYSTYPE  yylval;
    205  1.2.12.1  christos int      yynerrs;
    206       1.1  christos 
    207       1.1  christos /* define the initial stack-sizes */
    208       1.1  christos #ifdef YYSTACKSIZE
    209       1.1  christos #undef YYMAXDEPTH
    210       1.1  christos #define YYMAXDEPTH  YYSTACKSIZE
    211       1.1  christos #else
    212       1.1  christos #ifdef YYMAXDEPTH
    213       1.1  christos #define YYSTACKSIZE YYMAXDEPTH
    214       1.1  christos #else
    215       1.1  christos #define YYSTACKSIZE 10000
    216       1.1  christos #define YYMAXDEPTH  10000
    217       1.1  christos #endif
    218       1.1  christos #endif
    219       1.1  christos 
    220       1.1  christos #define YYINITSTACKSIZE 200
    221       1.1  christos 
    222       1.1  christos typedef struct {
    223       1.1  christos     unsigned stacksize;
    224       1.1  christos     YYINT    *s_base;
    225       1.1  christos     YYINT    *s_mark;
    226       1.1  christos     YYINT    *s_last;
    227       1.1  christos     YYSTYPE  *l_base;
    228       1.1  christos     YYSTYPE  *l_mark;
    229       1.1  christos } YYSTACKDATA;
    230       1.1  christos /* variables for the parser stack */
    231       1.1  christos static YYSTACKDATA yystack;
    232       1.1  christos #line 13 "err_syntax18.y"
    233       1.1  christos 
    234       1.1  christos #include <stdio.h>
    235       1.1  christos 
    236       1.1  christos int
    237       1.1  christos main(void)
    238       1.1  christos {
    239       1.1  christos     printf("yyparse() = %d\n", yyparse());
    240       1.1  christos     return 0;
    241       1.1  christos }
    242       1.1  christos 
    243       1.1  christos int
    244       1.1  christos yylex(void)
    245       1.1  christos {
    246       1.1  christos     return -1;
    247       1.1  christos }
    248       1.1  christos 
    249       1.1  christos static void
    250       1.1  christos yyerror(const char* s)
    251       1.1  christos {
    252       1.1  christos     printf("%s\n", s);
    253       1.1  christos }
    254  1.2.12.1  christos #line 253 "err_syntax18.tab.c"
    255       1.1  christos 
    256       1.1  christos #if YYDEBUG
    257       1.2  christos #include <stdio.h>	/* needed for printf */
    258       1.1  christos #endif
    259       1.1  christos 
    260       1.1  christos #include <stdlib.h>	/* needed for malloc, etc */
    261       1.1  christos #include <string.h>	/* needed for memset */
    262       1.1  christos 
    263       1.1  christos /* allocate initial stack or double stack size, up to YYMAXDEPTH */
    264       1.1  christos static int yygrowstack(YYSTACKDATA *data)
    265       1.1  christos {
    266       1.1  christos     int i;
    267       1.1  christos     unsigned newsize;
    268       1.1  christos     YYINT *newss;
    269       1.1  christos     YYSTYPE *newvs;
    270       1.1  christos 
    271       1.1  christos     if ((newsize = data->stacksize) == 0)
    272       1.1  christos         newsize = YYINITSTACKSIZE;
    273       1.1  christos     else if (newsize >= YYMAXDEPTH)
    274       1.1  christos         return YYENOMEM;
    275       1.1  christos     else if ((newsize *= 2) > YYMAXDEPTH)
    276       1.1  christos         newsize = YYMAXDEPTH;
    277       1.1  christos 
    278       1.1  christos     i = (int) (data->s_mark - data->s_base);
    279       1.1  christos     newss = (YYINT *)realloc(data->s_base, newsize * sizeof(*newss));
    280       1.1  christos     if (newss == 0)
    281       1.1  christos         return YYENOMEM;
    282       1.1  christos 
    283       1.1  christos     data->s_base = newss;
    284       1.1  christos     data->s_mark = newss + i;
    285       1.1  christos 
    286       1.1  christos     newvs = (YYSTYPE *)realloc(data->l_base, newsize * sizeof(*newvs));
    287       1.1  christos     if (newvs == 0)
    288       1.1  christos         return YYENOMEM;
    289       1.1  christos 
    290       1.1  christos     data->l_base = newvs;
    291       1.1  christos     data->l_mark = newvs + i;
    292       1.1  christos 
    293       1.1  christos     data->stacksize = newsize;
    294       1.1  christos     data->s_last = data->s_base + newsize - 1;
    295       1.1  christos     return 0;
    296       1.1  christos }
    297       1.1  christos 
    298       1.1  christos #if YYPURE || defined(YY_NO_LEAKS)
    299       1.1  christos static void yyfreestack(YYSTACKDATA *data)
    300       1.1  christos {
    301       1.1  christos     free(data->s_base);
    302       1.1  christos     free(data->l_base);
    303       1.1  christos     memset(data, 0, sizeof(*data));
    304       1.1  christos }
    305       1.1  christos #else
    306       1.1  christos #define yyfreestack(data) /* nothing */
    307       1.1  christos #endif
    308       1.1  christos 
    309       1.1  christos #define YYABORT  goto yyabort
    310       1.1  christos #define YYREJECT goto yyabort
    311       1.1  christos #define YYACCEPT goto yyaccept
    312       1.1  christos #define YYERROR  goto yyerrlab
    313       1.1  christos 
    314       1.1  christos int
    315       1.1  christos YYPARSE_DECL()
    316       1.1  christos {
    317       1.1  christos     int yym, yyn, yystate;
    318       1.1  christos #if YYDEBUG
    319       1.1  christos     const char *yys;
    320       1.1  christos 
    321       1.1  christos     if ((yys = getenv("YYDEBUG")) != 0)
    322       1.1  christos     {
    323       1.1  christos         yyn = *yys;
    324       1.1  christos         if (yyn >= '0' && yyn <= '9')
    325       1.1  christos             yydebug = yyn - '0';
    326       1.1  christos     }
    327       1.1  christos #endif
    328       1.1  christos 
    329       1.2  christos     yym = 0;
    330       1.2  christos     yyn = 0;
    331       1.1  christos     yynerrs = 0;
    332       1.1  christos     yyerrflag = 0;
    333       1.1  christos     yychar = YYEMPTY;
    334       1.1  christos     yystate = 0;
    335       1.1  christos 
    336       1.1  christos #if YYPURE
    337       1.1  christos     memset(&yystack, 0, sizeof(yystack));
    338       1.1  christos #endif
    339       1.1  christos 
    340       1.1  christos     if (yystack.s_base == NULL && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
    341       1.1  christos     yystack.s_mark = yystack.s_base;
    342       1.1  christos     yystack.l_mark = yystack.l_base;
    343       1.1  christos     yystate = 0;
    344       1.1  christos     *yystack.s_mark = 0;
    345       1.1  christos 
    346       1.1  christos yyloop:
    347       1.1  christos     if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
    348       1.1  christos     if (yychar < 0)
    349       1.1  christos     {
    350       1.2  christos         yychar = YYLEX;
    351       1.2  christos         if (yychar < 0) yychar = YYEOF;
    352       1.1  christos #if YYDEBUG
    353       1.1  christos         if (yydebug)
    354       1.1  christos         {
    355       1.2  christos             if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
    356       1.1  christos             printf("%sdebug: state %d, reading %d (%s)\n",
    357       1.1  christos                     YYPREFIX, yystate, yychar, yys);
    358       1.1  christos         }
    359       1.1  christos #endif
    360       1.1  christos     }
    361       1.2  christos     if (((yyn = yysindex[yystate]) != 0) && (yyn += yychar) >= 0 &&
    362       1.2  christos             yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)
    363       1.1  christos     {
    364       1.1  christos #if YYDEBUG
    365       1.1  christos         if (yydebug)
    366       1.1  christos             printf("%sdebug: state %d, shifting to state %d\n",
    367       1.1  christos                     YYPREFIX, yystate, yytable[yyn]);
    368       1.1  christos #endif
    369       1.2  christos         if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
    370       1.1  christos         yystate = yytable[yyn];
    371       1.1  christos         *++yystack.s_mark = yytable[yyn];
    372       1.1  christos         *++yystack.l_mark = yylval;
    373       1.1  christos         yychar = YYEMPTY;
    374       1.1  christos         if (yyerrflag > 0)  --yyerrflag;
    375       1.1  christos         goto yyloop;
    376       1.1  christos     }
    377       1.2  christos     if (((yyn = yyrindex[yystate]) != 0) && (yyn += yychar) >= 0 &&
    378       1.2  christos             yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)
    379       1.1  christos     {
    380       1.1  christos         yyn = yytable[yyn];
    381       1.1  christos         goto yyreduce;
    382       1.1  christos     }
    383       1.2  christos     if (yyerrflag != 0) goto yyinrecovery;
    384       1.1  christos 
    385       1.1  christos     YYERROR_CALL("syntax error");
    386       1.1  christos 
    387       1.2  christos     goto yyerrlab; /* redundant goto avoids 'unused label' warning */
    388       1.1  christos yyerrlab:
    389       1.1  christos     ++yynerrs;
    390       1.1  christos 
    391       1.1  christos yyinrecovery:
    392       1.1  christos     if (yyerrflag < 3)
    393       1.1  christos     {
    394       1.1  christos         yyerrflag = 3;
    395       1.1  christos         for (;;)
    396       1.1  christos         {
    397       1.2  christos             if (((yyn = yysindex[*yystack.s_mark]) != 0) && (yyn += YYERRCODE) >= 0 &&
    398       1.2  christos                     yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) YYERRCODE)
    399       1.1  christos             {
    400       1.1  christos #if YYDEBUG
    401       1.1  christos                 if (yydebug)
    402       1.1  christos                     printf("%sdebug: state %d, error recovery shifting\
    403       1.1  christos  to state %d\n", YYPREFIX, *yystack.s_mark, yytable[yyn]);
    404       1.1  christos #endif
    405       1.2  christos                 if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
    406       1.1  christos                 yystate = yytable[yyn];
    407       1.1  christos                 *++yystack.s_mark = yytable[yyn];
    408       1.1  christos                 *++yystack.l_mark = yylval;
    409       1.1  christos                 goto yyloop;
    410       1.1  christos             }
    411       1.1  christos             else
    412       1.1  christos             {
    413       1.1  christos #if YYDEBUG
    414       1.1  christos                 if (yydebug)
    415       1.1  christos                     printf("%sdebug: error recovery discarding state %d\n",
    416       1.1  christos                             YYPREFIX, *yystack.s_mark);
    417       1.1  christos #endif
    418       1.1  christos                 if (yystack.s_mark <= yystack.s_base) goto yyabort;
    419       1.1  christos                 --yystack.s_mark;
    420       1.1  christos                 --yystack.l_mark;
    421       1.1  christos             }
    422       1.1  christos         }
    423       1.1  christos     }
    424       1.1  christos     else
    425       1.1  christos     {
    426       1.1  christos         if (yychar == YYEOF) goto yyabort;
    427       1.1  christos #if YYDEBUG
    428       1.1  christos         if (yydebug)
    429       1.1  christos         {
    430       1.2  christos             if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
    431       1.1  christos             printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
    432       1.1  christos                     YYPREFIX, yystate, yychar, yys);
    433       1.1  christos         }
    434       1.1  christos #endif
    435       1.1  christos         yychar = YYEMPTY;
    436       1.1  christos         goto yyloop;
    437       1.1  christos     }
    438       1.1  christos 
    439       1.1  christos yyreduce:
    440       1.1  christos #if YYDEBUG
    441       1.1  christos     if (yydebug)
    442       1.1  christos         printf("%sdebug: state %d, reducing by rule %d (%s)\n",
    443       1.1  christos                 YYPREFIX, yystate, yyn, yyrule[yyn]);
    444       1.1  christos #endif
    445       1.1  christos     yym = yylen[yyn];
    446       1.2  christos     if (yym > 0)
    447       1.1  christos         yyval = yystack.l_mark[1-yym];
    448       1.1  christos     else
    449       1.1  christos         memset(&yyval, 0, sizeof yyval);
    450       1.2  christos 
    451       1.1  christos     switch (yyn)
    452       1.1  christos     {
    453       1.1  christos case 1:
    454       1.1  christos #line 9 "err_syntax18.y"
    455       1.1  christos 	{  yyval = yystack.l_mark[1]; }
    456       1.1  christos break;
    457  1.2.12.1  christos #line 456 "err_syntax18.tab.c"
    458       1.1  christos     }
    459       1.1  christos     yystack.s_mark -= yym;
    460       1.1  christos     yystate = *yystack.s_mark;
    461       1.1  christos     yystack.l_mark -= yym;
    462       1.1  christos     yym = yylhs[yyn];
    463       1.1  christos     if (yystate == 0 && yym == 0)
    464       1.1  christos     {
    465       1.1  christos #if YYDEBUG
    466       1.1  christos         if (yydebug)
    467       1.1  christos             printf("%sdebug: after reduction, shifting from state 0 to\
    468       1.1  christos  state %d\n", YYPREFIX, YYFINAL);
    469       1.1  christos #endif
    470       1.1  christos         yystate = YYFINAL;
    471       1.1  christos         *++yystack.s_mark = YYFINAL;
    472       1.1  christos         *++yystack.l_mark = yyval;
    473       1.1  christos         if (yychar < 0)
    474       1.1  christos         {
    475       1.2  christos             yychar = YYLEX;
    476       1.2  christos             if (yychar < 0) yychar = YYEOF;
    477       1.1  christos #if YYDEBUG
    478       1.1  christos             if (yydebug)
    479       1.1  christos             {
    480       1.2  christos                 if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
    481       1.1  christos                 printf("%sdebug: state %d, reading %d (%s)\n",
    482       1.1  christos                         YYPREFIX, YYFINAL, yychar, yys);
    483       1.1  christos             }
    484       1.1  christos #endif
    485       1.1  christos         }
    486       1.1  christos         if (yychar == YYEOF) goto yyaccept;
    487       1.1  christos         goto yyloop;
    488       1.1  christos     }
    489       1.2  christos     if (((yyn = yygindex[yym]) != 0) && (yyn += yystate) >= 0 &&
    490       1.2  christos             yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yystate)
    491       1.1  christos         yystate = yytable[yyn];
    492       1.1  christos     else
    493       1.1  christos         yystate = yydgoto[yym];
    494       1.1  christos #if YYDEBUG
    495       1.1  christos     if (yydebug)
    496       1.1  christos         printf("%sdebug: after reduction, shifting from state %d \
    497       1.1  christos to state %d\n", YYPREFIX, *yystack.s_mark, yystate);
    498       1.1  christos #endif
    499       1.2  christos     if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
    500       1.1  christos     *++yystack.s_mark = (YYINT) yystate;
    501       1.1  christos     *++yystack.l_mark = yyval;
    502       1.1  christos     goto yyloop;
    503       1.1  christos 
    504       1.1  christos yyoverflow:
    505       1.1  christos     YYERROR_CALL("yacc stack overflow");
    506       1.1  christos 
    507       1.1  christos yyabort:
    508       1.1  christos     yyfreestack(&yystack);
    509       1.1  christos     return (1);
    510       1.1  christos 
    511       1.1  christos yyaccept:
    512       1.1  christos     yyfreestack(&yystack);
    513       1.1  christos     return (0);
    514       1.1  christos }
    515