1 /* This file generated automatically using 2 * @Id: skel2c,v 1.4 2016/06/07 00:26:09 tom Exp @ 3 */ 4 5 /* @Id: btyaccpar.skel,v 1.12 2021/06/19 20:46:31 tom Exp @ */ 6 7 #include "defs.h" 8 9 /* If the skeleton is changed, the banner should be changed so that */ 10 /* the altered version can be easily distinguished from the original. */ 11 /* */ 12 /* The #defines included with the banner are there because they are */ 13 /* useful in subsequent code. The macros #defined in the header or */ 14 /* the body either are not useful outside of semantic actions or */ 15 /* are conditional. */ 16 17 const char *const banner[] = 18 { 19 "/* original parser id follows */", 20 "/* yysccsid[] = \"@(#)yaccpar 1.9 (Berkeley) 02/21/93\" */", 21 "/* (use YYMAJOR/YYMINOR for ifdefs dependent on parser version) */", 22 "", 23 "#define YYBYACC 1", 24 CONCAT1("#define YYMAJOR ", YYMAJOR), 25 CONCAT1("#define YYMINOR ", YYMINOR), 26 #ifdef YYPATCH 27 CONCAT1("#define YYPATCH ", YYPATCH), 28 #endif 29 "", 30 "#define YYEMPTY (-1)", 31 "#define yyclearin (yychar = YYEMPTY)", 32 "#define yyerrok (yyerrflag = 0)", 33 "#define YYRECOVERING() (yyerrflag != 0)", 34 "#define YYENOMEM (-2)", 35 "#define YYEOF 0", 36 0 37 }; 38 39 const char *const xdecls[] = 40 { 41 "", 42 "extern int YYPARSE_DECL();", 43 0 44 }; 45 46 const char *const tables[] = 47 { 48 "extern const YYINT yylhs[];", 49 "extern const YYINT yylen[];", 50 "extern const YYINT yydefred[];", 51 "extern const YYINT yystos[];", 52 "extern const YYINT yydgoto[];", 53 "extern const YYINT yysindex[];", 54 "extern const YYINT yyrindex[];", 55 #if defined(YYBTYACC) 56 "#if YYBTYACC", 57 "extern const YYINT yycindex[];", 58 "#endif /* YYBTYACC */", 59 #endif /* defined(YYBTYACC) */ 60 "extern const YYINT yygindex[];", 61 "extern const YYINT yytable[];", 62 "extern const YYINT yycheck[];", 63 #if defined(YYBTYACC) 64 "#if YYBTYACC", 65 "extern const YYINT yyctable[];", 66 "#endif /* YYBTYACC */", 67 #endif /* defined(YYBTYACC) */ 68 "", 69 "#if YYDEBUG || defined(yytname)", 70 "extern const char *const yyname[];", 71 "#endif", 72 "#if YYDEBUG", 73 "extern const char *const yyrule[];", 74 "#endif", 75 0 76 }; 77 78 const char *const global_vars[] = 79 { 80 "", 81 "#if YYDEBUG", 82 "int yydebug;", 83 "#endif", 84 0 85 }; 86 87 const char *const impure_vars[] = 88 { 89 "", 90 "int yyerrflag;", 91 "int yychar;", 92 "YYSTYPE yyval;", 93 "YYSTYPE yylval;", 94 "int yynerrs;", 95 "", 96 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 97 "YYLTYPE yyloc; /* position returned by actions */", 98 "YYLTYPE yylloc; /* position from the lexer */", 99 "#endif", 100 0 101 }; 102 103 const char *const hdr_defs[] = 104 { 105 "", 106 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 107 "#ifndef YYLLOC_DEFAULT", 108 "#define YYLLOC_DEFAULT(loc, rhs, n) \\", 109 "do \\", 110 "{ \\", 111 " if (n == 0) \\", 112 " { \\", 113 " (loc).first_line = YYRHSLOC(rhs, 0).last_line; \\", 114 " (loc).first_column = YYRHSLOC(rhs, 0).last_column; \\", 115 " (loc).last_line = YYRHSLOC(rhs, 0).last_line; \\", 116 " (loc).last_column = YYRHSLOC(rhs, 0).last_column; \\", 117 " } \\", 118 " else \\", 119 " { \\", 120 " (loc).first_line = YYRHSLOC(rhs, 1).first_line; \\", 121 " (loc).first_column = YYRHSLOC(rhs, 1).first_column; \\", 122 " (loc).last_line = YYRHSLOC(rhs, n).last_line; \\", 123 " (loc).last_column = YYRHSLOC(rhs, n).last_column; \\", 124 " } \\", 125 "} while (0)", 126 "#endif /* YYLLOC_DEFAULT */", 127 "#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */", 128 #if defined(YYBTYACC) 129 "#if YYBTYACC", 130 "", 131 "#ifndef YYLVQUEUEGROWTH", 132 "#define YYLVQUEUEGROWTH 32", 133 "#endif", 134 "#endif /* YYBTYACC */", 135 #endif /* defined(YYBTYACC) */ 136 "", 137 "/* define the initial stack-sizes */", 138 "#ifdef YYSTACKSIZE", 139 "#undef YYMAXDEPTH", 140 "#define YYMAXDEPTH YYSTACKSIZE", 141 "#else", 142 "#ifdef YYMAXDEPTH", 143 "#define YYSTACKSIZE YYMAXDEPTH", 144 "#else", 145 "#define YYSTACKSIZE 10000", 146 "#define YYMAXDEPTH 10000", 147 "#endif", 148 "#endif", 149 "", 150 "#ifndef YYINITSTACKSIZE", 151 "#define YYINITSTACKSIZE 200", 152 "#endif", 153 "", 154 "typedef struct {", 155 " unsigned stacksize;", 156 " YYINT *s_base;", 157 " YYINT *s_mark;", 158 " YYINT *s_last;", 159 " YYSTYPE *l_base;", 160 " YYSTYPE *l_mark;", 161 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 162 " YYLTYPE *p_base;", 163 " YYLTYPE *p_mark;", 164 "#endif", 165 "} YYSTACKDATA;", 166 #if defined(YYBTYACC) 167 "#if YYBTYACC", 168 "", 169 "struct YYParseState_s", 170 "{", 171 " struct YYParseState_s *save; /* Previously saved parser state */", 172 " YYSTACKDATA yystack; /* saved parser stack */", 173 " int state; /* saved parser state */", 174 " int errflag; /* saved error recovery status */", 175 " int lexeme; /* saved index of the conflict lexeme in the lexical queue */", 176 " YYINT ctry; /* saved index in yyctable[] for this conflict */", 177 "};", 178 "typedef struct YYParseState_s YYParseState;", 179 "#endif /* YYBTYACC */", 180 #endif /* defined(YYBTYACC) */ 181 0 182 }; 183 184 const char *const hdr_vars[] = 185 { 186 "/* variables for the parser stack */", 187 "static YYSTACKDATA yystack;", 188 #if defined(YYBTYACC) 189 "#if YYBTYACC", 190 "", 191 "/* Current parser state */", 192 "static YYParseState *yyps = 0;", 193 "", 194 "/* yypath != NULL: do the full parse, starting at *yypath parser state. */", 195 "static YYParseState *yypath = 0;", 196 "", 197 "/* Base of the lexical value queue */", 198 "static YYSTYPE *yylvals = 0;", 199 "", 200 "/* Current position at lexical value queue */", 201 "static YYSTYPE *yylvp = 0;", 202 "", 203 "/* End position of lexical value queue */", 204 "static YYSTYPE *yylve = 0;", 205 "", 206 "/* The last allocated position at the lexical value queue */", 207 "static YYSTYPE *yylvlim = 0;", 208 "", 209 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 210 "/* Base of the lexical position queue */", 211 "static YYLTYPE *yylpsns = 0;", 212 "", 213 "/* Current position at lexical position queue */", 214 "static YYLTYPE *yylpp = 0;", 215 "", 216 "/* End position of lexical position queue */", 217 "static YYLTYPE *yylpe = 0;", 218 "", 219 "/* The last allocated position at the lexical position queue */", 220 "static YYLTYPE *yylplim = 0;", 221 "#endif", 222 "", 223 "/* Current position at lexical token queue */", 224 "static YYINT *yylexp = 0;", 225 "", 226 "static YYINT *yylexemes = 0;", 227 "#endif /* YYBTYACC */", 228 #endif /* defined(YYBTYACC) */ 229 0 230 }; 231 232 const char *const body_vars[] = 233 { 234 " int yyerrflag;", 235 " int yychar;", 236 " YYSTYPE yyval;", 237 " YYSTYPE yylval;", 238 " int yynerrs;", 239 "", 240 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 241 " YYLTYPE yyloc; /* position returned by actions */", 242 " YYLTYPE yylloc; /* position from the lexer */", 243 "#endif", 244 "", 245 " /* variables for the parser stack */", 246 " YYSTACKDATA yystack;", 247 #if defined(YYBTYACC) 248 "#if YYBTYACC", 249 "", 250 " /* Current parser state */", 251 " static YYParseState *yyps = 0;", 252 "", 253 " /* yypath != NULL: do the full parse, starting at *yypath parser state. */", 254 " static YYParseState *yypath = 0;", 255 "", 256 " /* Base of the lexical value queue */", 257 " static YYSTYPE *yylvals = 0;", 258 "", 259 " /* Current position at lexical value queue */", 260 " static YYSTYPE *yylvp = 0;", 261 "", 262 " /* End position of lexical value queue */", 263 " static YYSTYPE *yylve = 0;", 264 "", 265 " /* The last allocated position at the lexical value queue */", 266 " static YYSTYPE *yylvlim = 0;", 267 "", 268 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 269 " /* Base of the lexical position queue */", 270 " static YYLTYPE *yylpsns = 0;", 271 "", 272 " /* Current position at lexical position queue */", 273 " static YYLTYPE *yylpp = 0;", 274 "", 275 " /* End position of lexical position queue */", 276 " static YYLTYPE *yylpe = 0;", 277 "", 278 " /* The last allocated position at the lexical position queue */", 279 " static YYLTYPE *yylplim = 0;", 280 "#endif", 281 "", 282 " /* Current position at lexical token queue */", 283 " static YYINT *yylexp = 0;", 284 "", 285 " static YYINT *yylexemes = 0;", 286 "#endif /* YYBTYACC */", 287 #endif /* defined(YYBTYACC) */ 288 0 289 }; 290 291 const char *const body_1[] = 292 { 293 "", 294 "/* For use in generated program */", 295 "#define yydepth (int)(yystack.s_mark - yystack.s_base)", 296 #if defined(YYBTYACC) 297 "#if YYBTYACC", 298 "#define yytrial (yyps->save)", 299 "#endif /* YYBTYACC */", 300 #endif /* defined(YYBTYACC) */ 301 "", 302 "#if YYDEBUG", 303 "#include <stdio.h> /* needed for printf */", 304 "#endif", 305 "", 306 "#include <stdlib.h> /* needed for malloc, etc */", 307 "#include <string.h> /* needed for memset */", 308 "", 309 "/* allocate initial stack or double stack size, up to YYMAXDEPTH */", 310 "static int yygrowstack(YYSTACKDATA *data)", 311 "{", 312 " int i;", 313 " unsigned newsize;", 314 " YYINT *newss;", 315 " YYSTYPE *newvs;", 316 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 317 " YYLTYPE *newps;", 318 "#endif", 319 "", 320 " if ((newsize = data->stacksize) == 0)", 321 " newsize = YYINITSTACKSIZE;", 322 " else if (newsize >= YYMAXDEPTH)", 323 " return YYENOMEM;", 324 " else if ((newsize *= 2) > YYMAXDEPTH)", 325 " newsize = YYMAXDEPTH;", 326 "", 327 " i = (int) (data->s_mark - data->s_base);", 328 " newss = (YYINT *)realloc(data->s_base, newsize * sizeof(*newss));", 329 " if (newss == NULL)", 330 " return YYENOMEM;", 331 "", 332 " data->s_base = newss;", 333 " data->s_mark = newss + i;", 334 "", 335 " newvs = (YYSTYPE *)realloc(data->l_base, newsize * sizeof(*newvs));", 336 " if (newvs == NULL)", 337 " return YYENOMEM;", 338 "", 339 " data->l_base = newvs;", 340 " data->l_mark = newvs + i;", 341 "", 342 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 343 " newps = (YYLTYPE *)realloc(data->p_base, newsize * sizeof(*newps));", 344 " if (newps == NULL)", 345 " return YYENOMEM;", 346 "", 347 " data->p_base = newps;", 348 " data->p_mark = newps + i;", 349 "#endif", 350 "", 351 " data->stacksize = newsize;", 352 " data->s_last = data->s_base + newsize - 1;", 353 "", 354 "#if YYDEBUG", 355 " if (yydebug)", 356 " fprintf(stderr, \"%sdebug: stack size increased to %d\\n\", YYPREFIX, newsize);", 357 "#endif", 358 " return 0;", 359 "}", 360 "", 361 "#if YYPURE || defined(YY_NO_LEAKS)", 362 "static void yyfreestack(YYSTACKDATA *data)", 363 "{", 364 " free(data->s_base);", 365 " free(data->l_base);", 366 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 367 " free(data->p_base);", 368 "#endif", 369 " memset(data, 0, sizeof(*data));", 370 "}", 371 "#else", 372 "#define yyfreestack(data) /* nothing */", 373 "#endif /* YYPURE || defined(YY_NO_LEAKS) */", 374 #if defined(YYBTYACC) 375 "#if YYBTYACC", 376 "", 377 "static YYParseState *", 378 "yyNewState(unsigned size)", 379 "{", 380 " YYParseState *p = (YYParseState *) malloc(sizeof(YYParseState));", 381 " if (p == NULL) return NULL;", 382 "", 383 " p->yystack.stacksize = size;", 384 " if (size == 0)", 385 " {", 386 " p->yystack.s_base = NULL;", 387 " p->yystack.l_base = NULL;", 388 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 389 " p->yystack.p_base = NULL;", 390 "#endif", 391 " return p;", 392 " }", 393 " p->yystack.s_base = (YYINT *) malloc(size * sizeof(YYINT));", 394 " if (p->yystack.s_base == NULL) return NULL;", 395 " p->yystack.l_base = (YYSTYPE *) malloc(size * sizeof(YYSTYPE));", 396 " if (p->yystack.l_base == NULL) return NULL;", 397 " memset(p->yystack.l_base, 0, size * sizeof(YYSTYPE));", 398 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 399 " p->yystack.p_base = (YYLTYPE *) malloc(size * sizeof(YYLTYPE));", 400 " if (p->yystack.p_base == NULL) return NULL;", 401 " memset(p->yystack.p_base, 0, size * sizeof(YYLTYPE));", 402 "#endif", 403 "", 404 " return p;", 405 "}", 406 "", 407 "static void", 408 "yyFreeState(YYParseState *p)", 409 "{", 410 " yyfreestack(&p->yystack);", 411 " free(p);", 412 "}", 413 "#endif /* YYBTYACC */", 414 #endif /* defined(YYBTYACC) */ 415 "", 416 "#define YYABORT goto yyabort", 417 "#define YYREJECT goto yyabort", 418 "#define YYACCEPT goto yyaccept", 419 "#define YYERROR goto yyerrlab", 420 #if defined(YYBTYACC) 421 "#if YYBTYACC", 422 "#define YYVALID do { if (yyps->save) goto yyvalid; } while(0)", 423 "#define YYVALID_NESTED do { if (yyps->save && \\", 424 " yyps->save->save == 0) goto yyvalid; } while(0)", 425 "#endif /* YYBTYACC */", 426 #endif /* defined(YYBTYACC) */ 427 "", 428 "int", 429 "YYPARSE_DECL()", 430 "{", 431 0 432 }; 433 434 const char *const body_2[] = 435 { 436 " int yym, yyn, yystate, yyresult;", 437 #if defined(YYBTYACC) 438 "#if YYBTYACC", 439 " int yynewerrflag;", 440 " YYParseState *yyerrctx = NULL;", 441 "#endif /* YYBTYACC */", 442 #endif /* defined(YYBTYACC) */ 443 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 444 " YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */", 445 "#endif", 446 "#if YYDEBUG", 447 " const char *yys;", 448 "", 449 " if ((yys = getenv(\"YYDEBUG\")) != NULL)", 450 " {", 451 " yyn = *yys;", 452 " if (yyn >= '0' && yyn <= '9')", 453 " yydebug = yyn - '0';", 454 " }", 455 " if (yydebug)", 456 " fprintf(stderr, \"%sdebug[<# of symbols on state stack>]\\n\", YYPREFIX);", 457 "#endif", 458 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 459 " memset(yyerror_loc_range, 0, sizeof(yyerror_loc_range));", 460 "#endif", 461 "", 462 0 463 }; 464 465 const char *const init_vars[] = 466 { 467 " yyerrflag = 0;", 468 " yychar = 0;", 469 " memset(&yyval, 0, sizeof(yyval));", 470 " memset(&yylval, 0, sizeof(yylval));", 471 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 472 " memset(&yyloc, 0, sizeof(yyloc));", 473 " memset(&yylloc, 0, sizeof(yylloc));", 474 "#endif", 475 "", 476 0 477 }; 478 479 const char *const body_3[] = 480 { 481 #if defined(YYBTYACC) 482 "#if YYBTYACC", 483 " yyps = yyNewState(0); if (yyps == 0) goto yyenomem;", 484 " yyps->save = 0;", 485 "#endif /* YYBTYACC */", 486 #endif /* defined(YYBTYACC) */ 487 " yym = 0;", 488 " /* yyn is set below */", 489 " yynerrs = 0;", 490 " yyerrflag = 0;", 491 " yychar = YYEMPTY;", 492 " yystate = 0;", 493 "", 494 "#if YYPURE", 495 " memset(&yystack, 0, sizeof(yystack));", 496 "#endif", 497 "", 498 " if (yystack.s_base == NULL && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;", 499 " yystack.s_mark = yystack.s_base;", 500 " yystack.l_mark = yystack.l_base;", 501 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 502 " yystack.p_mark = yystack.p_base;", 503 "#endif", 504 " yystate = 0;", 505 " *yystack.s_mark = 0;", 506 "", 507 "yyloop:", 508 " if ((yyn = yydefred[yystate]) != 0) goto yyreduce;", 509 " if (yychar < 0)", 510 " {", 511 #if defined(YYBTYACC) 512 "#if YYBTYACC", 513 " do {", 514 " if (yylvp < yylve)", 515 " {", 516 " /* we're currently re-reading tokens */", 517 " yylval = *yylvp++;", 518 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 519 " yylloc = *yylpp++;", 520 "#endif", 521 " yychar = *yylexp++;", 522 " break;", 523 " }", 524 " if (yyps->save)", 525 " {", 526 " /* in trial mode; save scanner results for future parse attempts */", 527 " if (yylvp == yylvlim)", 528 " { /* Enlarge lexical value queue */", 529 " size_t p = (size_t) (yylvp - yylvals);", 530 " size_t s = (size_t) (yylvlim - yylvals);", 531 "", 532 " s += YYLVQUEUEGROWTH;", 533 " if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;", 534 " if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;", 535 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 536 " if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;", 537 "#endif", 538 " yylvp = yylve = yylvals + p;", 539 " yylvlim = yylvals + s;", 540 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 541 " yylpp = yylpe = yylpsns + p;", 542 " yylplim = yylpsns + s;", 543 "#endif", 544 " yylexp = yylexemes + p;", 545 " }", 546 " *yylexp = (YYINT) YYLEX;", 547 " *yylvp++ = yylval;", 548 " yylve++;", 549 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 550 " *yylpp++ = yylloc;", 551 " yylpe++;", 552 "#endif", 553 " yychar = *yylexp++;", 554 " break;", 555 " }", 556 " /* normal operation, no conflict encountered */", 557 "#endif /* YYBTYACC */", 558 #endif /* defined(YYBTYACC) */ 559 " yychar = YYLEX;", 560 #if defined(YYBTYACC) 561 "#if YYBTYACC", 562 " } while (0);", 563 "#endif /* YYBTYACC */", 564 #endif /* defined(YYBTYACC) */ 565 " if (yychar < 0) yychar = YYEOF;", 566 "#if YYDEBUG", 567 " if (yydebug)", 568 " {", 569 " if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];", 570 " fprintf(stderr, \"%s[%d]: state %d, reading token %d (%s)\",", 571 " YYDEBUGSTR, yydepth, yystate, yychar, yys);", 572 "#ifdef YYSTYPE_TOSTRING", 573 #if defined(YYBTYACC) 574 "#if YYBTYACC", 575 " if (!yytrial)", 576 "#endif /* YYBTYACC */", 577 #endif /* defined(YYBTYACC) */ 578 " fprintf(stderr, \" <%s>\", YYSTYPE_TOSTRING(yychar, yylval));", 579 "#endif", 580 " fputc('\\n', stderr);", 581 " }", 582 "#endif", 583 " }", 584 #if defined(YYBTYACC) 585 "#if YYBTYACC", 586 "", 587 " /* Do we have a conflict? */", 588 " if (((yyn = yycindex[yystate]) != 0) && (yyn += yychar) >= 0 &&", 589 " yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)", 590 " {", 591 " YYINT ctry;", 592 "", 593 " if (yypath)", 594 " {", 595 " YYParseState *save;", 596 "#if YYDEBUG", 597 " if (yydebug)", 598 " fprintf(stderr, \"%s[%d]: CONFLICT in state %d: following successful trial parse\\n\",", 599 " YYDEBUGSTR, yydepth, yystate);", 600 "#endif", 601 " /* Switch to the next conflict context */", 602 " save = yypath;", 603 " yypath = save->save;", 604 " save->save = NULL;", 605 " ctry = save->ctry;", 606 " if (save->state != yystate) YYABORT;", 607 " yyFreeState(save);", 608 "", 609 " }", 610 " else", 611 " {", 612 "", 613 " /* Unresolved conflict - start/continue trial parse */", 614 " YYParseState *save;", 615 "#if YYDEBUG", 616 " if (yydebug)", 617 " {", 618 " fprintf(stderr, \"%s[%d]: CONFLICT in state %d. \", YYDEBUGSTR, yydepth, yystate);", 619 " if (yyps->save)", 620 " fputs(\"ALREADY in conflict, continuing trial parse.\\n\", stderr);", 621 " else", 622 " fputs(\"Starting trial parse.\\n\", stderr);", 623 " }", 624 "#endif", 625 " save = yyNewState((unsigned)(yystack.s_mark - yystack.s_base + 1));", 626 " if (save == NULL) goto yyenomem;", 627 " save->save = yyps->save;", 628 " save->state = yystate;", 629 " save->errflag = yyerrflag;", 630 " save->yystack.s_mark = save->yystack.s_base + (yystack.s_mark - yystack.s_base);", 631 " memcpy (save->yystack.s_base, yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));", 632 " save->yystack.l_mark = save->yystack.l_base + (yystack.l_mark - yystack.l_base);", 633 " memcpy (save->yystack.l_base, yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));", 634 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 635 " save->yystack.p_mark = save->yystack.p_base + (yystack.p_mark - yystack.p_base);", 636 " memcpy (save->yystack.p_base, yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));", 637 "#endif", 638 " ctry = yytable[yyn];", 639 " if (yyctable[ctry] == -1)", 640 " {", 641 "#if YYDEBUG", 642 " if (yydebug && yychar >= YYEOF)", 643 " fprintf(stderr, \"%s[%d]: backtracking 1 token\\n\", YYDEBUGSTR, yydepth);", 644 "#endif", 645 " ctry++;", 646 " }", 647 " save->ctry = ctry;", 648 " if (yyps->save == NULL)", 649 " {", 650 " /* If this is a first conflict in the stack, start saving lexemes */", 651 " if (!yylexemes)", 652 " {", 653 " yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));", 654 " if (yylexemes == NULL) goto yyenomem;", 655 " yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));", 656 " if (yylvals == NULL) goto yyenomem;", 657 " yylvlim = yylvals + YYLVQUEUEGROWTH;", 658 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 659 " yylpsns = (YYLTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYLTYPE));", 660 " if (yylpsns == NULL) goto yyenomem;", 661 " yylplim = yylpsns + YYLVQUEUEGROWTH;", 662 "#endif", 663 " }", 664 " if (yylvp == yylve)", 665 " {", 666 " yylvp = yylve = yylvals;", 667 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 668 " yylpp = yylpe = yylpsns;", 669 "#endif", 670 " yylexp = yylexemes;", 671 " if (yychar >= YYEOF)", 672 " {", 673 " *yylve++ = yylval;", 674 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 675 " *yylpe++ = yylloc;", 676 "#endif", 677 " *yylexp = (YYINT) yychar;", 678 " yychar = YYEMPTY;", 679 " }", 680 " }", 681 " }", 682 " if (yychar >= YYEOF)", 683 " {", 684 " yylvp--;", 685 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 686 " yylpp--;", 687 "#endif", 688 " yylexp--;", 689 " yychar = YYEMPTY;", 690 " }", 691 " save->lexeme = (int) (yylvp - yylvals);", 692 " yyps->save = save;", 693 " }", 694 " if (yytable[yyn] == ctry)", 695 " {", 696 "#if YYDEBUG", 697 " if (yydebug)", 698 " fprintf(stderr, \"%s[%d]: state %d, shifting to state %d\\n\",", 699 " YYDEBUGSTR, yydepth, yystate, yyctable[ctry]);", 700 "#endif", 701 " if (yychar < 0)", 702 " {", 703 " yylvp++;", 704 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 705 " yylpp++;", 706 "#endif", 707 " yylexp++;", 708 " }", 709 " if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM)", 710 " goto yyoverflow;", 711 " yystate = yyctable[ctry];", 712 " *++yystack.s_mark = (YYINT) yystate;", 713 " *++yystack.l_mark = yylval;", 714 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 715 " *++yystack.p_mark = yylloc;", 716 "#endif", 717 " yychar = YYEMPTY;", 718 " if (yyerrflag > 0) --yyerrflag;", 719 " goto yyloop;", 720 " }", 721 " else", 722 " {", 723 " yyn = yyctable[ctry];", 724 " goto yyreduce;", 725 " }", 726 " } /* End of code dealing with conflicts */", 727 "#endif /* YYBTYACC */", 728 #endif /* defined(YYBTYACC) */ 729 " if (((yyn = yysindex[yystate]) != 0) && (yyn += yychar) >= 0 &&", 730 " yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)", 731 " {", 732 "#if YYDEBUG", 733 " if (yydebug)", 734 " fprintf(stderr, \"%s[%d]: state %d, shifting to state %d\\n\",", 735 " YYDEBUGSTR, yydepth, yystate, yytable[yyn]);", 736 "#endif", 737 " if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;", 738 " yystate = yytable[yyn];", 739 " *++yystack.s_mark = yytable[yyn];", 740 " *++yystack.l_mark = yylval;", 741 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 742 " *++yystack.p_mark = yylloc;", 743 "#endif", 744 " yychar = YYEMPTY;", 745 " if (yyerrflag > 0) --yyerrflag;", 746 " goto yyloop;", 747 " }", 748 " if (((yyn = yyrindex[yystate]) != 0) && (yyn += yychar) >= 0 &&", 749 " yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)", 750 " {", 751 " yyn = yytable[yyn];", 752 " goto yyreduce;", 753 " }", 754 " if (yyerrflag != 0) goto yyinrecovery;", 755 #if defined(YYBTYACC) 756 "#if YYBTYACC", 757 "", 758 " yynewerrflag = 1;", 759 " goto yyerrhandler;", 760 " goto yyerrlab; /* redundant goto avoids 'unused label' warning */", 761 "", 762 "yyerrlab:", 763 " /* explicit YYERROR from an action -- pop the rhs of the rule reduced", 764 " * before looking for error recovery */", 765 " yystack.s_mark -= yym;", 766 " yystate = *yystack.s_mark;", 767 " yystack.l_mark -= yym;", 768 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 769 " yystack.p_mark -= yym;", 770 "#endif", 771 "", 772 " yynewerrflag = 0;", 773 "yyerrhandler:", 774 " while (yyps->save)", 775 " {", 776 " int ctry;", 777 " YYParseState *save = yyps->save;", 778 "#if YYDEBUG", 779 " if (yydebug)", 780 " fprintf(stderr, \"%s[%d]: ERROR in state %d, CONFLICT BACKTRACKING to state %d, %d tokens\\n\",", 781 " YYDEBUGSTR, yydepth, yystate, yyps->save->state,", 782 " (int)(yylvp - yylvals - yyps->save->lexeme));", 783 "#endif", 784 " /* Memorize most forward-looking error state in case it's really an error. */", 785 " if (yyerrctx == NULL || yyerrctx->lexeme < yylvp - yylvals)", 786 " {", 787 " /* Free old saved error context state */", 788 " if (yyerrctx) yyFreeState(yyerrctx);", 789 " /* Create and fill out new saved error context state */", 790 " yyerrctx = yyNewState((unsigned)(yystack.s_mark - yystack.s_base + 1));", 791 " if (yyerrctx == NULL) goto yyenomem;", 792 " yyerrctx->save = yyps->save;", 793 " yyerrctx->state = yystate;", 794 " yyerrctx->errflag = yyerrflag;", 795 " yyerrctx->yystack.s_mark = yyerrctx->yystack.s_base + (yystack.s_mark - yystack.s_base);", 796 " memcpy (yyerrctx->yystack.s_base, yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));", 797 " yyerrctx->yystack.l_mark = yyerrctx->yystack.l_base + (yystack.l_mark - yystack.l_base);", 798 " memcpy (yyerrctx->yystack.l_base, yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));", 799 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 800 " yyerrctx->yystack.p_mark = yyerrctx->yystack.p_base + (yystack.p_mark - yystack.p_base);", 801 " memcpy (yyerrctx->yystack.p_base, yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));", 802 "#endif", 803 " yyerrctx->lexeme = (int) (yylvp - yylvals);", 804 " }", 805 " yylvp = yylvals + save->lexeme;", 806 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 807 " yylpp = yylpsns + save->lexeme;", 808 "#endif", 809 " yylexp = yylexemes + save->lexeme;", 810 " yychar = YYEMPTY;", 811 " yystack.s_mark = yystack.s_base + (save->yystack.s_mark - save->yystack.s_base);", 812 " memcpy (yystack.s_base, save->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));", 813 " yystack.l_mark = yystack.l_base + (save->yystack.l_mark - save->yystack.l_base);", 814 " memcpy (yystack.l_base, save->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));", 815 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 816 " yystack.p_mark = yystack.p_base + (save->yystack.p_mark - save->yystack.p_base);", 817 " memcpy (yystack.p_base, save->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));", 818 "#endif", 819 " ctry = ++save->ctry;", 820 " yystate = save->state;", 821 " /* We tried shift, try reduce now */", 822 " if ((yyn = yyctable[ctry]) >= 0) goto yyreduce;", 823 " yyps->save = save->save;", 824 " save->save = NULL;", 825 " yyFreeState(save);", 826 "", 827 " /* Nothing left on the stack -- error */", 828 " if (!yyps->save)", 829 " {", 830 "#if YYDEBUG", 831 " if (yydebug)", 832 " fprintf(stderr, \"%sdebug[%d,trial]: trial parse FAILED, entering ERROR mode\\n\",", 833 " YYPREFIX, yydepth);", 834 "#endif", 835 " /* Restore state as it was in the most forward-advanced error */", 836 " yylvp = yylvals + yyerrctx->lexeme;", 837 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 838 " yylpp = yylpsns + yyerrctx->lexeme;", 839 "#endif", 840 " yylexp = yylexemes + yyerrctx->lexeme;", 841 " yychar = yylexp[-1];", 842 " yylval = yylvp[-1];", 843 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 844 " yylloc = yylpp[-1];", 845 "#endif", 846 " yystack.s_mark = yystack.s_base + (yyerrctx->yystack.s_mark - yyerrctx->yystack.s_base);", 847 " memcpy (yystack.s_base, yyerrctx->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));", 848 " yystack.l_mark = yystack.l_base + (yyerrctx->yystack.l_mark - yyerrctx->yystack.l_base);", 849 " memcpy (yystack.l_base, yyerrctx->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));", 850 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 851 " yystack.p_mark = yystack.p_base + (yyerrctx->yystack.p_mark - yyerrctx->yystack.p_base);", 852 " memcpy (yystack.p_base, yyerrctx->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));", 853 "#endif", 854 " yystate = yyerrctx->state;", 855 " yyFreeState(yyerrctx);", 856 " yyerrctx = NULL;", 857 " }", 858 " yynewerrflag = 1;", 859 " }", 860 " if (yynewerrflag == 0) goto yyinrecovery;", 861 "#endif /* YYBTYACC */", 862 #endif /* defined(YYBTYACC) */ 863 "", 864 " YYERROR_CALL(\"syntax error\");", 865 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 866 " yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */", 867 "#endif", 868 "", 869 "#if !YYBTYACC", 870 " goto yyerrlab; /* redundant goto avoids 'unused label' warning */", 871 "yyerrlab:", 872 "#endif", 873 " ++yynerrs;", 874 "", 875 "yyinrecovery:", 876 " if (yyerrflag < 3)", 877 " {", 878 " yyerrflag = 3;", 879 " for (;;)", 880 " {", 881 " if (((yyn = yysindex[*yystack.s_mark]) != 0) && (yyn += YYERRCODE) >= 0 &&", 882 " yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) YYERRCODE)", 883 " {", 884 "#if YYDEBUG", 885 " if (yydebug)", 886 " fprintf(stderr, \"%s[%d]: state %d, error recovery shifting to state %d\\n\",", 887 " YYDEBUGSTR, yydepth, *yystack.s_mark, yytable[yyn]);", 888 "#endif", 889 " if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;", 890 " yystate = yytable[yyn];", 891 " *++yystack.s_mark = yytable[yyn];", 892 " *++yystack.l_mark = yylval;", 893 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 894 " /* lookahead position is error end position */", 895 " yyerror_loc_range[2] = yylloc;", 896 " YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */", 897 " *++yystack.p_mark = yyloc;", 898 "#endif", 899 " goto yyloop;", 900 " }", 901 " else", 902 " {", 903 "#if YYDEBUG", 904 " if (yydebug)", 905 " fprintf(stderr, \"%s[%d]: error recovery discarding state %d\\n\",", 906 " YYDEBUGSTR, yydepth, *yystack.s_mark);", 907 "#endif", 908 " if (yystack.s_mark <= yystack.s_base) goto yyabort;", 909 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 910 " /* the current TOS position is the error start position */", 911 " yyerror_loc_range[1] = *yystack.p_mark;", 912 "#endif", 913 "#if defined(YYDESTRUCT_CALL)", 914 #if defined(YYBTYACC) 915 "#if YYBTYACC", 916 " if (!yytrial)", 917 "#endif /* YYBTYACC */", 918 #endif /* defined(YYBTYACC) */ 919 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 920 " YYDESTRUCT_CALL(\"error: discarding state\",", 921 " yystos[*yystack.s_mark], yystack.l_mark, yystack.p_mark);", 922 "#else", 923 " YYDESTRUCT_CALL(\"error: discarding state\",", 924 " yystos[*yystack.s_mark], yystack.l_mark);", 925 "#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */", 926 "#endif /* defined(YYDESTRUCT_CALL) */", 927 " --yystack.s_mark;", 928 " --yystack.l_mark;", 929 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 930 " --yystack.p_mark;", 931 "#endif", 932 " }", 933 " }", 934 " }", 935 " else", 936 " {", 937 " if (yychar == YYEOF) goto yyabort;", 938 "#if YYDEBUG", 939 " if (yydebug)", 940 " {", 941 " if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];", 942 " fprintf(stderr, \"%s[%d]: state %d, error recovery discarding token %d (%s)\\n\",", 943 " YYDEBUGSTR, yydepth, yystate, yychar, yys);", 944 " }", 945 "#endif", 946 "#if defined(YYDESTRUCT_CALL)", 947 #if defined(YYBTYACC) 948 "#if YYBTYACC", 949 " if (!yytrial)", 950 "#endif /* YYBTYACC */", 951 #endif /* defined(YYBTYACC) */ 952 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 953 " YYDESTRUCT_CALL(\"error: discarding token\", yychar, &yylval, &yylloc);", 954 "#else", 955 " YYDESTRUCT_CALL(\"error: discarding token\", yychar, &yylval);", 956 "#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */", 957 "#endif /* defined(YYDESTRUCT_CALL) */", 958 " yychar = YYEMPTY;", 959 " goto yyloop;", 960 " }", 961 "", 962 "yyreduce:", 963 " yym = yylen[yyn];", 964 "#if YYDEBUG", 965 " if (yydebug)", 966 " {", 967 " fprintf(stderr, \"%s[%d]: state %d, reducing by rule %d (%s)\",", 968 " YYDEBUGSTR, yydepth, yystate, yyn, yyrule[yyn]);", 969 "#ifdef YYSTYPE_TOSTRING", 970 #if defined(YYBTYACC) 971 "#if YYBTYACC", 972 " if (!yytrial)", 973 "#endif /* YYBTYACC */", 974 #endif /* defined(YYBTYACC) */ 975 " if (yym > 0)", 976 " {", 977 " int i;", 978 " fputc('<', stderr);", 979 " for (i = yym; i > 0; i--)", 980 " {", 981 " if (i != yym) fputs(\", \", stderr);", 982 " fputs(YYSTYPE_TOSTRING(yystos[yystack.s_mark[1-i]],", 983 " yystack.l_mark[1-i]), stderr);", 984 " }", 985 " fputc('>', stderr);", 986 " }", 987 "#endif", 988 " fputc('\\n', stderr);", 989 " }", 990 "#endif", 991 " if (yym > 0)", 992 " yyval = yystack.l_mark[1-yym];", 993 " else", 994 " memset(&yyval, 0, sizeof yyval);", 995 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 996 "", 997 " /* Perform position reduction */", 998 " memset(&yyloc, 0, sizeof(yyloc));", 999 #if defined(YYBTYACC) 1000 "#if YYBTYACC", 1001 " if (!yytrial)", 1002 "#endif /* YYBTYACC */", 1003 #endif /* defined(YYBTYACC) */ 1004 " {", 1005 " YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);", 1006 " /* just in case YYERROR is invoked within the action, save", 1007 " the start of the rhs as the error start position */", 1008 " yyerror_loc_range[1] = yystack.p_mark[1-yym];", 1009 " }", 1010 "#endif", 1011 "", 1012 " switch (yyn)", 1013 " {", 1014 0 1015 }; 1016 1017 const char *const trailer[] = 1018 { 1019 " default:", 1020 " break;", 1021 " }", 1022 " yystack.s_mark -= yym;", 1023 " yystate = *yystack.s_mark;", 1024 " yystack.l_mark -= yym;", 1025 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 1026 " yystack.p_mark -= yym;", 1027 "#endif", 1028 " yym = yylhs[yyn];", 1029 " if (yystate == 0 && yym == 0)", 1030 " {", 1031 "#if YYDEBUG", 1032 " if (yydebug)", 1033 " {", 1034 " fprintf(stderr, \"%s[%d]: after reduction, \", YYDEBUGSTR, yydepth);", 1035 "#ifdef YYSTYPE_TOSTRING", 1036 #if defined(YYBTYACC) 1037 "#if YYBTYACC", 1038 " if (!yytrial)", 1039 "#endif /* YYBTYACC */", 1040 #endif /* defined(YYBTYACC) */ 1041 " fprintf(stderr, \"result is <%s>, \", YYSTYPE_TOSTRING(yystos[YYFINAL], yyval));", 1042 "#endif", 1043 " fprintf(stderr, \"shifting from state 0 to final state %d\\n\", YYFINAL);", 1044 " }", 1045 "#endif", 1046 " yystate = YYFINAL;", 1047 " *++yystack.s_mark = YYFINAL;", 1048 " *++yystack.l_mark = yyval;", 1049 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 1050 " *++yystack.p_mark = yyloc;", 1051 "#endif", 1052 " if (yychar < 0)", 1053 " {", 1054 #if defined(YYBTYACC) 1055 "#if YYBTYACC", 1056 " do {", 1057 " if (yylvp < yylve)", 1058 " {", 1059 " /* we're currently re-reading tokens */", 1060 " yylval = *yylvp++;", 1061 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 1062 " yylloc = *yylpp++;", 1063 "#endif", 1064 " yychar = *yylexp++;", 1065 " break;", 1066 " }", 1067 " if (yyps->save)", 1068 " {", 1069 " /* in trial mode; save scanner results for future parse attempts */", 1070 " if (yylvp == yylvlim)", 1071 " { /* Enlarge lexical value queue */", 1072 " size_t p = (size_t) (yylvp - yylvals);", 1073 " size_t s = (size_t) (yylvlim - yylvals);", 1074 "", 1075 " s += YYLVQUEUEGROWTH;", 1076 " if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)", 1077 " goto yyenomem;", 1078 " if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)", 1079 " goto yyenomem;", 1080 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 1081 " if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)", 1082 " goto yyenomem;", 1083 "#endif", 1084 " yylvp = yylve = yylvals + p;", 1085 " yylvlim = yylvals + s;", 1086 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 1087 " yylpp = yylpe = yylpsns + p;", 1088 " yylplim = yylpsns + s;", 1089 "#endif", 1090 " yylexp = yylexemes + p;", 1091 " }", 1092 " *yylexp = (YYINT) YYLEX;", 1093 " *yylvp++ = yylval;", 1094 " yylve++;", 1095 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 1096 " *yylpp++ = yylloc;", 1097 " yylpe++;", 1098 "#endif", 1099 " yychar = *yylexp++;", 1100 " break;", 1101 " }", 1102 " /* normal operation, no conflict encountered */", 1103 "#endif /* YYBTYACC */", 1104 #endif /* defined(YYBTYACC) */ 1105 " yychar = YYLEX;", 1106 #if defined(YYBTYACC) 1107 "#if YYBTYACC", 1108 " } while (0);", 1109 "#endif /* YYBTYACC */", 1110 #endif /* defined(YYBTYACC) */ 1111 " if (yychar < 0) yychar = YYEOF;", 1112 "#if YYDEBUG", 1113 " if (yydebug)", 1114 " {", 1115 " if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];", 1116 " fprintf(stderr, \"%s[%d]: state %d, reading token %d (%s)\\n\",", 1117 " YYDEBUGSTR, yydepth, YYFINAL, yychar, yys);", 1118 " }", 1119 "#endif", 1120 " }", 1121 " if (yychar == YYEOF) goto yyaccept;", 1122 " goto yyloop;", 1123 " }", 1124 " if (((yyn = yygindex[yym]) != 0) && (yyn += yystate) >= 0 &&", 1125 " yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yystate)", 1126 " yystate = yytable[yyn];", 1127 " else", 1128 " yystate = yydgoto[yym];", 1129 "#if YYDEBUG", 1130 " if (yydebug)", 1131 " {", 1132 " fprintf(stderr, \"%s[%d]: after reduction, \", YYDEBUGSTR, yydepth);", 1133 "#ifdef YYSTYPE_TOSTRING", 1134 #if defined(YYBTYACC) 1135 "#if YYBTYACC", 1136 " if (!yytrial)", 1137 "#endif /* YYBTYACC */", 1138 #endif /* defined(YYBTYACC) */ 1139 " fprintf(stderr, \"result is <%s>, \", YYSTYPE_TOSTRING(yystos[yystate], yyval));", 1140 "#endif", 1141 " fprintf(stderr, \"shifting from state %d to state %d\\n\", *yystack.s_mark, yystate);", 1142 " }", 1143 "#endif", 1144 " if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;", 1145 " *++yystack.s_mark = (YYINT) yystate;", 1146 " *++yystack.l_mark = yyval;", 1147 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 1148 " *++yystack.p_mark = yyloc;", 1149 "#endif", 1150 " goto yyloop;", 1151 #if defined(YYBTYACC) 1152 "#if YYBTYACC", 1153 "", 1154 " /* Reduction declares that this path is valid. Set yypath and do a full parse */", 1155 "yyvalid:", 1156 " if (yypath) YYABORT;", 1157 " while (yyps->save)", 1158 " {", 1159 " YYParseState *save = yyps->save;", 1160 " yyps->save = save->save;", 1161 " save->save = yypath;", 1162 " yypath = save;", 1163 " }", 1164 "#if YYDEBUG", 1165 " if (yydebug)", 1166 " fprintf(stderr, \"%s[%d]: state %d, CONFLICT trial successful, backtracking to state %d, %d tokens\\n\",", 1167 " YYDEBUGSTR, yydepth, yystate, yypath->state, (int)(yylvp - yylvals - yypath->lexeme));", 1168 "#endif", 1169 " if (yyerrctx)", 1170 " {", 1171 " yyFreeState(yyerrctx);", 1172 " yyerrctx = NULL;", 1173 " }", 1174 " yylvp = yylvals + yypath->lexeme;", 1175 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 1176 " yylpp = yylpsns + yypath->lexeme;", 1177 "#endif", 1178 " yylexp = yylexemes + yypath->lexeme;", 1179 " yychar = YYEMPTY;", 1180 " yystack.s_mark = yystack.s_base + (yypath->yystack.s_mark - yypath->yystack.s_base);", 1181 " memcpy (yystack.s_base, yypath->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));", 1182 " yystack.l_mark = yystack.l_base + (yypath->yystack.l_mark - yypath->yystack.l_base);", 1183 " memcpy (yystack.l_base, yypath->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));", 1184 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 1185 " yystack.p_mark = yystack.p_base + (yypath->yystack.p_mark - yypath->yystack.p_base);", 1186 " memcpy (yystack.p_base, yypath->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));", 1187 "#endif", 1188 " yystate = yypath->state;", 1189 " goto yyloop;", 1190 "#endif /* YYBTYACC */", 1191 #endif /* defined(YYBTYACC) */ 1192 "", 1193 "yyoverflow:", 1194 " YYERROR_CALL(\"yacc stack overflow\");", 1195 #if defined(YYBTYACC) 1196 "#if YYBTYACC", 1197 " goto yyabort_nomem;", 1198 "yyenomem:", 1199 " YYERROR_CALL(\"memory exhausted\");", 1200 "yyabort_nomem:", 1201 "#endif /* YYBTYACC */", 1202 #endif /* defined(YYBTYACC) */ 1203 " yyresult = 2;", 1204 " goto yyreturn;", 1205 "", 1206 "yyabort:", 1207 " yyresult = 1;", 1208 " goto yyreturn;", 1209 "", 1210 "yyaccept:", 1211 #if defined(YYBTYACC) 1212 "#if YYBTYACC", 1213 " if (yyps->save) goto yyvalid;", 1214 "#endif /* YYBTYACC */", 1215 #endif /* defined(YYBTYACC) */ 1216 " yyresult = 0;", 1217 "", 1218 "yyreturn:", 1219 "#if defined(YYDESTRUCT_CALL)", 1220 " if (yychar != YYEOF && yychar != YYEMPTY)", 1221 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 1222 " YYDESTRUCT_CALL(\"cleanup: discarding token\", yychar, &yylval, &yylloc);", 1223 "#else", 1224 " YYDESTRUCT_CALL(\"cleanup: discarding token\", yychar, &yylval);", 1225 "#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */", 1226 "", 1227 " {", 1228 " YYSTYPE *pv;", 1229 "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 1230 " YYLTYPE *pp;", 1231 "", 1232 " for (pv = yystack.l_base, pp = yystack.p_base; pv <= yystack.l_mark; ++pv, ++pp)", 1233 " YYDESTRUCT_CALL(\"cleanup: discarding state\",", 1234 " yystos[*(yystack.s_base + (pv - yystack.l_base))], pv, pp);", 1235 "#else", 1236 " for (pv = yystack.l_base; pv <= yystack.l_mark; ++pv)", 1237 " YYDESTRUCT_CALL(\"cleanup: discarding state\",", 1238 " yystos[*(yystack.s_base + (pv - yystack.l_base))], pv);", 1239 "#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */", 1240 " }", 1241 "#endif /* defined(YYDESTRUCT_CALL) */", 1242 "", 1243 #if defined(YYBTYACC) 1244 "#if YYBTYACC", 1245 " if (yyerrctx)", 1246 " {", 1247 " yyFreeState(yyerrctx);", 1248 " yyerrctx = NULL;", 1249 " }", 1250 " while (yyps)", 1251 " {", 1252 " YYParseState *save = yyps;", 1253 " yyps = save->save;", 1254 " save->save = NULL;", 1255 " yyFreeState(save);", 1256 " }", 1257 " while (yypath)", 1258 " {", 1259 " YYParseState *save = yypath;", 1260 " yypath = save->save;", 1261 " save->save = NULL;", 1262 " yyFreeState(save);", 1263 " }", 1264 "#endif /* YYBTYACC */", 1265 #endif /* defined(YYBTYACC) */ 1266 " yyfreestack(&yystack);", 1267 " return (yyresult);", 1268 "}", 1269 0 1270 }; 1271 1272 void 1273 write_section(FILE * fp, const char *const section[]) 1274 { 1275 int i; 1276 const char *s; 1277 1278 for (i = 0; (s = section[i]) != 0; ++i) 1279 { 1280 if (fp == code_file) 1281 ++outline; 1282 fprintf(fp, "%s\n", s); 1283 } 1284 } 1285