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