1 0 $accept : input $end 2 3 1 opt_scope : 4 2 | CLCL 5 3 | opt_scope ID CLCL 6 7 4 typename : opt_scope ID 8 9 5 $$1 : 10 11 6 input : $$1 decl_list 12 13 7 decl_list : 14 15 8 $$2 : 16 17 9 decl_list : decl_list $$2 decl 18 19 10 decl : decl_specs declarator_list ';' 20 21 11 $$3 : 22 23 12 decl : decl_specs declarator $$3 block_statement 24 25 13 decl_specs : decl_spec 26 14 | decl_specs $$2 decl_spec 27 28 15 cv_quals : 29 16 | cv_quals cv_qual 30 31 17 decl_spec : cv_qual 32 18 | typename 33 19 | EXTERN 34 20 | REGISTER 35 21 | STATIC 36 37 22 cv_qual : CONST 38 23 | VOLATILE 39 40 24 $$4 : 41 42 25 $$5 : 43 44 26 declarator_list : declarator_list ',' $$4 $$5 declarator 45 27 | declarator 46 47 28 declarator : 48 29 | ID 49 50 30 $$6 : 51 52 31 $$7 : 53 54 32 declarator : '(' $$6 $$7 declarator ')' 55 33 | '*' cv_quals $$4 $$5 declarator 56 34 | declarator '[' $$4 expr ']' 57 35 | declarator '(' $$4 formal_arg_list ')' cv_quals 58 59 36 formal_arg_list : 60 37 | nonempty_formal_arg_list 61 62 38 nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 formal_arg 63 39 | formal_arg 64 65 40 formal_arg : decl_specs declarator 66 67 41 expr : expr '+' $$6 expr 68 42 | expr '-' $$6 expr 69 43 | expr '*' $$6 expr 70 44 | expr '%' $$6 expr 71 45 | expr '/' $$6 expr 72 46 | '*' $$2 expr 73 47 | ID 74 48 | CONSTANT 75 76 49 statement : decl 77 50 | expr ';' 78 79 51 $$8 : 80 81 52 $$9 : 82 83 53 statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement 84 54 | IF '(' $$6 expr ')' THEN $$8 statement 85 86 55 $$10 : 87 88 56 statement : $$10 block_statement 89 90 57 statement_list : 91 58 | statement_list $$2 statement 92 93 59 block_statement : '{' $$2 statement_list '}' 94 95state 0 96 $accept : . input $end (0) 97 $$1 : . (5) 98 99 . reduce 5 100 101 input goto 1 102 $$1 goto 2 103 104 105state 1 106 $accept : input . $end (0) 107 108 $end accept 109 110 111state 2 112 input : $$1 . decl_list (6) 113 decl_list : . (7) 114 115 . reduce 7 116 117 decl_list goto 3 118 119 120state 3 121 input : $$1 decl_list . (6) 122 decl_list : decl_list . $$2 decl (9) 123 $$2 : . (8) 124 125 $end reduce 6 126 ID reduce 8 127 EXTERN reduce 8 128 REGISTER reduce 8 129 STATIC reduce 8 130 CONST reduce 8 131 VOLATILE reduce 8 132 CLCL reduce 8 133 134 $$2 goto 4 135 136 137state 4 138 decl_list : decl_list $$2 . decl (9) 139 opt_scope : . (1) 140 141 EXTERN shift 5 142 REGISTER shift 6 143 STATIC shift 7 144 CONST shift 8 145 VOLATILE shift 9 146 CLCL shift 10 147 ID reduce 1 148 149 decl goto 11 150 decl_specs goto 12 151 decl_spec goto 13 152 typename goto 14 153 cv_qual goto 15 154 opt_scope goto 16 155 156 157state 5 158 decl_spec : EXTERN . (19) 159 160 . reduce 19 161 162 163state 6 164 decl_spec : REGISTER . (20) 165 166 . reduce 20 167 168 169state 7 170 decl_spec : STATIC . (21) 171 172 . reduce 21 173 174 175state 8 176 cv_qual : CONST . (22) 177 178 . reduce 22 179 180 181state 9 182 cv_qual : VOLATILE . (23) 183 184 . reduce 23 185 186 187state 10 188 opt_scope : CLCL . (2) 189 190 . reduce 2 191 192 193state 11 194 decl_list : decl_list $$2 decl . (9) 195 196 . reduce 9 197 198 19912: shift/reduce conflict (shift 18, reduce 28) on '(' 20012: shift/reduce conflict (shift 19, reduce 8) on ID 201state 12 202 decl : decl_specs . declarator_list ';' (10) 203 decl : decl_specs . declarator $$3 block_statement (12) 204 decl_specs : decl_specs . $$2 decl_spec (14) 205 $$2 : . (8) 206 declarator : . (28) 207 208 '*' shift 17 209 '(' [trial] shift 18 210 ID [trial] shift 19 211 '(' [trial] reduce 28 212 '[' reduce 28 213 ID [trial] reduce 8 214 EXTERN reduce 8 215 REGISTER reduce 8 216 STATIC reduce 8 217 CONST reduce 8 218 VOLATILE reduce 8 219 CLCL reduce 8 220 ';' reduce 28 221 ',' reduce 28 222 '{' reduce 28 223 224 declarator_list goto 20 225 declarator goto 21 226 $$2 goto 22 227 228 229state 13 230 decl_specs : decl_spec . (13) 231 232 . reduce 13 233 234 235state 14 236 decl_spec : typename . (18) 237 238 . reduce 18 239 240 241state 15 242 decl_spec : cv_qual . (17) 243 244 . reduce 17 245 246 247state 16 248 opt_scope : opt_scope . ID CLCL (3) 249 typename : opt_scope . ID (4) 250 251 ID shift 23 252 . error 253 254 255state 17 256 declarator : '*' . cv_quals $$4 $$5 declarator (33) 257 cv_quals : . (15) 258 259 . reduce 15 260 261 cv_quals goto 24 262 263 264state 18 265 declarator : '(' . $$6 $$7 declarator ')' (32) 266 $$6 : . (30) 267 268 . reduce 30 269 270 $$6 goto 25 271 272 273state 19 274 declarator : ID . (29) 275 276 . reduce 29 277 278 279state 20 280 decl : decl_specs declarator_list . ';' (10) 281 declarator_list : declarator_list . ',' $$4 $$5 declarator (26) 282 283 ';' shift 26 284 ',' shift 27 285 . error 286 287 288state 21 289 decl : decl_specs declarator . $$3 block_statement (12) 290 declarator_list : declarator . (27) 291 declarator : declarator . '[' $$4 expr ']' (34) 292 declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35) 293 $$3 : . (11) 294 295 '(' shift 28 296 '[' shift 29 297 ';' reduce 27 298 ',' reduce 27 299 '{' reduce 11 300 301 $$3 goto 30 302 303 304state 22 305 decl_specs : decl_specs $$2 . decl_spec (14) 306 opt_scope : . (1) 307 308 EXTERN shift 5 309 REGISTER shift 6 310 STATIC shift 7 311 CONST shift 8 312 VOLATILE shift 9 313 CLCL shift 10 314 ID reduce 1 315 316 decl_spec goto 31 317 typename goto 14 318 cv_qual goto 15 319 opt_scope goto 16 320 321 32223: shift/reduce conflict (shift 32, reduce 4) on CLCL 323state 23 324 opt_scope : opt_scope ID . CLCL (3) 325 typename : opt_scope ID . (4) 326 327 CLCL [trial] shift 32 328 '*' reduce 4 329 '(' reduce 4 330 '[' reduce 4 331 ID reduce 4 332 EXTERN reduce 4 333 REGISTER reduce 4 334 STATIC reduce 4 335 CONST reduce 4 336 VOLATILE reduce 4 337 CLCL [trial] reduce 4 338 ';' reduce 4 339 ',' reduce 4 340 ')' reduce 4 341 '{' reduce 4 342 343 344state 24 345 cv_quals : cv_quals . cv_qual (16) 346 declarator : '*' cv_quals . $$4 $$5 declarator (33) 347 $$4 : . (24) 348 349 CONST shift 8 350 VOLATILE shift 9 351 '*' reduce 24 352 '(' reduce 24 353 '[' reduce 24 354 ID reduce 24 355 ';' reduce 24 356 ',' reduce 24 357 ')' reduce 24 358 '{' reduce 24 359 360 cv_qual goto 33 361 $$4 goto 34 362 363 364state 25 365 declarator : '(' $$6 . $$7 declarator ')' (32) 366 $$7 : . (31) 367 368 . reduce 31 369 370 $$7 goto 35 371 372 373state 26 374 decl : decl_specs declarator_list ';' . (10) 375 376 . reduce 10 377 378 379state 27 380 declarator_list : declarator_list ',' . $$4 $$5 declarator (26) 381 $$4 : . (24) 382 383 . reduce 24 384 385 $$4 goto 36 386 387 388state 28 389 declarator : declarator '(' . $$4 formal_arg_list ')' cv_quals (35) 390 $$4 : . (24) 391 392 . reduce 24 393 394 $$4 goto 37 395 396 397state 29 398 declarator : declarator '[' . $$4 expr ']' (34) 399 $$4 : . (24) 400 401 . reduce 24 402 403 $$4 goto 38 404 405 406state 30 407 decl : decl_specs declarator $$3 . block_statement (12) 408 409 '{' shift 39 410 . error 411 412 block_statement goto 40 413 414 415state 31 416 decl_specs : decl_specs $$2 decl_spec . (14) 417 418 . reduce 14 419 420 421state 32 422 opt_scope : opt_scope ID CLCL . (3) 423 424 . reduce 3 425 426 427state 33 428 cv_quals : cv_quals cv_qual . (16) 429 430 . reduce 16 431 432 433state 34 434 declarator : '*' cv_quals $$4 . $$5 declarator (33) 435 $$5 : . (25) 436 437 . reduce 25 438 439 $$5 goto 41 440 441 44235: shift/reduce conflict (shift 18, reduce 28) on '(' 443state 35 444 declarator : '(' $$6 $$7 . declarator ')' (32) 445 declarator : . (28) 446 447 '*' shift 17 448 '(' [trial] shift 18 449 ID shift 19 450 '(' [trial] reduce 28 451 '[' reduce 28 452 ')' reduce 28 453 454 declarator goto 42 455 456 457state 36 458 declarator_list : declarator_list ',' $$4 . $$5 declarator (26) 459 $$5 : . (25) 460 461 . reduce 25 462 463 $$5 goto 43 464 465 466state 37 467 declarator : declarator '(' $$4 . formal_arg_list ')' cv_quals (35) 468 opt_scope : . (1) 469 formal_arg_list : . (36) 470 471 EXTERN shift 5 472 REGISTER shift 6 473 STATIC shift 7 474 CONST shift 8 475 VOLATILE shift 9 476 CLCL shift 10 477 ID reduce 1 478 ')' reduce 36 479 480 formal_arg goto 44 481 decl_specs goto 45 482 decl_spec goto 13 483 typename goto 14 484 cv_qual goto 15 485 opt_scope goto 16 486 formal_arg_list goto 46 487 nonempty_formal_arg_list goto 47 488 489 490state 38 491 declarator : declarator '[' $$4 . expr ']' (34) 492 493 '*' shift 48 494 ID shift 49 495 CONSTANT shift 50 496 . error 497 498 expr goto 51 499 500 501state 39 502 block_statement : '{' . $$2 statement_list '}' (59) 503 $$2 : . (8) 504 505 . reduce 8 506 507 $$2 goto 52 508 509 510state 40 511 decl : decl_specs declarator $$3 block_statement . (12) 512 513 . reduce 12 514 515 51641: shift/reduce conflict (shift 18, reduce 28) on '(' 517state 41 518 declarator : '*' cv_quals $$4 $$5 . declarator (33) 519 declarator : . (28) 520 521 '*' shift 17 522 '(' [trial] shift 18 523 ID shift 19 524 '(' [trial] reduce 28 525 '[' reduce 28 526 ';' reduce 28 527 ',' reduce 28 528 ')' reduce 28 529 '{' reduce 28 530 531 declarator goto 53 532 533 534state 42 535 declarator : '(' $$6 $$7 declarator . ')' (32) 536 declarator : declarator . '[' $$4 expr ']' (34) 537 declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35) 538 539 '(' shift 28 540 '[' shift 29 541 ')' shift 54 542 . error 543 544 54543: shift/reduce conflict (shift 18, reduce 28) on '(' 546state 43 547 declarator_list : declarator_list ',' $$4 $$5 . declarator (26) 548 declarator : . (28) 549 550 '*' shift 17 551 '(' [trial] shift 18 552 ID shift 19 553 '(' [trial] reduce 28 554 '[' reduce 28 555 ';' reduce 28 556 ',' reduce 28 557 558 declarator goto 55 559 560 561state 44 562 nonempty_formal_arg_list : formal_arg . (39) 563 564 . reduce 39 565 566 56745: shift/reduce conflict (shift 18, reduce 28) on '(' 56845: shift/reduce conflict (shift 19, reduce 8) on ID 569state 45 570 decl_specs : decl_specs . $$2 decl_spec (14) 571 formal_arg : decl_specs . declarator (40) 572 $$2 : . (8) 573 declarator : . (28) 574 575 '*' shift 17 576 '(' [trial] shift 18 577 ID [trial] shift 19 578 '(' [trial] reduce 28 579 '[' reduce 28 580 ID [trial] reduce 8 581 EXTERN reduce 8 582 REGISTER reduce 8 583 STATIC reduce 8 584 CONST reduce 8 585 VOLATILE reduce 8 586 CLCL reduce 8 587 ',' reduce 28 588 ')' reduce 28 589 590 declarator goto 56 591 $$2 goto 22 592 593 594state 46 595 declarator : declarator '(' $$4 formal_arg_list . ')' cv_quals (35) 596 597 ')' shift 57 598 . error 599 600 601state 47 602 formal_arg_list : nonempty_formal_arg_list . (37) 603 nonempty_formal_arg_list : nonempty_formal_arg_list . ',' $$6 formal_arg (38) 604 605 ',' shift 58 606 ')' reduce 37 607 608 609state 48 610 expr : '*' . $$2 expr (46) 611 $$2 : . (8) 612 613 . reduce 8 614 615 $$2 goto 59 616 617 618state 49 619 expr : ID . (47) 620 621 . reduce 47 622 623 624state 50 625 expr : CONSTANT . (48) 626 627 . reduce 48 628 629 630state 51 631 declarator : declarator '[' $$4 expr . ']' (34) 632 expr : expr . '+' $$6 expr (41) 633 expr : expr . '-' $$6 expr (42) 634 expr : expr . '*' $$6 expr (43) 635 expr : expr . '%' $$6 expr (44) 636 expr : expr . '/' $$6 expr (45) 637 638 '+' shift 60 639 '-' shift 61 640 '*' shift 62 641 '/' shift 63 642 '%' shift 64 643 ']' shift 65 644 . error 645 646 647state 52 648 block_statement : '{' $$2 . statement_list '}' (59) 649 statement_list : . (57) 650 651 . reduce 57 652 653 statement_list goto 66 654 655 656state 53 657 declarator : '*' cv_quals $$4 $$5 declarator . (33) 658 declarator : declarator . '[' $$4 expr ']' (34) 659 declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35) 660 661 '(' shift 28 662 '[' shift 29 663 ';' reduce 33 664 ',' reduce 33 665 ')' reduce 33 666 '{' reduce 33 667 668 669state 54 670 declarator : '(' $$6 $$7 declarator ')' . (32) 671 672 . reduce 32 673 674 675state 55 676 declarator_list : declarator_list ',' $$4 $$5 declarator . (26) 677 declarator : declarator . '[' $$4 expr ']' (34) 678 declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35) 679 680 '(' shift 28 681 '[' shift 29 682 ';' reduce 26 683 ',' reduce 26 684 685 686state 56 687 declarator : declarator . '[' $$4 expr ']' (34) 688 declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35) 689 formal_arg : decl_specs declarator . (40) 690 691 '(' shift 28 692 '[' shift 29 693 ',' reduce 40 694 ')' reduce 40 695 696 697state 57 698 declarator : declarator '(' $$4 formal_arg_list ')' . cv_quals (35) 699 cv_quals : . (15) 700 701 . reduce 15 702 703 cv_quals goto 67 704 705 706state 58 707 nonempty_formal_arg_list : nonempty_formal_arg_list ',' . $$6 formal_arg (38) 708 $$6 : . (30) 709 710 . reduce 30 711 712 $$6 goto 68 713 714 715state 59 716 expr : '*' $$2 . expr (46) 717 718 '*' shift 48 719 ID shift 49 720 CONSTANT shift 50 721 . error 722 723 expr goto 69 724 725 726state 60 727 expr : expr '+' . $$6 expr (41) 728 $$6 : . (30) 729 730 . reduce 30 731 732 $$6 goto 70 733 734 735state 61 736 expr : expr '-' . $$6 expr (42) 737 $$6 : . (30) 738 739 . reduce 30 740 741 $$6 goto 71 742 743 744state 62 745 expr : expr '*' . $$6 expr (43) 746 $$6 : . (30) 747 748 . reduce 30 749 750 $$6 goto 72 751 752 753state 63 754 expr : expr '/' . $$6 expr (45) 755 $$6 : . (30) 756 757 . reduce 30 758 759 $$6 goto 73 760 761 762state 64 763 expr : expr '%' . $$6 expr (44) 764 $$6 : . (30) 765 766 . reduce 30 767 768 $$6 goto 74 769 770 771state 65 772 declarator : declarator '[' $$4 expr ']' . (34) 773 774 . reduce 34 775 776 777state 66 778 statement_list : statement_list . $$2 statement (58) 779 block_statement : '{' $$2 statement_list . '}' (59) 780 $$2 : . (8) 781 782 '}' shift 75 783 '*' reduce 8 784 ID reduce 8 785 CONSTANT reduce 8 786 EXTERN reduce 8 787 REGISTER reduce 8 788 STATIC reduce 8 789 CONST reduce 8 790 VOLATILE reduce 8 791 IF reduce 8 792 CLCL reduce 8 793 '{' reduce 8 794 795 $$2 goto 76 796 797 798state 67 799 cv_quals : cv_quals . cv_qual (16) 800 declarator : declarator '(' $$4 formal_arg_list ')' cv_quals . (35) 801 802 CONST shift 8 803 VOLATILE shift 9 804 '(' reduce 35 805 '[' reduce 35 806 ';' reduce 35 807 ',' reduce 35 808 ')' reduce 35 809 '{' reduce 35 810 811 cv_qual goto 33 812 813 814state 68 815 nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 . formal_arg (38) 816 opt_scope : . (1) 817 818 EXTERN shift 5 819 REGISTER shift 6 820 STATIC shift 7 821 CONST shift 8 822 VOLATILE shift 9 823 CLCL shift 10 824 ID reduce 1 825 826 formal_arg goto 77 827 decl_specs goto 45 828 decl_spec goto 13 829 typename goto 14 830 cv_qual goto 15 831 opt_scope goto 16 832 833 834state 69 835 expr : expr . '+' $$6 expr (41) 836 expr : expr . '-' $$6 expr (42) 837 expr : expr . '*' $$6 expr (43) 838 expr : expr . '%' $$6 expr (44) 839 expr : expr . '/' $$6 expr (45) 840 expr : '*' $$2 expr . (46) 841 842 . reduce 46 843 844 845state 70 846 expr : expr '+' $$6 . expr (41) 847 848 '*' shift 48 849 ID shift 49 850 CONSTANT shift 50 851 . error 852 853 expr goto 78 854 855 856state 71 857 expr : expr '-' $$6 . expr (42) 858 859 '*' shift 48 860 ID shift 49 861 CONSTANT shift 50 862 . error 863 864 expr goto 79 865 866 867state 72 868 expr : expr '*' $$6 . expr (43) 869 870 '*' shift 48 871 ID shift 49 872 CONSTANT shift 50 873 . error 874 875 expr goto 80 876 877 878state 73 879 expr : expr '/' $$6 . expr (45) 880 881 '*' shift 48 882 ID shift 49 883 CONSTANT shift 50 884 . error 885 886 expr goto 81 887 888 889state 74 890 expr : expr '%' $$6 . expr (44) 891 892 '*' shift 48 893 ID shift 49 894 CONSTANT shift 50 895 . error 896 897 expr goto 82 898 899 900state 75 901 block_statement : '{' $$2 statement_list '}' . (59) 902 903 . reduce 59 904 905 90676: shift/reduce conflict (shift 49, reduce 1) on ID 907state 76 908 statement_list : statement_list $$2 . statement (58) 909 opt_scope : . (1) 910 $$10 : . (55) 911 912 '*' shift 48 913 ID [trial] shift 49 914 CONSTANT shift 50 915 EXTERN shift 5 916 REGISTER shift 6 917 STATIC shift 7 918 CONST shift 8 919 VOLATILE shift 9 920 IF shift 83 921 CLCL shift 10 922 ID [trial] reduce 1 923 '{' reduce 55 924 925 expr goto 84 926 decl goto 85 927 statement goto 86 928 decl_specs goto 12 929 decl_spec goto 13 930 typename goto 14 931 cv_qual goto 15 932 opt_scope goto 16 933 $$10 goto 87 934 935 936state 77 937 nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 formal_arg . (38) 938 939 . reduce 38 940 941 942state 78 943 expr : expr . '+' $$6 expr (41) 944 expr : expr '+' $$6 expr . (41) 945 expr : expr . '-' $$6 expr (42) 946 expr : expr . '*' $$6 expr (43) 947 expr : expr . '%' $$6 expr (44) 948 expr : expr . '/' $$6 expr (45) 949 950 '*' shift 62 951 '/' shift 63 952 '%' shift 64 953 '+' reduce 41 954 '-' reduce 41 955 ';' reduce 41 956 ')' reduce 41 957 ']' reduce 41 958 959 960state 79 961 expr : expr . '+' $$6 expr (41) 962 expr : expr . '-' $$6 expr (42) 963 expr : expr '-' $$6 expr . (42) 964 expr : expr . '*' $$6 expr (43) 965 expr : expr . '%' $$6 expr (44) 966 expr : expr . '/' $$6 expr (45) 967 968 '*' shift 62 969 '/' shift 63 970 '%' shift 64 971 '+' reduce 42 972 '-' reduce 42 973 ';' reduce 42 974 ')' reduce 42 975 ']' reduce 42 976 977 978state 80 979 expr : expr . '+' $$6 expr (41) 980 expr : expr . '-' $$6 expr (42) 981 expr : expr . '*' $$6 expr (43) 982 expr : expr '*' $$6 expr . (43) 983 expr : expr . '%' $$6 expr (44) 984 expr : expr . '/' $$6 expr (45) 985 986 . reduce 43 987 988 989state 81 990 expr : expr . '+' $$6 expr (41) 991 expr : expr . '-' $$6 expr (42) 992 expr : expr . '*' $$6 expr (43) 993 expr : expr . '%' $$6 expr (44) 994 expr : expr . '/' $$6 expr (45) 995 expr : expr '/' $$6 expr . (45) 996 997 . reduce 45 998 999 1000state 82 1001 expr : expr . '+' $$6 expr (41) 1002 expr : expr . '-' $$6 expr (42) 1003 expr : expr . '*' $$6 expr (43) 1004 expr : expr . '%' $$6 expr (44) 1005 expr : expr '%' $$6 expr . (44) 1006 expr : expr . '/' $$6 expr (45) 1007 1008 . reduce 44 1009 1010 1011state 83 1012 statement : IF . '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement (53) 1013 statement : IF . '(' $$6 expr ')' THEN $$8 statement (54) 1014 1015 '(' shift 88 1016 . error 1017 1018 1019state 84 1020 expr : expr . '+' $$6 expr (41) 1021 expr : expr . '-' $$6 expr (42) 1022 expr : expr . '*' $$6 expr (43) 1023 expr : expr . '%' $$6 expr (44) 1024 expr : expr . '/' $$6 expr (45) 1025 statement : expr . ';' (50) 1026 1027 '+' shift 60 1028 '-' shift 61 1029 '*' shift 62 1030 '/' shift 63 1031 '%' shift 64 1032 ';' shift 89 1033 . error 1034 1035 1036state 85 1037 statement : decl . (49) 1038 1039 . reduce 49 1040 1041 1042state 86 1043 statement_list : statement_list $$2 statement . (58) 1044 1045 . reduce 58 1046 1047 1048state 87 1049 statement : $$10 . block_statement (56) 1050 1051 '{' shift 39 1052 . error 1053 1054 block_statement goto 90 1055 1056 1057state 88 1058 statement : IF '(' . $$6 expr ')' THEN $$8 statement ELSE $$9 statement (53) 1059 statement : IF '(' . $$6 expr ')' THEN $$8 statement (54) 1060 $$6 : . (30) 1061 1062 . reduce 30 1063 1064 $$6 goto 91 1065 1066 1067state 89 1068 statement : expr ';' . (50) 1069 1070 . reduce 50 1071 1072 1073state 90 1074 statement : $$10 block_statement . (56) 1075 1076 . reduce 56 1077 1078 1079state 91 1080 statement : IF '(' $$6 . expr ')' THEN $$8 statement ELSE $$9 statement (53) 1081 statement : IF '(' $$6 . expr ')' THEN $$8 statement (54) 1082 1083 '*' shift 48 1084 ID shift 49 1085 CONSTANT shift 50 1086 . error 1087 1088 expr goto 92 1089 1090 1091state 92 1092 expr : expr . '+' $$6 expr (41) 1093 expr : expr . '-' $$6 expr (42) 1094 expr : expr . '*' $$6 expr (43) 1095 expr : expr . '%' $$6 expr (44) 1096 expr : expr . '/' $$6 expr (45) 1097 statement : IF '(' $$6 expr . ')' THEN $$8 statement ELSE $$9 statement (53) 1098 statement : IF '(' $$6 expr . ')' THEN $$8 statement (54) 1099 1100 '+' shift 60 1101 '-' shift 61 1102 '*' shift 62 1103 '/' shift 63 1104 '%' shift 64 1105 ')' shift 93 1106 . error 1107 1108 1109state 93 1110 statement : IF '(' $$6 expr ')' . THEN $$8 statement ELSE $$9 statement (53) 1111 statement : IF '(' $$6 expr ')' . THEN $$8 statement (54) 1112 1113 THEN shift 94 1114 . error 1115 1116 1117state 94 1118 statement : IF '(' $$6 expr ')' THEN . $$8 statement ELSE $$9 statement (53) 1119 statement : IF '(' $$6 expr ')' THEN . $$8 statement (54) 1120 $$8 : . (51) 1121 1122 . reduce 51 1123 1124 $$8 goto 95 1125 1126 112795: shift/reduce conflict (shift 49, reduce 1) on ID 1128state 95 1129 statement : IF '(' $$6 expr ')' THEN $$8 . statement ELSE $$9 statement (53) 1130 statement : IF '(' $$6 expr ')' THEN $$8 . statement (54) 1131 opt_scope : . (1) 1132 $$10 : . (55) 1133 1134 '*' shift 48 1135 ID [trial] shift 49 1136 CONSTANT shift 50 1137 EXTERN shift 5 1138 REGISTER shift 6 1139 STATIC shift 7 1140 CONST shift 8 1141 VOLATILE shift 9 1142 IF shift 83 1143 CLCL shift 10 1144 ID [trial] reduce 1 1145 '{' reduce 55 1146 1147 expr goto 84 1148 decl goto 85 1149 statement goto 96 1150 decl_specs goto 12 1151 decl_spec goto 13 1152 typename goto 14 1153 cv_qual goto 15 1154 opt_scope goto 16 1155 $$10 goto 87 1156 1157 115896: shift/reduce conflict (shift 97, reduce 54) on ELSE 1159state 96 1160 statement : IF '(' $$6 expr ')' THEN $$8 statement . ELSE $$9 statement (53) 1161 statement : IF '(' $$6 expr ')' THEN $$8 statement . (54) 1162 1163 ELSE [trial] shift 97 1164 '*' reduce 54 1165 ID reduce 54 1166 CONSTANT reduce 54 1167 EXTERN reduce 54 1168 REGISTER reduce 54 1169 STATIC reduce 54 1170 CONST reduce 54 1171 VOLATILE reduce 54 1172 IF reduce 54 1173 ELSE [trial] reduce 54 1174 CLCL reduce 54 1175 '{' reduce 54 1176 '}' reduce 54 1177 1178 1179state 97 1180 statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE . $$9 statement (53) 1181 $$9 : . (52) 1182 1183 . reduce 52 1184 1185 $$9 goto 98 1186 1187 118898: shift/reduce conflict (shift 49, reduce 1) on ID 1189state 98 1190 statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 . statement (53) 1191 opt_scope : . (1) 1192 $$10 : . (55) 1193 1194 '*' shift 48 1195 ID [trial] shift 49 1196 CONSTANT shift 50 1197 EXTERN shift 5 1198 REGISTER shift 6 1199 STATIC shift 7 1200 CONST shift 8 1201 VOLATILE shift 9 1202 IF shift 83 1203 CLCL shift 10 1204 ID [trial] reduce 1 1205 '{' reduce 55 1206 1207 expr goto 84 1208 decl goto 85 1209 statement goto 99 1210 decl_specs goto 12 1211 decl_spec goto 13 1212 typename goto 14 1213 cv_qual goto 15 1214 opt_scope goto 16 1215 $$10 goto 87 1216 1217 1218state 99 1219 statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement . (53) 1220 1221 . reduce 53 1222 1223 1224State 12 contains 2 shift/reduce conflicts. 1225State 23 contains 1 shift/reduce conflict. 1226State 35 contains 1 shift/reduce conflict. 1227State 41 contains 1 shift/reduce conflict. 1228State 43 contains 1 shift/reduce conflict. 1229State 45 contains 2 shift/reduce conflicts. 1230State 76 contains 1 shift/reduce conflict. 1231State 95 contains 1 shift/reduce conflict. 1232State 96 contains 1 shift/reduce conflict. 1233State 98 contains 1 shift/reduce conflict. 1234 1235 123629 terminals, 29 nonterminals 123760 grammar rules, 100 states 1238 1239grammar parser grammar 1240symbol# value# symbol 1241 0 0 $end 1242 1 256 error 1243 2 43 '+' 1244 3 45 '-' 1245 4 42 '*' 1246 5 47 '/' 1247 6 37 '%' 1248 7 257 PREFIX 1249 8 258 POSTFIX 1250 9 40 '(' 1251 10 91 '[' 1252 11 46 '.' 1253 12 259 ID 1254 13 260 CONSTANT 1255 14 261 EXTERN 1256 15 262 REGISTER 1257 16 263 STATIC 1258 17 264 CONST 1259 18 265 VOLATILE 1260 19 266 IF 1261 20 267 THEN 1262 21 268 ELSE 1263 22 269 CLCL 1264 23 59 ';' 1265 24 44 ',' 1266 25 41 ')' 1267 26 93 ']' 1268 27 123 '{' 1269 28 125 '}' 1270 29 270 $accept 1271 30 271 input 1272 31 272 expr 1273 32 273 decl 1274 33 274 declarator_list 1275 34 275 decl_list 1276 35 276 statement 1277 36 277 statement_list 1278 37 278 block_statement 1279 38 279 declarator 1280 39 280 formal_arg 1281 40 281 decl_specs 1282 41 282 decl_spec 1283 42 283 typename 1284 43 284 cv_quals 1285 44 285 cv_qual 1286 45 286 opt_scope 1287 46 287 formal_arg_list 1288 47 288 nonempty_formal_arg_list 1289 48 289 $$1 1290 49 290 $$2 1291 50 291 $$3 1292 51 292 $$4 1293 52 293 $$5 1294 53 294 $$6 1295 54 295 $$7 1296 55 296 $$8 1297 56 297 $$9 1298 57 298 $$10 1299