Changeset 2415 for trunk/src/kash/generated/arith.c
- Timestamp:
- Sep 14, 2010, 1:13:20 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kash/generated/arith.c
r1233 r2415 1 1 #ifndef lint 2 /*static char yysccsid[] = "from: @(#)yaccpar 1.9 (Berkeley) 02/21/93";*/ 3 static char yyrcsid[] = "$Id$"; 4 #endif 2 static const char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93"; 3 #endif 4 5 #include <stdlib.h> 6 #include <string.h> 7 5 8 #define YYBYACC 1 6 9 #define YYMAJOR 1 7 10 #define YYMINOR 9 8 #define yyclearin (yychar=(-1)) 9 #define yyerrok (yyerrflag=0) 10 #define YYRECOVERING (yyerrflag!=0) 11 #define YYPATCH 20091027 12 13 #define YYEMPTY (-1) 14 #define yyclearin (yychar = YYEMPTY) 15 #define yyerrok (yyerrflag = 0) 16 #define YYRECOVERING() (yyerrflag != 0) 17 18 /* compatibility with bison */ 19 #ifdef YYPARSE_PARAM 20 /* compatibility with FreeBSD */ 21 #ifdef YYPARSE_PARAM_TYPE 22 #define YYPARSE_DECL() yyparse(YYPARSE_PARAM_TYPE YYPARSE_PARAM) 23 #else 24 #define YYPARSE_DECL() yyparse(void *YYPARSE_PARAM) 25 #endif 26 #else 27 #define YYPARSE_DECL() yyparse(void) 28 #endif /* YYPARSE_PARAM */ 29 30 extern int YYPARSE_DECL(); 31 32 static int yygrowstack(void); 11 33 #define YYPREFIX "yy" 12 34 /* $NetBSD: arith.y,v 1.17 2003/09/17 17:33:36 jmmv Exp $ */ … … 67 89 int main(int , char *[]); 68 90 int error(char *); 91 #else 92 # undef malloc 93 # define malloc(cb) sh_malloc(NULL, (cb)) 94 # undef realloc 95 # define realloc(pv,cb) sh_realloc(NULL, (pv), (cb)) 96 # undef free 97 # define free(pv) sh_free(NULL, (pv)) 69 98 #endif 70 99 … … 95 124 #define ARITH_BNOT 281 96 125 #define YYERRCODE 256 97 s hort yylhs[] = {-1,126 static const short yylhs[] = { -1, 98 127 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 99 128 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 100 129 1, 1, 1, 1, 1, 101 130 }; 102 s hort yylen[] = {2,131 static const short yylen[] = { 2, 103 132 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 104 133 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 105 134 2, 2, 2, 2, 1, 106 135 }; 107 s hort yydefred[] = {0,136 static const short yydefred[] = { 0, 108 137 25, 0, 0, 0, 0, 0, 0, 0, 0, 24, 109 138 23, 21, 22, 0, 0, 0, 0, 0, 0, 0, … … 112 141 0, 0, 0, 0, 0, 0, 0, 18, 19, 20, 113 142 }; 114 s hort yydgoto[] = {7,143 static const short yydgoto[] = { 7, 115 144 8, 116 145 }; 117 s hort yysindex[] = {-255,146 static const short yysindex[] = { -255, 118 147 0, -255, -255, -255, -255, -255, 0, -67, -85, 0, 119 148 0, 0, 0, -255, -255, -255, -255, -255, -255, -255, … … 122 151 -223, -223, -223, -253, -253, -248, -248, 0, 0, 0, 123 152 }; 124 s hort yyrindex[] = {0,153 static const short yyrindex[] = { 0, 125 154 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 126 155 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, … … 129 158 73, 85, 97, 33, 47, 1, 17, 0, 0, 0, 130 159 }; 131 s hort yygindex[] = {0,160 static const short yygindex[] = { 0, 132 161 142, 133 162 }; 134 163 #define YYTABLESIZE 418 135 s hort yytable[] = {0,164 static const short yytable[] = { 0, 136 165 16, 1, 2, 19, 20, 21, 22, 23, 24, 25, 137 166 26, 27, 28, 29, 30, 31, 17, 3, 4, 27, … … 177 206 24, 25, 26, 27, 28, 29, 30, 31, 178 207 }; 179 s hort yycheck[] = {-1,208 static const short yycheck[] = { -1, 180 209 0, 257, 258, 265, 266, 267, 268, 269, 270, 271, 181 210 272, 273, 274, 275, 276, 277, 0, 273, 274, 273, … … 227 256 #define YYMAXTOKEN 281 228 257 #if YYDEBUG 229 char *yyname[] = { 258 static const char *yyname[] = { 259 230 260 "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, 231 261 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, … … 240 270 "ARITH_REM","ARITH_UNARYMINUS","ARITH_UNARYPLUS","ARITH_NOT","ARITH_BNOT", 241 271 }; 242 char *yyrule[] = {272 static const char *yyrule[] = { 243 273 "$accept : exp", 244 274 "exp : expr", … … 267 297 "expr : ARITH_ADD expr", 268 298 "expr : ARITH_NUM", 299 269 300 }; 270 301 #endif … … 272 303 typedef int YYSTYPE; 273 304 #endif 305 #if YYDEBUG 306 #include <stdio.h> 307 #endif 308 309 /* define the initial stack-sizes */ 274 310 #ifdef YYSTACKSIZE 275 311 #undef YYMAXDEPTH 276 #define YYMAXDEPTH YYSTACKSIZE312 #define YYMAXDEPTH YYSTACKSIZE 277 313 #else 278 314 #ifdef YYMAXDEPTH … … 280 316 #else 281 317 #define YYSTACKSIZE 500 282 #define YYMAXDEPTH 500 283 #endif 284 #endif 285 int yydebug; 286 int yynerrs; 287 int yyerrflag; 288 int yychar; 289 short *yyssp; 318 #define YYMAXDEPTH 500 319 #endif 320 #endif 321 322 #define YYINITSTACKSIZE 500 323 324 int yydebug; 325 int yynerrs; 326 int yyerrflag; 327 int yychar; 328 short *yyssp; 290 329 YYSTYPE *yyvsp; 291 YYSTYPE yyval; 292 YYSTYPE yylval; 293 short yyss[YYSTACKSIZE]; 294 YYSTYPE yyvs[YYSTACKSIZE]; 295 #define yystacksize YYSTACKSIZE 330 YYSTYPE yyval; 331 YYSTYPE yylval; 332 333 /* variables for the parser stack */ 334 static short *yyss; 335 static short *yysslim; 336 static YYSTYPE *yyvs; 337 static unsigned yystacksize; 296 338 int 297 339 arith(shinstance *psh, const char *s) … … 370 412 yyerror(const char *s) 371 413 { 372 shinstance *psh = arith_psh; 414 shinstance *psh = arith_psh; 415 #ifndef YYBISON /* yyerrok references yyerrstatus which is a local variable in yyparse().*/ 373 416 yyerrok; 417 #endif 374 418 yyclearin; 375 419 arith_lex_reset(); /* reprime lex */ … … 378 422 /* NOTREACHED */ 379 423 } 380 #define YYABORT goto yyabort 424 /* allocate initial stack or double stack size, up to YYMAXDEPTH */ 425 static int yygrowstack(void) 426 { 427 int i; 428 unsigned newsize; 429 short *newss; 430 YYSTYPE *newvs; 431 432 if ((newsize = yystacksize) == 0) 433 newsize = YYINITSTACKSIZE; 434 else if (newsize >= YYMAXDEPTH) 435 return -1; 436 else if ((newsize *= 2) > YYMAXDEPTH) 437 newsize = YYMAXDEPTH; 438 439 i = yyssp - yyss; 440 newss = (yyss != 0) 441 ? (short *)realloc(yyss, newsize * sizeof(*newss)) 442 : (short *)malloc(newsize * sizeof(*newss)); 443 if (newss == 0) 444 return -1; 445 446 yyss = newss; 447 yyssp = newss + i; 448 newvs = (yyvs != 0) 449 ? (YYSTYPE *)realloc(yyvs, newsize * sizeof(*newvs)) 450 : (YYSTYPE *)malloc(newsize * sizeof(*newvs)); 451 if (newvs == 0) 452 return -1; 453 454 yyvs = newvs; 455 yyvsp = newvs + i; 456 yystacksize = newsize; 457 yysslim = yyss + newsize - 1; 458 return 0; 459 } 460 461 #define YYABORT goto yyabort 381 462 #define YYREJECT goto yyabort 382 463 #define YYACCEPT goto yyaccept 383 #define YYERROR goto yyerrlab 384 #ifdef __cplusplus 385 extern "C" { 386 char * getenv(); 387 int yylex(); 388 int yyparse(); 389 } 390 391 #endif 464 #define YYERROR goto yyerrlab 465 392 466 int 393 #if defined(__STDC__) 394 yyparse(void) 395 #else 396 yyparse() 397 #endif 467 YYPARSE_DECL() 398 468 { 399 register int yym, yyn, yystate; 400 #if YYDEBUG 401 register char *yys; 402 #ifndef __cplusplus 403 extern char *getenv(); 404 #endif 405 406 if (yys = getenv("YYDEBUG")) 469 int yym, yyn, yystate; 470 #if YYDEBUG 471 const char *yys; 472 473 if ((yys = getenv("YYDEBUG")) != 0) 407 474 { 408 475 yyn = *yys; … … 414 481 yynerrs = 0; 415 482 yyerrflag = 0; 416 yychar = (-1); 417 483 yychar = YYEMPTY; 484 yystate = 0; 485 486 if (yyss == NULL && yygrowstack()) goto yyoverflow; 418 487 yyssp = yyss; 419 488 yyvsp = yyvs; 420 *yyssp = yystate = 0; 489 yystate = 0; 490 *yyssp = 0; 421 491 422 492 yyloop: … … 444 514 YYPREFIX, yystate, yytable[yyn]); 445 515 #endif 446 if (yyssp >= yyss + yystacksize - 1)516 if (yyssp >= yysslim && yygrowstack()) 447 517 { 448 518 goto yyoverflow; 449 519 } 450 *++yyssp = yystate = yytable[yyn]; 520 yystate = yytable[yyn]; 521 *++yyssp = yytable[yyn]; 451 522 *++yyvsp = yylval; 452 yychar = (-1);523 yychar = YYEMPTY; 453 524 if (yyerrflag > 0) --yyerrflag; 454 525 goto yyloop; … … 461 532 } 462 533 if (yyerrflag) goto yyinrecovery; 534 463 535 yyerror("syntax error"); 464 #ifdef lint 536 465 537 goto yyerrlab; 466 #endif 538 467 539 yyerrlab: 468 540 ++yynerrs; 541 469 542 yyinrecovery: 470 543 if (yyerrflag < 3) … … 481 554 to state %d\n", YYPREFIX, *yyssp, yytable[yyn]); 482 555 #endif 483 if (yyssp >= yyss + yystacksize - 1)556 if (yyssp >= yysslim && yygrowstack()) 484 557 { 485 558 goto yyoverflow; 486 559 } 487 *++yyssp = yystate = yytable[yyn]; 560 yystate = yytable[yyn]; 561 *++yyssp = yytable[yyn]; 488 562 *++yyvsp = yylval; 489 563 goto yyloop; … … 515 589 } 516 590 #endif 517 yychar = (-1);591 yychar = YYEMPTY; 518 592 goto yyloop; 519 593 } 594 520 595 yyreduce: 521 596 #if YYDEBUG … … 525 600 #endif 526 601 yym = yylen[yyn]; 527 yyval = yyvsp[1-yym]; 602 if (yym) 603 yyval = yyvsp[1-yym]; 604 else 605 memset(&yyval, 0, sizeof yyval); 528 606 switch (yyn) 529 607 { 530 608 case 1: 531 {609 { 532 610 return (yyvsp[0]); 533 611 } 534 612 break; 535 613 case 2: 536 { yyval = yyvsp[-1]; }614 { yyval = yyvsp[-1]; } 537 615 break; 538 616 case 3: 539 { yyval = yyvsp[-2] ? yyvsp[-2] : yyvsp[0] ? yyvsp[0] : 0; }617 { yyval = yyvsp[-2] ? yyvsp[-2] : yyvsp[0] ? yyvsp[0] : 0; } 540 618 break; 541 619 case 4: 542 { yyval = yyvsp[-2] ? ( yyvsp[0] ? yyvsp[0] : 0 ) : 0; }620 { yyval = yyvsp[-2] ? ( yyvsp[0] ? yyvsp[0] : 0 ) : 0; } 543 621 break; 544 622 case 5: 545 { yyval = yyvsp[-2] | yyvsp[0]; }623 { yyval = yyvsp[-2] | yyvsp[0]; } 546 624 break; 547 625 case 6: 548 { yyval = yyvsp[-2] ^ yyvsp[0]; }626 { yyval = yyvsp[-2] ^ yyvsp[0]; } 549 627 break; 550 628 case 7: 551 { yyval = yyvsp[-2] & yyvsp[0]; }629 { yyval = yyvsp[-2] & yyvsp[0]; } 552 630 break; 553 631 case 8: 554 { yyval = yyvsp[-2] == yyvsp[0]; }632 { yyval = yyvsp[-2] == yyvsp[0]; } 555 633 break; 556 634 case 9: 557 { yyval = yyvsp[-2] > yyvsp[0]; }635 { yyval = yyvsp[-2] > yyvsp[0]; } 558 636 break; 559 637 case 10: 560 { yyval = yyvsp[-2] >= yyvsp[0]; }638 { yyval = yyvsp[-2] >= yyvsp[0]; } 561 639 break; 562 640 case 11: 563 { yyval = yyvsp[-2] < yyvsp[0]; }641 { yyval = yyvsp[-2] < yyvsp[0]; } 564 642 break; 565 643 case 12: 566 { yyval = yyvsp[-2] <= yyvsp[0]; }644 { yyval = yyvsp[-2] <= yyvsp[0]; } 567 645 break; 568 646 case 13: 569 { yyval = yyvsp[-2] != yyvsp[0]; }647 { yyval = yyvsp[-2] != yyvsp[0]; } 570 648 break; 571 649 case 14: 572 { yyval = yyvsp[-2] << yyvsp[0]; }650 { yyval = yyvsp[-2] << yyvsp[0]; } 573 651 break; 574 652 case 15: 575 { yyval = yyvsp[-2] >> yyvsp[0]; }653 { yyval = yyvsp[-2] >> yyvsp[0]; } 576 654 break; 577 655 case 16: 578 { yyval = yyvsp[-2] + yyvsp[0]; }656 { yyval = yyvsp[-2] + yyvsp[0]; } 579 657 break; 580 658 case 17: 581 { yyval = yyvsp[-2] - yyvsp[0]; }659 { yyval = yyvsp[-2] - yyvsp[0]; } 582 660 break; 583 661 case 18: 584 { yyval = yyvsp[-2] * yyvsp[0]; }662 { yyval = yyvsp[-2] * yyvsp[0]; } 585 663 break; 586 664 case 19: 587 {665 { 588 666 if (yyvsp[0] == 0) 589 667 yyerror("division by zero"); … … 592 670 break; 593 671 case 20: 594 {672 { 595 673 if (yyvsp[0] == 0) 596 674 yyerror("division by zero"); … … 599 677 break; 600 678 case 21: 601 { yyval = !(yyvsp[0]); }679 { yyval = !(yyvsp[0]); } 602 680 break; 603 681 case 22: 604 { yyval = ~(yyvsp[0]); }682 { yyval = ~(yyvsp[0]); } 605 683 break; 606 684 case 23: 607 { yyval = -(yyvsp[0]); }685 { yyval = -(yyvsp[0]); } 608 686 break; 609 687 case 24: 610 { yyval = yyvsp[0]; }688 { yyval = yyvsp[0]; } 611 689 break; 612 690 } … … 652 730 to state %d\n", YYPREFIX, *yyssp, yystate); 653 731 #endif 654 if (yyssp >= yyss + yystacksize - 1)732 if (yyssp >= yysslim && yygrowstack()) 655 733 { 656 734 goto yyoverflow; 657 735 } 658 *++yyssp = yystate;736 *++yyssp = (short) yystate; 659 737 *++yyvsp = yyval; 660 738 goto yyloop; 739 661 740 yyoverflow: 662 741 yyerror("yacc stack overflow"); 742 663 743 yyabort: 664 744 return (1); 745 665 746 yyaccept: 666 747 return (0);
Note:
See TracChangeset
for help on using the changeset viewer.