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