1 0 $accept : program $end 2 3 1 program : 4 2 | translation_unit 5 6 3 translation_unit : external_declaration 7 4 | translation_unit external_declaration 8 9 5 external_declaration : declaration 10 6 | function_definition 11 7 | ';' 12 8 | linkage_specification 13 9 | T_ASM T_ASMARG ';' 14 10 | error T_MATCHRBRACE 15 11 | error ';' 16 17 12 braces : T_LBRACE T_MATCHRBRACE 18 19 13 linkage_specification : T_EXTERN T_STRING_LITERAL braces 20 14 | T_EXTERN T_STRING_LITERAL declaration 21 22 15 declaration : decl_specifiers ';' 23 16 | decl_specifiers init_declarator_list ';' 24 25 17 $$1 : 26 27 18 declaration : any_typedef decl_specifiers $$1 opt_declarator_list ';' 28 29 19 any_typedef : T_EXTENSION T_TYPEDEF 30 20 | T_TYPEDEF 31 32 21 opt_declarator_list : 33 22 | declarator_list 34 35 23 declarator_list : declarator 36 24 | declarator_list ',' declarator 37 38 25 $$2 : 39 40 26 $$3 : 41 42 27 function_definition : decl_specifiers declarator $$2 opt_declaration_list T_LBRACE $$3 T_MATCHRBRACE 43 44 28 $$4 : 45 46 29 function_definition : declarator $$4 opt_declaration_list T_LBRACE T_MATCHRBRACE 47 48 30 opt_declaration_list : 49 31 | T_VA_DCL 50 32 | declaration_list 51 52 33 declaration_list : declaration 53 34 | declaration_list declaration 54 55 35 decl_specifiers : decl_specifier 56 36 | decl_specifiers decl_specifier 57 58 37 decl_specifier : storage_class 59 38 | type_specifier 60 39 | type_qualifier 61 62 40 storage_class : T_AUTO 63 41 | T_EXTERN 64 42 | T_REGISTER 65 43 | T_STATIC 66 44 | T_INLINE 67 45 | T_EXTENSION 68 69 46 type_specifier : T_CHAR 70 47 | T_DOUBLE 71 48 | T_FLOAT 72 49 | T_INT 73 50 | T_LONG 74 51 | T_SHORT 75 52 | T_SIGNED 76 53 | T_UNSIGNED 77 54 | T_VOID 78 55 | T_Bool 79 56 | T_Complex 80 57 | T_Imaginary 81 58 | T_TYPEDEF_NAME 82 59 | struct_or_union_specifier 83 60 | enum_specifier 84 85 61 type_qualifier : T_TYPE_QUALIFIER 86 62 | T_DEFINE_NAME 87 88 63 struct_or_union_specifier : struct_or_union any_id braces 89 64 | struct_or_union braces 90 65 | struct_or_union any_id 91 92 66 struct_or_union : T_STRUCT 93 67 | T_UNION 94 95 68 init_declarator_list : init_declarator 96 69 | init_declarator_list ',' init_declarator 97 98 70 init_declarator : declarator 99 100 71 $$5 : 101 102 72 init_declarator : declarator '=' $$5 T_INITIALIZER 103 104 73 enum_specifier : enumeration any_id braces 105 74 | enumeration braces 106 75 | enumeration any_id 107 108 76 enumeration : T_ENUM 109 110 77 any_id : T_IDENTIFIER 111 78 | T_TYPEDEF_NAME 112 113 79 declarator : pointer direct_declarator 114 80 | direct_declarator 115 116 81 direct_declarator : identifier_or_ref 117 82 | '(' declarator ')' 118 83 | direct_declarator T_BRACKETS 119 84 | direct_declarator '(' parameter_type_list ')' 120 85 | direct_declarator '(' opt_identifier_list ')' 121 122 86 pointer : '*' opt_type_qualifiers 123 87 | '*' opt_type_qualifiers pointer 124 125 88 opt_type_qualifiers : 126 89 | type_qualifier_list 127 128 90 type_qualifier_list : type_qualifier 129 91 | type_qualifier_list type_qualifier 130 131 92 parameter_type_list : parameter_list 132 93 | parameter_list ',' T_ELLIPSIS 133 134 94 parameter_list : parameter_declaration 135 95 | parameter_list ',' parameter_declaration 136 137 96 parameter_declaration : decl_specifiers declarator 138 97 | decl_specifiers abs_declarator 139 98 | decl_specifiers 140 141 99 opt_identifier_list : 142 100 | identifier_list 143 144 101 identifier_list : any_id 145 102 | identifier_list ',' any_id 146 147 103 identifier_or_ref : any_id 148 104 | '&' any_id 149 150 105 abs_declarator : pointer 151 106 | pointer direct_abs_declarator 152 107 | direct_abs_declarator 153 154 108 direct_abs_declarator : '(' abs_declarator ')' 155 109 | direct_abs_declarator T_BRACKETS 156 110 | T_BRACKETS 157 111 | direct_abs_declarator '(' parameter_type_list ')' 158 112 | direct_abs_declarator '(' ')' 159 113 | '(' parameter_type_list ')' 160 114 | '(' ')' 161 162state 0 163 $accept : . program $end (0) 164 program : . (1) 165 166 error shift 1 167 '(' shift 2 168 '*' shift 3 169 '&' shift 4 170 T_IDENTIFIER shift 5 171 T_TYPEDEF_NAME shift 6 172 T_DEFINE_NAME shift 7 173 T_AUTO shift 8 174 T_EXTERN shift 9 175 T_REGISTER shift 10 176 T_STATIC shift 11 177 T_TYPEDEF shift 12 178 T_INLINE shift 13 179 T_EXTENSION shift 14 180 T_CHAR shift 15 181 T_DOUBLE shift 16 182 T_FLOAT shift 17 183 T_INT shift 18 184 T_VOID shift 19 185 T_LONG shift 20 186 T_SHORT shift 21 187 T_SIGNED shift 22 188 T_UNSIGNED shift 23 189 T_ENUM shift 24 190 T_STRUCT shift 25 191 T_UNION shift 26 192 T_Bool shift 27 193 T_Complex shift 28 194 T_Imaginary shift 29 195 T_TYPE_QUALIFIER shift 30 196 T_ASM shift 31 197 ';' shift 32 198 $end reduce 1 199 200 program goto 33 201 decl_specifiers goto 34 202 decl_specifier goto 35 203 storage_class goto 36 204 type_specifier goto 37 205 type_qualifier goto 38 206 struct_or_union_specifier goto 39 207 enum_specifier goto 40 208 declarator goto 41 209 direct_declarator goto 42 210 struct_or_union goto 43 211 pointer goto 44 212 any_id goto 45 213 identifier_or_ref goto 46 214 enumeration goto 47 215 translation_unit goto 48 216 external_declaration goto 49 217 declaration goto 50 218 function_definition goto 51 219 linkage_specification goto 52 220 any_typedef goto 53 221 222 223state 1 224 external_declaration : error . T_MATCHRBRACE (10) 225 external_declaration : error . ';' (11) 226 227 T_MATCHRBRACE shift 54 228 ';' shift 55 229 . error 230 231 232state 2 233 direct_declarator : '(' . declarator ')' (82) 234 235 '(' shift 2 236 '*' shift 3 237 '&' shift 4 238 T_IDENTIFIER shift 5 239 T_TYPEDEF_NAME shift 56 240 . error 241 242 declarator goto 57 243 direct_declarator goto 42 244 pointer goto 44 245 any_id goto 45 246 identifier_or_ref goto 46 247 248 249state 3 250 pointer : '*' . opt_type_qualifiers (86) 251 pointer : '*' . opt_type_qualifiers pointer (87) 252 opt_type_qualifiers : . (88) 253 254 T_DEFINE_NAME shift 7 255 T_TYPE_QUALIFIER shift 30 256 '(' reduce 88 257 '*' reduce 88 258 '&' reduce 88 259 T_IDENTIFIER reduce 88 260 T_TYPEDEF_NAME reduce 88 261 T_BRACKETS reduce 88 262 ',' reduce 88 263 ')' reduce 88 264 265 type_qualifier goto 58 266 opt_type_qualifiers goto 59 267 type_qualifier_list goto 60 268 269 270state 4 271 identifier_or_ref : '&' . any_id (104) 272 273 T_IDENTIFIER shift 5 274 T_TYPEDEF_NAME shift 56 275 . error 276 277 any_id goto 61 278 279 280state 5 281 any_id : T_IDENTIFIER . (77) 282 283 . reduce 77 284 285 2866: reduce/reduce conflict (reduce 58, reduce 78) on '(' 2876: reduce/reduce conflict (reduce 58, reduce 78) on T_TYPEDEF_NAME 2886: reduce/reduce conflict (reduce 58, reduce 78) on T_DEFINE_NAME 2896: reduce/reduce conflict (reduce 58, reduce 78) on T_AUTO 2906: reduce/reduce conflict (reduce 58, reduce 78) on T_EXTERN 2916: reduce/reduce conflict (reduce 58, reduce 78) on T_REGISTER 2926: reduce/reduce conflict (reduce 58, reduce 78) on T_STATIC 2936: reduce/reduce conflict (reduce 58, reduce 78) on T_INLINE 2946: reduce/reduce conflict (reduce 58, reduce 78) on T_EXTENSION 2956: reduce/reduce conflict (reduce 58, reduce 78) on T_CHAR 2966: reduce/reduce conflict (reduce 58, reduce 78) on T_DOUBLE 2976: reduce/reduce conflict (reduce 58, reduce 78) on T_FLOAT 2986: reduce/reduce conflict (reduce 58, reduce 78) on T_INT 2996: reduce/reduce conflict (reduce 58, reduce 78) on T_VOID 3006: reduce/reduce conflict (reduce 58, reduce 78) on T_LONG 3016: reduce/reduce conflict (reduce 58, reduce 78) on T_SHORT 3026: reduce/reduce conflict (reduce 58, reduce 78) on T_SIGNED 3036: reduce/reduce conflict (reduce 58, reduce 78) on T_UNSIGNED 3046: reduce/reduce conflict (reduce 58, reduce 78) on T_ENUM 3056: reduce/reduce conflict (reduce 58, reduce 78) on T_STRUCT 3066: reduce/reduce conflict (reduce 58, reduce 78) on T_UNION 3076: reduce/reduce conflict (reduce 58, reduce 78) on T_Bool 3086: reduce/reduce conflict (reduce 58, reduce 78) on T_Complex 3096: reduce/reduce conflict (reduce 58, reduce 78) on T_Imaginary 3106: reduce/reduce conflict (reduce 58, reduce 78) on T_TYPE_QUALIFIER 3116: reduce/reduce conflict (reduce 58, reduce 78) on T_BRACKETS 3126: reduce/reduce conflict (reduce 58, reduce 78) on ';' 3136: reduce/reduce conflict (reduce 58, reduce 78) on ',' 3146: reduce/reduce conflict (reduce 58, reduce 78) on ')' 315state 6 316 type_specifier : T_TYPEDEF_NAME . (58) 317 any_id : T_TYPEDEF_NAME . (78) 318 319 '(' reduce 58 320 '*' reduce 58 321 '&' reduce 58 322 T_IDENTIFIER reduce 58 323 T_TYPEDEF_NAME reduce 58 324 T_DEFINE_NAME reduce 58 325 T_AUTO reduce 58 326 T_EXTERN reduce 58 327 T_REGISTER reduce 58 328 T_STATIC reduce 58 329 T_TYPEDEF reduce 78 330 T_INLINE reduce 58 331 T_EXTENSION reduce 58 332 T_CHAR reduce 58 333 T_DOUBLE reduce 58 334 T_FLOAT reduce 58 335 T_INT reduce 58 336 T_VOID reduce 58 337 T_LONG reduce 58 338 T_SHORT reduce 58 339 T_SIGNED reduce 58 340 T_UNSIGNED reduce 58 341 T_ENUM reduce 58 342 T_STRUCT reduce 58 343 T_UNION reduce 58 344 T_Bool reduce 58 345 T_Complex reduce 58 346 T_Imaginary reduce 58 347 T_TYPE_QUALIFIER reduce 58 348 T_BRACKETS reduce 58 349 T_LBRACE reduce 78 350 T_VA_DCL reduce 78 351 ';' reduce 58 352 ',' reduce 58 353 '=' reduce 78 354 ')' reduce 58 355 356 357state 7 358 type_qualifier : T_DEFINE_NAME . (62) 359 360 . reduce 62 361 362 363state 8 364 storage_class : T_AUTO . (40) 365 366 . reduce 40 367 368 369state 9 370 linkage_specification : T_EXTERN . T_STRING_LITERAL braces (13) 371 linkage_specification : T_EXTERN . T_STRING_LITERAL declaration (14) 372 storage_class : T_EXTERN . (41) 373 374 T_STRING_LITERAL shift 62 375 '(' reduce 41 376 '*' reduce 41 377 '&' reduce 41 378 T_IDENTIFIER reduce 41 379 T_TYPEDEF_NAME reduce 41 380 T_DEFINE_NAME reduce 41 381 T_AUTO reduce 41 382 T_EXTERN reduce 41 383 T_REGISTER reduce 41 384 T_STATIC reduce 41 385 T_INLINE reduce 41 386 T_EXTENSION reduce 41 387 T_CHAR reduce 41 388 T_DOUBLE reduce 41 389 T_FLOAT reduce 41 390 T_INT reduce 41 391 T_VOID reduce 41 392 T_LONG reduce 41 393 T_SHORT reduce 41 394 T_SIGNED reduce 41 395 T_UNSIGNED reduce 41 396 T_ENUM reduce 41 397 T_STRUCT reduce 41 398 T_UNION reduce 41 399 T_Bool reduce 41 400 T_Complex reduce 41 401 T_Imaginary reduce 41 402 T_TYPE_QUALIFIER reduce 41 403 ';' reduce 41 404 405 406state 10 407 storage_class : T_REGISTER . (42) 408 409 . reduce 42 410 411 412state 11 413 storage_class : T_STATIC . (43) 414 415 . reduce 43 416 417 418state 12 419 any_typedef : T_TYPEDEF . (20) 420 421 . reduce 20 422 423 424state 13 425 storage_class : T_INLINE . (44) 426 427 . reduce 44 428 429 430state 14 431 any_typedef : T_EXTENSION . T_TYPEDEF (19) 432 storage_class : T_EXTENSION . (45) 433 434 T_TYPEDEF shift 63 435 '(' reduce 45 436 '*' reduce 45 437 '&' reduce 45 438 T_IDENTIFIER reduce 45 439 T_TYPEDEF_NAME reduce 45 440 T_DEFINE_NAME reduce 45 441 T_AUTO reduce 45 442 T_EXTERN reduce 45 443 T_REGISTER reduce 45 444 T_STATIC reduce 45 445 T_INLINE reduce 45 446 T_EXTENSION reduce 45 447 T_CHAR reduce 45 448 T_DOUBLE reduce 45 449 T_FLOAT reduce 45 450 T_INT reduce 45 451 T_VOID reduce 45 452 T_LONG reduce 45 453 T_SHORT reduce 45 454 T_SIGNED reduce 45 455 T_UNSIGNED reduce 45 456 T_ENUM reduce 45 457 T_STRUCT reduce 45 458 T_UNION reduce 45 459 T_Bool reduce 45 460 T_Complex reduce 45 461 T_Imaginary reduce 45 462 T_TYPE_QUALIFIER reduce 45 463 ';' reduce 45 464 465 466state 15 467 type_specifier : T_CHAR . (46) 468 469 . reduce 46 470 471 472state 16 473 type_specifier : T_DOUBLE . (47) 474 475 . reduce 47 476 477 478state 17 479 type_specifier : T_FLOAT . (48) 480 481 . reduce 48 482 483 484state 18 485 type_specifier : T_INT . (49) 486 487 . reduce 49 488 489 490state 19 491 type_specifier : T_VOID . (54) 492 493 . reduce 54 494 495 496state 20 497 type_specifier : T_LONG . (50) 498 499 . reduce 50 500 501 502state 21 503 type_specifier : T_SHORT . (51) 504 505 . reduce 51 506 507 508state 22 509 type_specifier : T_SIGNED . (52) 510 511 . reduce 52 512 513 514state 23 515 type_specifier : T_UNSIGNED . (53) 516 517 . reduce 53 518 519 520state 24 521 enumeration : T_ENUM . (76) 522 523 . reduce 76 524 525 526state 25 527 struct_or_union : T_STRUCT . (66) 528 529 . reduce 66 530 531 532state 26 533 struct_or_union : T_UNION . (67) 534 535 . reduce 67 536 537 538state 27 539 type_specifier : T_Bool . (55) 540 541 . reduce 55 542 543 544state 28 545 type_specifier : T_Complex . (56) 546 547 . reduce 56 548 549 550state 29 551 type_specifier : T_Imaginary . (57) 552 553 . reduce 57 554 555 556state 30 557 type_qualifier : T_TYPE_QUALIFIER . (61) 558 559 . reduce 61 560 561 562state 31 563 external_declaration : T_ASM . T_ASMARG ';' (9) 564 565 T_ASMARG shift 64 566 . error 567 568 569state 32 570 external_declaration : ';' . (7) 571 572 . reduce 7 573 574 575state 33 576 $accept : program . $end (0) 577 578 $end accept 579 580 581state 34 582 declaration : decl_specifiers . ';' (15) 583 declaration : decl_specifiers . init_declarator_list ';' (16) 584 function_definition : decl_specifiers . declarator $$2 opt_declaration_list T_LBRACE $$3 T_MATCHRBRACE (27) 585 decl_specifiers : decl_specifiers . decl_specifier (36) 586 587 '(' shift 2 588 '*' shift 3 589 '&' shift 4 590 T_IDENTIFIER shift 5 591 T_TYPEDEF_NAME shift 6 592 T_DEFINE_NAME shift 7 593 T_AUTO shift 8 594 T_EXTERN shift 65 595 T_REGISTER shift 10 596 T_STATIC shift 11 597 T_INLINE shift 13 598 T_EXTENSION shift 66 599 T_CHAR shift 15 600 T_DOUBLE shift 16 601 T_FLOAT shift 17 602 T_INT shift 18 603 T_VOID shift 19 604 T_LONG shift 20 605 T_SHORT shift 21 606 T_SIGNED shift 22 607 T_UNSIGNED shift 23 608 T_ENUM shift 24 609 T_STRUCT shift 25 610 T_UNION shift 26 611 T_Bool shift 27 612 T_Complex shift 28 613 T_Imaginary shift 29 614 T_TYPE_QUALIFIER shift 30 615 ';' shift 67 616 . error 617 618 decl_specifier goto 68 619 storage_class goto 36 620 type_specifier goto 37 621 type_qualifier goto 38 622 struct_or_union_specifier goto 39 623 enum_specifier goto 40 624 init_declarator_list goto 69 625 init_declarator goto 70 626 declarator goto 71 627 direct_declarator goto 42 628 struct_or_union goto 43 629 pointer goto 44 630 any_id goto 45 631 identifier_or_ref goto 46 632 enumeration goto 47 633 634 635state 35 636 decl_specifiers : decl_specifier . (35) 637 638 . reduce 35 639 640 641state 36 642 decl_specifier : storage_class . (37) 643 644 . reduce 37 645 646 647state 37 648 decl_specifier : type_specifier . (38) 649 650 . reduce 38 651 652 653state 38 654 decl_specifier : type_qualifier . (39) 655 656 . reduce 39 657 658 659state 39 660 type_specifier : struct_or_union_specifier . (59) 661 662 . reduce 59 663 664 665state 40 666 type_specifier : enum_specifier . (60) 667 668 . reduce 60 669 670 671state 41 672 function_definition : declarator . $$4 opt_declaration_list T_LBRACE T_MATCHRBRACE (29) 673 $$4 : . (28) 674 675 . reduce 28 676 677 $$4 goto 72 678 679 680state 42 681 declarator : direct_declarator . (80) 682 direct_declarator : direct_declarator . T_BRACKETS (83) 683 direct_declarator : direct_declarator . '(' parameter_type_list ')' (84) 684 direct_declarator : direct_declarator . '(' opt_identifier_list ')' (85) 685 686 '(' shift 73 687 T_BRACKETS shift 74 688 T_TYPEDEF_NAME reduce 80 689 T_DEFINE_NAME reduce 80 690 T_AUTO reduce 80 691 T_EXTERN reduce 80 692 T_REGISTER reduce 80 693 T_STATIC reduce 80 694 T_TYPEDEF reduce 80 695 T_INLINE reduce 80 696 T_EXTENSION reduce 80 697 T_CHAR reduce 80 698 T_DOUBLE reduce 80 699 T_FLOAT reduce 80 700 T_INT reduce 80 701 T_VOID reduce 80 702 T_LONG reduce 80 703 T_SHORT reduce 80 704 T_SIGNED reduce 80 705 T_UNSIGNED reduce 80 706 T_ENUM reduce 80 707 T_STRUCT reduce 80 708 T_UNION reduce 80 709 T_Bool reduce 80 710 T_Complex reduce 80 711 T_Imaginary reduce 80 712 T_TYPE_QUALIFIER reduce 80 713 T_LBRACE reduce 80 714 T_VA_DCL reduce 80 715 ';' reduce 80 716 ',' reduce 80 717 '=' reduce 80 718 ')' reduce 80 719 720 721state 43 722 struct_or_union_specifier : struct_or_union . any_id braces (63) 723 struct_or_union_specifier : struct_or_union . braces (64) 724 struct_or_union_specifier : struct_or_union . any_id (65) 725 726 T_IDENTIFIER shift 5 727 T_TYPEDEF_NAME shift 56 728 T_LBRACE shift 75 729 . error 730 731 any_id goto 76 732 braces goto 77 733 734 735state 44 736 declarator : pointer . direct_declarator (79) 737 738 '(' shift 2 739 '&' shift 4 740 T_IDENTIFIER shift 5 741 T_TYPEDEF_NAME shift 56 742 . error 743 744 direct_declarator goto 78 745 any_id goto 45 746 identifier_or_ref goto 46 747 748 749state 45 750 identifier_or_ref : any_id . (103) 751 752 . reduce 103 753 754 755state 46 756 direct_declarator : identifier_or_ref . (81) 757 758 . reduce 81 759 760 761state 47 762 enum_specifier : enumeration . any_id braces (73) 763 enum_specifier : enumeration . braces (74) 764 enum_specifier : enumeration . any_id (75) 765 766 T_IDENTIFIER shift 5 767 T_TYPEDEF_NAME shift 56 768 T_LBRACE shift 75 769 . error 770 771 any_id goto 79 772 braces goto 80 773 774 775state 48 776 program : translation_unit . (2) 777 translation_unit : translation_unit . external_declaration (4) 778 779 error shift 1 780 '(' shift 2 781 '*' shift 3 782 '&' shift 4 783 T_IDENTIFIER shift 5 784 T_TYPEDEF_NAME shift 6 785 T_DEFINE_NAME shift 7 786 T_AUTO shift 8 787 T_EXTERN shift 9 788 T_REGISTER shift 10 789 T_STATIC shift 11 790 T_TYPEDEF shift 12 791 T_INLINE shift 13 792 T_EXTENSION shift 14 793 T_CHAR shift 15 794 T_DOUBLE shift 16 795 T_FLOAT shift 17 796 T_INT shift 18 797 T_VOID shift 19 798 T_LONG shift 20 799 T_SHORT shift 21 800 T_SIGNED shift 22 801 T_UNSIGNED shift 23 802 T_ENUM shift 24 803 T_STRUCT shift 25 804 T_UNION shift 26 805 T_Bool shift 27 806 T_Complex shift 28 807 T_Imaginary shift 29 808 T_TYPE_QUALIFIER shift 30 809 T_ASM shift 31 810 ';' shift 32 811 $end reduce 2 812 813 decl_specifiers goto 34 814 decl_specifier goto 35 815 storage_class goto 36 816 type_specifier goto 37 817 type_qualifier goto 38 818 struct_or_union_specifier goto 39 819 enum_specifier goto 40 820 declarator goto 41 821 direct_declarator goto 42 822 struct_or_union goto 43 823 pointer goto 44 824 any_id goto 45 825 identifier_or_ref goto 46 826 enumeration goto 47 827 external_declaration goto 81 828 declaration goto 50 829 function_definition goto 51 830 linkage_specification goto 52 831 any_typedef goto 53 832 833 834state 49 835 translation_unit : external_declaration . (3) 836 837 . reduce 3 838 839 840state 50 841 external_declaration : declaration . (5) 842 843 . reduce 5 844 845 846state 51 847 external_declaration : function_definition . (6) 848 849 . reduce 6 850 851 852state 52 853 external_declaration : linkage_specification . (8) 854 855 . reduce 8 856 857 858state 53 859 declaration : any_typedef . decl_specifiers $$1 opt_declarator_list ';' (18) 860 861 T_TYPEDEF_NAME shift 82 862 T_DEFINE_NAME shift 7 863 T_AUTO shift 8 864 T_EXTERN shift 65 865 T_REGISTER shift 10 866 T_STATIC shift 11 867 T_INLINE shift 13 868 T_EXTENSION shift 66 869 T_CHAR shift 15 870 T_DOUBLE shift 16 871 T_FLOAT shift 17 872 T_INT shift 18 873 T_VOID shift 19 874 T_LONG shift 20 875 T_SHORT shift 21 876 T_SIGNED shift 22 877 T_UNSIGNED shift 23 878 T_ENUM shift 24 879 T_STRUCT shift 25 880 T_UNION shift 26 881 T_Bool shift 27 882 T_Complex shift 28 883 T_Imaginary shift 29 884 T_TYPE_QUALIFIER shift 30 885 . error 886 887 decl_specifiers goto 83 888 decl_specifier goto 35 889 storage_class goto 36 890 type_specifier goto 37 891 type_qualifier goto 38 892 struct_or_union_specifier goto 39 893 enum_specifier goto 40 894 struct_or_union goto 43 895 enumeration goto 47 896 897 898state 54 899 external_declaration : error T_MATCHRBRACE . (10) 900 901 . reduce 10 902 903 904state 55 905 external_declaration : error ';' . (11) 906 907 . reduce 11 908 909 910state 56 911 any_id : T_TYPEDEF_NAME . (78) 912 913 . reduce 78 914 915 916state 57 917 direct_declarator : '(' declarator . ')' (82) 918 919 ')' shift 84 920 . error 921 922 923state 58 924 type_qualifier_list : type_qualifier . (90) 925 926 . reduce 90 927 928 929state 59 930 pointer : '*' opt_type_qualifiers . (86) 931 pointer : '*' opt_type_qualifiers . pointer (87) 932 933 '*' shift 3 934 '(' reduce 86 935 '&' reduce 86 936 T_IDENTIFIER reduce 86 937 T_TYPEDEF_NAME reduce 86 938 T_BRACKETS reduce 86 939 ',' reduce 86 940 ')' reduce 86 941 942 pointer goto 85 943 944 945state 60 946 opt_type_qualifiers : type_qualifier_list . (89) 947 type_qualifier_list : type_qualifier_list . type_qualifier (91) 948 949 T_DEFINE_NAME shift 7 950 T_TYPE_QUALIFIER shift 30 951 '(' reduce 89 952 '*' reduce 89 953 '&' reduce 89 954 T_IDENTIFIER reduce 89 955 T_TYPEDEF_NAME reduce 89 956 T_BRACKETS reduce 89 957 ',' reduce 89 958 ')' reduce 89 959 960 type_qualifier goto 86 961 962 963state 61 964 identifier_or_ref : '&' any_id . (104) 965 966 . reduce 104 967 968 969state 62 970 linkage_specification : T_EXTERN T_STRING_LITERAL . braces (13) 971 linkage_specification : T_EXTERN T_STRING_LITERAL . declaration (14) 972 973 T_TYPEDEF_NAME shift 82 974 T_DEFINE_NAME shift 7 975 T_AUTO shift 8 976 T_EXTERN shift 65 977 T_REGISTER shift 10 978 T_STATIC shift 11 979 T_TYPEDEF shift 12 980 T_INLINE shift 13 981 T_EXTENSION shift 14 982 T_CHAR shift 15 983 T_DOUBLE shift 16 984 T_FLOAT shift 17 985 T_INT shift 18 986 T_VOID shift 19 987 T_LONG shift 20 988 T_SHORT shift 21 989 T_SIGNED shift 22 990 T_UNSIGNED shift 23 991 T_ENUM shift 24 992 T_STRUCT shift 25 993 T_UNION shift 26 994 T_Bool shift 27 995 T_Complex shift 28 996 T_Imaginary shift 29 997 T_TYPE_QUALIFIER shift 30 998 T_LBRACE shift 75 999 . error 1000 1001 decl_specifiers goto 87 1002 decl_specifier goto 35 1003 storage_class goto 36 1004 type_specifier goto 37 1005 type_qualifier goto 38 1006 struct_or_union_specifier goto 39 1007 enum_specifier goto 40 1008 struct_or_union goto 43 1009 enumeration goto 47 1010 declaration goto 88 1011 braces goto 89 1012 any_typedef goto 53 1013 1014 1015state 63 1016 any_typedef : T_EXTENSION T_TYPEDEF . (19) 1017 1018 . reduce 19 1019 1020 1021state 64 1022 external_declaration : T_ASM T_ASMARG . ';' (9) 1023 1024 ';' shift 90 1025 . error 1026 1027 1028state 65 1029 storage_class : T_EXTERN . (41) 1030 1031 . reduce 41 1032 1033 1034state 66 1035 storage_class : T_EXTENSION . (45) 1036 1037 . reduce 45 1038 1039 1040state 67 1041 declaration : decl_specifiers ';' . (15) 1042 1043 . reduce 15 1044 1045 1046state 68 1047 decl_specifiers : decl_specifiers decl_specifier . (36) 1048 1049 . reduce 36 1050 1051 1052state 69 1053 declaration : decl_specifiers init_declarator_list . ';' (16) 1054 init_declarator_list : init_declarator_list . ',' init_declarator (69) 1055 1056 ';' shift 91 1057 ',' shift 92 1058 . error 1059 1060 1061state 70 1062 init_declarator_list : init_declarator . (68) 1063 1064 . reduce 68 1065 1066 1067state 71 1068 function_definition : decl_specifiers declarator . $$2 opt_declaration_list T_LBRACE $$3 T_MATCHRBRACE (27) 1069 init_declarator : declarator . (70) 1070 init_declarator : declarator . '=' $$5 T_INITIALIZER (72) 1071 $$2 : . (25) 1072 1073 '=' shift 93 1074 T_TYPEDEF_NAME reduce 25 1075 T_DEFINE_NAME reduce 25 1076 T_AUTO reduce 25 1077 T_EXTERN reduce 25 1078 T_REGISTER reduce 25 1079 T_STATIC reduce 25 1080 T_TYPEDEF reduce 25 1081 T_INLINE reduce 25 1082 T_EXTENSION reduce 25 1083 T_CHAR reduce 25 1084 T_DOUBLE reduce 25 1085 T_FLOAT reduce 25 1086 T_INT reduce 25 1087 T_VOID reduce 25 1088 T_LONG reduce 25 1089 T_SHORT reduce 25 1090 T_SIGNED reduce 25 1091 T_UNSIGNED reduce 25 1092 T_ENUM reduce 25 1093 T_STRUCT reduce 25 1094 T_UNION reduce 25 1095 T_Bool reduce 25 1096 T_Complex reduce 25 1097 T_Imaginary reduce 25 1098 T_TYPE_QUALIFIER reduce 25 1099 T_LBRACE reduce 25 1100 T_VA_DCL reduce 25 1101 ';' reduce 70 1102 ',' reduce 70 1103 1104 $$2 goto 94 1105 1106 1107state 72 1108 function_definition : declarator $$4 . opt_declaration_list T_LBRACE T_MATCHRBRACE (29) 1109 opt_declaration_list : . (30) 1110 1111 T_TYPEDEF_NAME shift 82 1112 T_DEFINE_NAME shift 7 1113 T_AUTO shift 8 1114 T_EXTERN shift 65 1115 T_REGISTER shift 10 1116 T_STATIC shift 11 1117 T_TYPEDEF shift 12 1118 T_INLINE shift 13 1119 T_EXTENSION shift 14 1120 T_CHAR shift 15 1121 T_DOUBLE shift 16 1122 T_FLOAT shift 17 1123 T_INT shift 18 1124 T_VOID shift 19 1125 T_LONG shift 20 1126 T_SHORT shift 21 1127 T_SIGNED shift 22 1128 T_UNSIGNED shift 23 1129 T_ENUM shift 24 1130 T_STRUCT shift 25 1131 T_UNION shift 26 1132 T_Bool shift 27 1133 T_Complex shift 28 1134 T_Imaginary shift 29 1135 T_TYPE_QUALIFIER shift 30 1136 T_VA_DCL shift 95 1137 T_LBRACE reduce 30 1138 1139 decl_specifiers goto 87 1140 decl_specifier goto 35 1141 storage_class goto 36 1142 type_specifier goto 37 1143 type_qualifier goto 38 1144 struct_or_union_specifier goto 39 1145 enum_specifier goto 40 1146 struct_or_union goto 43 1147 enumeration goto 47 1148 declaration goto 96 1149 any_typedef goto 53 1150 opt_declaration_list goto 97 1151 declaration_list goto 98 1152 1153 1154state 73 1155 direct_declarator : direct_declarator '(' . parameter_type_list ')' (84) 1156 direct_declarator : direct_declarator '(' . opt_identifier_list ')' (85) 1157 opt_identifier_list : . (99) 1158 1159 T_IDENTIFIER shift 5 1160 T_TYPEDEF_NAME shift 6 1161 T_DEFINE_NAME shift 7 1162 T_AUTO shift 8 1163 T_EXTERN shift 65 1164 T_REGISTER shift 10 1165 T_STATIC shift 11 1166 T_INLINE shift 13 1167 T_EXTENSION shift 66 1168 T_CHAR shift 15 1169 T_DOUBLE shift 16 1170 T_FLOAT shift 17 1171 T_INT shift 18 1172 T_VOID shift 19 1173 T_LONG shift 20 1174 T_SHORT shift 21 1175 T_SIGNED shift 22 1176 T_UNSIGNED shift 23 1177 T_ENUM shift 24 1178 T_STRUCT shift 25 1179 T_UNION shift 26 1180 T_Bool shift 27 1181 T_Complex shift 28 1182 T_Imaginary shift 29 1183 T_TYPE_QUALIFIER shift 30 1184 ')' reduce 99 1185 1186 decl_specifiers goto 99 1187 decl_specifier goto 35 1188 storage_class goto 36 1189 type_specifier goto 37 1190 type_qualifier goto 38 1191 struct_or_union_specifier goto 39 1192 enum_specifier goto 40 1193 parameter_type_list goto 100 1194 parameter_list goto 101 1195 parameter_declaration goto 102 1196 opt_identifier_list goto 103 1197 identifier_list goto 104 1198 struct_or_union goto 43 1199 any_id goto 105 1200 enumeration goto 47 1201 1202 1203state 74 1204 direct_declarator : direct_declarator T_BRACKETS . (83) 1205 1206 . reduce 83 1207 1208 1209state 75 1210 braces : T_LBRACE . T_MATCHRBRACE (12) 1211 1212 T_MATCHRBRACE shift 106 1213 . error 1214 1215 1216state 76 1217 struct_or_union_specifier : struct_or_union any_id . braces (63) 1218 struct_or_union_specifier : struct_or_union any_id . (65) 1219 1220 T_LBRACE shift 75 1221 '(' reduce 65 1222 '*' reduce 65 1223 '&' reduce 65 1224 T_IDENTIFIER reduce 65 1225 T_TYPEDEF_NAME reduce 65 1226 T_DEFINE_NAME reduce 65 1227 T_AUTO reduce 65 1228 T_EXTERN reduce 65 1229 T_REGISTER reduce 65 1230 T_STATIC reduce 65 1231 T_INLINE reduce 65 1232 T_EXTENSION reduce 65 1233 T_CHAR reduce 65 1234 T_DOUBLE reduce 65 1235 T_FLOAT reduce 65 1236 T_INT reduce 65 1237 T_VOID reduce 65 1238 T_LONG reduce 65 1239 T_SHORT reduce 65 1240 T_SIGNED reduce 65 1241 T_UNSIGNED reduce 65 1242 T_ENUM reduce 65 1243 T_STRUCT reduce 65 1244 T_UNION reduce 65 1245 T_Bool reduce 65 1246 T_Complex reduce 65 1247 T_Imaginary reduce 65 1248 T_TYPE_QUALIFIER reduce 65 1249 T_BRACKETS reduce 65 1250 ';' reduce 65 1251 ',' reduce 65 1252 ')' reduce 65 1253 1254 braces goto 107 1255 1256 1257state 77 1258 struct_or_union_specifier : struct_or_union braces . (64) 1259 1260 . reduce 64 1261 1262 1263state 78 1264 declarator : pointer direct_declarator . (79) 1265 direct_declarator : direct_declarator . T_BRACKETS (83) 1266 direct_declarator : direct_declarator . '(' parameter_type_list ')' (84) 1267 direct_declarator : direct_declarator . '(' opt_identifier_list ')' (85) 1268 1269 '(' shift 73 1270 T_BRACKETS shift 74 1271 T_TYPEDEF_NAME reduce 79 1272 T_DEFINE_NAME reduce 79 1273 T_AUTO reduce 79 1274 T_EXTERN reduce 79 1275 T_REGISTER reduce 79 1276 T_STATIC reduce 79 1277 T_TYPEDEF reduce 79 1278 T_INLINE reduce 79 1279 T_EXTENSION reduce 79 1280 T_CHAR reduce 79 1281 T_DOUBLE reduce 79 1282 T_FLOAT reduce 79 1283 T_INT reduce 79 1284 T_VOID reduce 79 1285 T_LONG reduce 79 1286 T_SHORT reduce 79 1287 T_SIGNED reduce 79 1288 T_UNSIGNED reduce 79 1289 T_ENUM reduce 79 1290 T_STRUCT reduce 79 1291 T_UNION reduce 79 1292 T_Bool reduce 79 1293 T_Complex reduce 79 1294 T_Imaginary reduce 79 1295 T_TYPE_QUALIFIER reduce 79 1296 T_LBRACE reduce 79 1297 T_VA_DCL reduce 79 1298 ';' reduce 79 1299 ',' reduce 79 1300 '=' reduce 79 1301 ')' reduce 79 1302 1303 1304state 79 1305 enum_specifier : enumeration any_id . braces (73) 1306 enum_specifier : enumeration any_id . (75) 1307 1308 T_LBRACE shift 75 1309 '(' reduce 75 1310 '*' reduce 75 1311 '&' reduce 75 1312 T_IDENTIFIER reduce 75 1313 T_TYPEDEF_NAME reduce 75 1314 T_DEFINE_NAME reduce 75 1315 T_AUTO reduce 75 1316 T_EXTERN reduce 75 1317 T_REGISTER reduce 75 1318 T_STATIC reduce 75 1319 T_INLINE reduce 75 1320 T_EXTENSION reduce 75 1321 T_CHAR reduce 75 1322 T_DOUBLE reduce 75 1323 T_FLOAT reduce 75 1324 T_INT reduce 75 1325 T_VOID reduce 75 1326 T_LONG reduce 75 1327 T_SHORT reduce 75 1328 T_SIGNED reduce 75 1329 T_UNSIGNED reduce 75 1330 T_ENUM reduce 75 1331 T_STRUCT reduce 75 1332 T_UNION reduce 75 1333 T_Bool reduce 75 1334 T_Complex reduce 75 1335 T_Imaginary reduce 75 1336 T_TYPE_QUALIFIER reduce 75 1337 T_BRACKETS reduce 75 1338 ';' reduce 75 1339 ',' reduce 75 1340 ')' reduce 75 1341 1342 braces goto 108 1343 1344 1345state 80 1346 enum_specifier : enumeration braces . (74) 1347 1348 . reduce 74 1349 1350 1351state 81 1352 translation_unit : translation_unit external_declaration . (4) 1353 1354 . reduce 4 1355 1356 1357state 82 1358 type_specifier : T_TYPEDEF_NAME . (58) 1359 1360 . reduce 58 1361 1362 136383: shift/reduce conflict (shift 82, reduce 17) on T_TYPEDEF_NAME 1364state 83 1365 declaration : any_typedef decl_specifiers . $$1 opt_declarator_list ';' (18) 1366 decl_specifiers : decl_specifiers . decl_specifier (36) 1367 $$1 : . (17) 1368 1369 T_TYPEDEF_NAME shift 82 1370 T_DEFINE_NAME shift 7 1371 T_AUTO shift 8 1372 T_EXTERN shift 65 1373 T_REGISTER shift 10 1374 T_STATIC shift 11 1375 T_INLINE shift 13 1376 T_EXTENSION shift 66 1377 T_CHAR shift 15 1378 T_DOUBLE shift 16 1379 T_FLOAT shift 17 1380 T_INT shift 18 1381 T_VOID shift 19 1382 T_LONG shift 20 1383 T_SHORT shift 21 1384 T_SIGNED shift 22 1385 T_UNSIGNED shift 23 1386 T_ENUM shift 24 1387 T_STRUCT shift 25 1388 T_UNION shift 26 1389 T_Bool shift 27 1390 T_Complex shift 28 1391 T_Imaginary shift 29 1392 T_TYPE_QUALIFIER shift 30 1393 '(' reduce 17 1394 '*' reduce 17 1395 '&' reduce 17 1396 T_IDENTIFIER reduce 17 1397 ';' reduce 17 1398 1399 decl_specifier goto 68 1400 storage_class goto 36 1401 type_specifier goto 37 1402 type_qualifier goto 38 1403 struct_or_union_specifier goto 39 1404 enum_specifier goto 40 1405 struct_or_union goto 43 1406 enumeration goto 47 1407 $$1 goto 109 1408 1409 1410state 84 1411 direct_declarator : '(' declarator ')' . (82) 1412 1413 . reduce 82 1414 1415 1416state 85 1417 pointer : '*' opt_type_qualifiers pointer . (87) 1418 1419 . reduce 87 1420 1421 1422state 86 1423 type_qualifier_list : type_qualifier_list type_qualifier . (91) 1424 1425 . reduce 91 1426 1427 1428state 87 1429 declaration : decl_specifiers . ';' (15) 1430 declaration : decl_specifiers . init_declarator_list ';' (16) 1431 decl_specifiers : decl_specifiers . decl_specifier (36) 1432 1433 '(' shift 2 1434 '*' shift 3 1435 '&' shift 4 1436 T_IDENTIFIER shift 5 1437 T_TYPEDEF_NAME shift 6 1438 T_DEFINE_NAME shift 7 1439 T_AUTO shift 8 1440 T_EXTERN shift 65 1441 T_REGISTER shift 10 1442 T_STATIC shift 11 1443 T_INLINE shift 13 1444 T_EXTENSION shift 66 1445 T_CHAR shift 15 1446 T_DOUBLE shift 16 1447 T_FLOAT shift 17 1448 T_INT shift 18 1449 T_VOID shift 19 1450 T_LONG shift 20 1451 T_SHORT shift 21 1452 T_SIGNED shift 22 1453 T_UNSIGNED shift 23 1454 T_ENUM shift 24 1455 T_STRUCT shift 25 1456 T_UNION shift 26 1457 T_Bool shift 27 1458 T_Complex shift 28 1459 T_Imaginary shift 29 1460 T_TYPE_QUALIFIER shift 30 1461 ';' shift 67 1462 . error 1463 1464 decl_specifier goto 68 1465 storage_class goto 36 1466 type_specifier goto 37 1467 type_qualifier goto 38 1468 struct_or_union_specifier goto 39 1469 enum_specifier goto 40 1470 init_declarator_list goto 69 1471 init_declarator goto 70 1472 declarator goto 110 1473 direct_declarator goto 42 1474 struct_or_union goto 43 1475 pointer goto 44 1476 any_id goto 45 1477 identifier_or_ref goto 46 1478 enumeration goto 47 1479 1480 1481state 88 1482 linkage_specification : T_EXTERN T_STRING_LITERAL declaration . (14) 1483 1484 . reduce 14 1485 1486 1487state 89 1488 linkage_specification : T_EXTERN T_STRING_LITERAL braces . (13) 1489 1490 . reduce 13 1491 1492 1493state 90 1494 external_declaration : T_ASM T_ASMARG ';' . (9) 1495 1496 . reduce 9 1497 1498 1499state 91 1500 declaration : decl_specifiers init_declarator_list ';' . (16) 1501 1502 . reduce 16 1503 1504 1505state 92 1506 init_declarator_list : init_declarator_list ',' . init_declarator (69) 1507 1508 '(' shift 2 1509 '*' shift 3 1510 '&' shift 4 1511 T_IDENTIFIER shift 5 1512 T_TYPEDEF_NAME shift 56 1513 . error 1514 1515 init_declarator goto 111 1516 declarator goto 110 1517 direct_declarator goto 42 1518 pointer goto 44 1519 any_id goto 45 1520 identifier_or_ref goto 46 1521 1522 1523state 93 1524 init_declarator : declarator '=' . $$5 T_INITIALIZER (72) 1525 $$5 : . (71) 1526 1527 . reduce 71 1528 1529 $$5 goto 112 1530 1531 1532state 94 1533 function_definition : decl_specifiers declarator $$2 . opt_declaration_list T_LBRACE $$3 T_MATCHRBRACE (27) 1534 opt_declaration_list : . (30) 1535 1536 T_TYPEDEF_NAME shift 82 1537 T_DEFINE_NAME shift 7 1538 T_AUTO shift 8 1539 T_EXTERN shift 65 1540 T_REGISTER shift 10 1541 T_STATIC shift 11 1542 T_TYPEDEF shift 12 1543 T_INLINE shift 13 1544 T_EXTENSION shift 14 1545 T_CHAR shift 15 1546 T_DOUBLE shift 16 1547 T_FLOAT shift 17 1548 T_INT shift 18 1549 T_VOID shift 19 1550 T_LONG shift 20 1551 T_SHORT shift 21 1552 T_SIGNED shift 22 1553 T_UNSIGNED shift 23 1554 T_ENUM shift 24 1555 T_STRUCT shift 25 1556 T_UNION shift 26 1557 T_Bool shift 27 1558 T_Complex shift 28 1559 T_Imaginary shift 29 1560 T_TYPE_QUALIFIER shift 30 1561 T_VA_DCL shift 95 1562 T_LBRACE reduce 30 1563 1564 decl_specifiers goto 87 1565 decl_specifier goto 35 1566 storage_class goto 36 1567 type_specifier goto 37 1568 type_qualifier goto 38 1569 struct_or_union_specifier goto 39 1570 enum_specifier goto 40 1571 struct_or_union goto 43 1572 enumeration goto 47 1573 declaration goto 96 1574 any_typedef goto 53 1575 opt_declaration_list goto 113 1576 declaration_list goto 98 1577 1578 1579state 95 1580 opt_declaration_list : T_VA_DCL . (31) 1581 1582 . reduce 31 1583 1584 1585state 96 1586 declaration_list : declaration . (33) 1587 1588 . reduce 33 1589 1590 1591state 97 1592 function_definition : declarator $$4 opt_declaration_list . T_LBRACE T_MATCHRBRACE (29) 1593 1594 T_LBRACE shift 114 1595 . error 1596 1597 1598state 98 1599 opt_declaration_list : declaration_list . (32) 1600 declaration_list : declaration_list . declaration (34) 1601 1602 T_TYPEDEF_NAME shift 82 1603 T_DEFINE_NAME shift 7 1604 T_AUTO shift 8 1605 T_EXTERN shift 65 1606 T_REGISTER shift 10 1607 T_STATIC shift 11 1608 T_TYPEDEF shift 12 1609 T_INLINE shift 13 1610 T_EXTENSION shift 14 1611 T_CHAR shift 15 1612 T_DOUBLE shift 16 1613 T_FLOAT shift 17 1614 T_INT shift 18 1615 T_VOID shift 19 1616 T_LONG shift 20 1617 T_SHORT shift 21 1618 T_SIGNED shift 22 1619 T_UNSIGNED shift 23 1620 T_ENUM shift 24 1621 T_STRUCT shift 25 1622 T_UNION shift 26 1623 T_Bool shift 27 1624 T_Complex shift 28 1625 T_Imaginary shift 29 1626 T_TYPE_QUALIFIER shift 30 1627 T_LBRACE reduce 32 1628 1629 decl_specifiers goto 87 1630 decl_specifier goto 35 1631 storage_class goto 36 1632 type_specifier goto 37 1633 type_qualifier goto 38 1634 struct_or_union_specifier goto 39 1635 enum_specifier goto 40 1636 struct_or_union goto 43 1637 enumeration goto 47 1638 declaration goto 115 1639 any_typedef goto 53 1640 1641 1642state 99 1643 decl_specifiers : decl_specifiers . decl_specifier (36) 1644 parameter_declaration : decl_specifiers . declarator (96) 1645 parameter_declaration : decl_specifiers . abs_declarator (97) 1646 parameter_declaration : decl_specifiers . (98) 1647 1648 '(' shift 116 1649 '*' shift 3 1650 '&' shift 4 1651 T_IDENTIFIER shift 5 1652 T_TYPEDEF_NAME shift 6 1653 T_DEFINE_NAME shift 7 1654 T_AUTO shift 8 1655 T_EXTERN shift 65 1656 T_REGISTER shift 10 1657 T_STATIC shift 11 1658 T_INLINE shift 13 1659 T_EXTENSION shift 66 1660 T_CHAR shift 15 1661 T_DOUBLE shift 16 1662 T_FLOAT shift 17 1663 T_INT shift 18 1664 T_VOID shift 19 1665 T_LONG shift 20 1666 T_SHORT shift 21 1667 T_SIGNED shift 22 1668 T_UNSIGNED shift 23 1669 T_ENUM shift 24 1670 T_STRUCT shift 25 1671 T_UNION shift 26 1672 T_Bool shift 27 1673 T_Complex shift 28 1674 T_Imaginary shift 29 1675 T_TYPE_QUALIFIER shift 30 1676 T_BRACKETS shift 117 1677 ',' reduce 98 1678 ')' reduce 98 1679 1680 decl_specifier goto 68 1681 storage_class goto 36 1682 type_specifier goto 37 1683 type_qualifier goto 38 1684 struct_or_union_specifier goto 39 1685 enum_specifier goto 40 1686 declarator goto 118 1687 direct_declarator goto 42 1688 abs_declarator goto 119 1689 direct_abs_declarator goto 120 1690 struct_or_union goto 43 1691 pointer goto 121 1692 any_id goto 45 1693 identifier_or_ref goto 46 1694 enumeration goto 47 1695 1696 1697state 100 1698 direct_declarator : direct_declarator '(' parameter_type_list . ')' (84) 1699 1700 ')' shift 122 1701 . error 1702 1703 1704state 101 1705 parameter_type_list : parameter_list . (92) 1706 parameter_type_list : parameter_list . ',' T_ELLIPSIS (93) 1707 parameter_list : parameter_list . ',' parameter_declaration (95) 1708 1709 ',' shift 123 1710 ')' reduce 92 1711 1712 1713state 102 1714 parameter_list : parameter_declaration . (94) 1715 1716 . reduce 94 1717 1718 1719state 103 1720 direct_declarator : direct_declarator '(' opt_identifier_list . ')' (85) 1721 1722 ')' shift 124 1723 . error 1724 1725 1726state 104 1727 opt_identifier_list : identifier_list . (100) 1728 identifier_list : identifier_list . ',' any_id (102) 1729 1730 ',' shift 125 1731 ')' reduce 100 1732 1733 1734state 105 1735 identifier_list : any_id . (101) 1736 1737 . reduce 101 1738 1739 1740state 106 1741 braces : T_LBRACE T_MATCHRBRACE . (12) 1742 1743 . reduce 12 1744 1745 1746state 107 1747 struct_or_union_specifier : struct_or_union any_id braces . (63) 1748 1749 . reduce 63 1750 1751 1752state 108 1753 enum_specifier : enumeration any_id braces . (73) 1754 1755 . reduce 73 1756 1757 1758state 109 1759 declaration : any_typedef decl_specifiers $$1 . opt_declarator_list ';' (18) 1760 opt_declarator_list : . (21) 1761 1762 '(' shift 2 1763 '*' shift 3 1764 '&' shift 4 1765 T_IDENTIFIER shift 5 1766 T_TYPEDEF_NAME shift 56 1767 ';' reduce 21 1768 1769 declarator goto 126 1770 direct_declarator goto 42 1771 pointer goto 44 1772 any_id goto 45 1773 identifier_or_ref goto 46 1774 opt_declarator_list goto 127 1775 declarator_list goto 128 1776 1777 1778state 110 1779 init_declarator : declarator . (70) 1780 init_declarator : declarator . '=' $$5 T_INITIALIZER (72) 1781 1782 '=' shift 93 1783 ';' reduce 70 1784 ',' reduce 70 1785 1786 1787state 111 1788 init_declarator_list : init_declarator_list ',' init_declarator . (69) 1789 1790 . reduce 69 1791 1792 1793state 112 1794 init_declarator : declarator '=' $$5 . T_INITIALIZER (72) 1795 1796 T_INITIALIZER shift 129 1797 . error 1798 1799 1800state 113 1801 function_definition : decl_specifiers declarator $$2 opt_declaration_list . T_LBRACE $$3 T_MATCHRBRACE (27) 1802 1803 T_LBRACE shift 130 1804 . error 1805 1806 1807state 114 1808 function_definition : declarator $$4 opt_declaration_list T_LBRACE . T_MATCHRBRACE (29) 1809 1810 T_MATCHRBRACE shift 131 1811 . error 1812 1813 1814state 115 1815 declaration_list : declaration_list declaration . (34) 1816 1817 . reduce 34 1818 1819 1820state 116 1821 direct_declarator : '(' . declarator ')' (82) 1822 direct_abs_declarator : '(' . abs_declarator ')' (108) 1823 direct_abs_declarator : '(' . parameter_type_list ')' (113) 1824 direct_abs_declarator : '(' . ')' (114) 1825 1826 '(' shift 116 1827 '*' shift 3 1828 '&' shift 4 1829 T_IDENTIFIER shift 5 1830 T_TYPEDEF_NAME shift 6 1831 T_DEFINE_NAME shift 7 1832 T_AUTO shift 8 1833 T_EXTERN shift 65 1834 T_REGISTER shift 10 1835 T_STATIC shift 11 1836 T_INLINE shift 13 1837 T_EXTENSION shift 66 1838 T_CHAR shift 15 1839 T_DOUBLE shift 16 1840 T_FLOAT shift 17 1841 T_INT shift 18 1842 T_VOID shift 19 1843 T_LONG shift 20 1844 T_SHORT shift 21 1845 T_SIGNED shift 22 1846 T_UNSIGNED shift 23 1847 T_ENUM shift 24 1848 T_STRUCT shift 25 1849 T_UNION shift 26 1850 T_Bool shift 27 1851 T_Complex shift 28 1852 T_Imaginary shift 29 1853 T_TYPE_QUALIFIER shift 30 1854 T_BRACKETS shift 117 1855 ')' shift 132 1856 . error 1857 1858 decl_specifiers goto 99 1859 decl_specifier goto 35 1860 storage_class goto 36 1861 type_specifier goto 37 1862 type_qualifier goto 38 1863 struct_or_union_specifier goto 39 1864 enum_specifier goto 40 1865 declarator goto 57 1866 direct_declarator goto 42 1867 abs_declarator goto 133 1868 direct_abs_declarator goto 120 1869 parameter_type_list goto 134 1870 parameter_list goto 101 1871 parameter_declaration goto 102 1872 struct_or_union goto 43 1873 pointer goto 121 1874 any_id goto 45 1875 identifier_or_ref goto 46 1876 enumeration goto 47 1877 1878 1879state 117 1880 direct_abs_declarator : T_BRACKETS . (110) 1881 1882 . reduce 110 1883 1884 1885state 118 1886 parameter_declaration : decl_specifiers declarator . (96) 1887 1888 . reduce 96 1889 1890 1891state 119 1892 parameter_declaration : decl_specifiers abs_declarator . (97) 1893 1894 . reduce 97 1895 1896 1897state 120 1898 abs_declarator : direct_abs_declarator . (107) 1899 direct_abs_declarator : direct_abs_declarator . T_BRACKETS (109) 1900 direct_abs_declarator : direct_abs_declarator . '(' parameter_type_list ')' (111) 1901 direct_abs_declarator : direct_abs_declarator . '(' ')' (112) 1902 1903 '(' shift 135 1904 T_BRACKETS shift 136 1905 ',' reduce 107 1906 ')' reduce 107 1907 1908 1909state 121 1910 declarator : pointer . direct_declarator (79) 1911 abs_declarator : pointer . (105) 1912 abs_declarator : pointer . direct_abs_declarator (106) 1913 1914 '(' shift 116 1915 '&' shift 4 1916 T_IDENTIFIER shift 5 1917 T_TYPEDEF_NAME shift 56 1918 T_BRACKETS shift 117 1919 ',' reduce 105 1920 ')' reduce 105 1921 1922 direct_declarator goto 78 1923 direct_abs_declarator goto 137 1924 any_id goto 45 1925 identifier_or_ref goto 46 1926 1927 1928state 122 1929 direct_declarator : direct_declarator '(' parameter_type_list ')' . (84) 1930 1931 . reduce 84 1932 1933 1934state 123 1935 parameter_type_list : parameter_list ',' . T_ELLIPSIS (93) 1936 parameter_list : parameter_list ',' . parameter_declaration (95) 1937 1938 T_TYPEDEF_NAME shift 82 1939 T_DEFINE_NAME shift 7 1940 T_AUTO shift 8 1941 T_EXTERN shift 65 1942 T_REGISTER shift 10 1943 T_STATIC shift 11 1944 T_INLINE shift 13 1945 T_EXTENSION shift 66 1946 T_CHAR shift 15 1947 T_DOUBLE shift 16 1948 T_FLOAT shift 17 1949 T_INT shift 18 1950 T_VOID shift 19 1951 T_LONG shift 20 1952 T_SHORT shift 21 1953 T_SIGNED shift 22 1954 T_UNSIGNED shift 23 1955 T_ENUM shift 24 1956 T_STRUCT shift 25 1957 T_UNION shift 26 1958 T_Bool shift 27 1959 T_Complex shift 28 1960 T_Imaginary shift 29 1961 T_TYPE_QUALIFIER shift 30 1962 T_ELLIPSIS shift 138 1963 . error 1964 1965 decl_specifiers goto 99 1966 decl_specifier goto 35 1967 storage_class goto 36 1968 type_specifier goto 37 1969 type_qualifier goto 38 1970 struct_or_union_specifier goto 39 1971 enum_specifier goto 40 1972 parameter_declaration goto 139 1973 struct_or_union goto 43 1974 enumeration goto 47 1975 1976 1977state 124 1978 direct_declarator : direct_declarator '(' opt_identifier_list ')' . (85) 1979 1980 . reduce 85 1981 1982 1983state 125 1984 identifier_list : identifier_list ',' . any_id (102) 1985 1986 T_IDENTIFIER shift 5 1987 T_TYPEDEF_NAME shift 56 1988 . error 1989 1990 any_id goto 140 1991 1992 1993state 126 1994 declarator_list : declarator . (23) 1995 1996 . reduce 23 1997 1998 1999state 127 2000 declaration : any_typedef decl_specifiers $$1 opt_declarator_list . ';' (18) 2001 2002 ';' shift 141 2003 . error 2004 2005 2006state 128 2007 opt_declarator_list : declarator_list . (22) 2008 declarator_list : declarator_list . ',' declarator (24) 2009 2010 ',' shift 142 2011 ';' reduce 22 2012 2013 2014state 129 2015 init_declarator : declarator '=' $$5 T_INITIALIZER . (72) 2016 2017 . reduce 72 2018 2019 2020state 130 2021 function_definition : decl_specifiers declarator $$2 opt_declaration_list T_LBRACE . $$3 T_MATCHRBRACE (27) 2022 $$3 : . (26) 2023 2024 . reduce 26 2025 2026 $$3 goto 143 2027 2028 2029state 131 2030 function_definition : declarator $$4 opt_declaration_list T_LBRACE T_MATCHRBRACE . (29) 2031 2032 . reduce 29 2033 2034 2035state 132 2036 direct_abs_declarator : '(' ')' . (114) 2037 2038 . reduce 114 2039 2040 2041state 133 2042 direct_abs_declarator : '(' abs_declarator . ')' (108) 2043 2044 ')' shift 144 2045 . error 2046 2047 2048state 134 2049 direct_abs_declarator : '(' parameter_type_list . ')' (113) 2050 2051 ')' shift 145 2052 . error 2053 2054 2055state 135 2056 direct_abs_declarator : direct_abs_declarator '(' . parameter_type_list ')' (111) 2057 direct_abs_declarator : direct_abs_declarator '(' . ')' (112) 2058 2059 T_TYPEDEF_NAME shift 82 2060 T_DEFINE_NAME shift 7 2061 T_AUTO shift 8 2062 T_EXTERN shift 65 2063 T_REGISTER shift 10 2064 T_STATIC shift 11 2065 T_INLINE shift 13 2066 T_EXTENSION shift 66 2067 T_CHAR shift 15 2068 T_DOUBLE shift 16 2069 T_FLOAT shift 17 2070 T_INT shift 18 2071 T_VOID shift 19 2072 T_LONG shift 20 2073 T_SHORT shift 21 2074 T_SIGNED shift 22 2075 T_UNSIGNED shift 23 2076 T_ENUM shift 24 2077 T_STRUCT shift 25 2078 T_UNION shift 26 2079 T_Bool shift 27 2080 T_Complex shift 28 2081 T_Imaginary shift 29 2082 T_TYPE_QUALIFIER shift 30 2083 ')' shift 146 2084 . error 2085 2086 decl_specifiers goto 99 2087 decl_specifier goto 35 2088 storage_class goto 36 2089 type_specifier goto 37 2090 type_qualifier goto 38 2091 struct_or_union_specifier goto 39 2092 enum_specifier goto 40 2093 parameter_type_list goto 147 2094 parameter_list goto 101 2095 parameter_declaration goto 102 2096 struct_or_union goto 43 2097 enumeration goto 47 2098 2099 2100state 136 2101 direct_abs_declarator : direct_abs_declarator T_BRACKETS . (109) 2102 2103 . reduce 109 2104 2105 2106state 137 2107 abs_declarator : pointer direct_abs_declarator . (106) 2108 direct_abs_declarator : direct_abs_declarator . T_BRACKETS (109) 2109 direct_abs_declarator : direct_abs_declarator . '(' parameter_type_list ')' (111) 2110 direct_abs_declarator : direct_abs_declarator . '(' ')' (112) 2111 2112 '(' shift 135 2113 T_BRACKETS shift 136 2114 ',' reduce 106 2115 ')' reduce 106 2116 2117 2118state 138 2119 parameter_type_list : parameter_list ',' T_ELLIPSIS . (93) 2120 2121 . reduce 93 2122 2123 2124state 139 2125 parameter_list : parameter_list ',' parameter_declaration . (95) 2126 2127 . reduce 95 2128 2129 2130state 140 2131 identifier_list : identifier_list ',' any_id . (102) 2132 2133 . reduce 102 2134 2135 2136state 141 2137 declaration : any_typedef decl_specifiers $$1 opt_declarator_list ';' . (18) 2138 2139 . reduce 18 2140 2141 2142state 142 2143 declarator_list : declarator_list ',' . declarator (24) 2144 2145 '(' shift 2 2146 '*' shift 3 2147 '&' shift 4 2148 T_IDENTIFIER shift 5 2149 T_TYPEDEF_NAME shift 56 2150 . error 2151 2152 declarator goto 148 2153 direct_declarator goto 42 2154 pointer goto 44 2155 any_id goto 45 2156 identifier_or_ref goto 46 2157 2158 2159state 143 2160 function_definition : decl_specifiers declarator $$2 opt_declaration_list T_LBRACE $$3 . T_MATCHRBRACE (27) 2161 2162 T_MATCHRBRACE shift 149 2163 . error 2164 2165 2166state 144 2167 direct_abs_declarator : '(' abs_declarator ')' . (108) 2168 2169 . reduce 108 2170 2171 2172state 145 2173 direct_abs_declarator : '(' parameter_type_list ')' . (113) 2174 2175 . reduce 113 2176 2177 2178state 146 2179 direct_abs_declarator : direct_abs_declarator '(' ')' . (112) 2180 2181 . reduce 112 2182 2183 2184state 147 2185 direct_abs_declarator : direct_abs_declarator '(' parameter_type_list . ')' (111) 2186 2187 ')' shift 150 2188 . error 2189 2190 2191state 148 2192 declarator_list : declarator_list ',' declarator . (24) 2193 2194 . reduce 24 2195 2196 2197state 149 2198 function_definition : decl_specifiers declarator $$2 opt_declaration_list T_LBRACE $$3 T_MATCHRBRACE . (27) 2199 2200 . reduce 27 2201 2202 2203state 150 2204 direct_abs_declarator : direct_abs_declarator '(' parameter_type_list ')' . (111) 2205 2206 . reduce 111 2207 2208 2209State 6 contains 29 reduce/reduce conflicts. 2210State 83 contains 1 shift/reduce conflict. 2211 2212 221344 terminals, 43 nonterminals 2214115 grammar rules, 151 states 2215 2216grammar parser grammar 2217symbol# value# symbol 2218 0 0 $end 2219 1 256 error 2220 2 40 '(' 2221 3 42 '*' 2222 4 38 '&' 2223 5 257 T_IDENTIFIER 2224 6 258 T_TYPEDEF_NAME 2225 7 259 T_DEFINE_NAME 2226 8 260 T_AUTO 2227 9 261 T_EXTERN 2228 10 262 T_REGISTER 2229 11 263 T_STATIC 2230 12 264 T_TYPEDEF 2231 13 265 T_INLINE 2232 14 266 T_EXTENSION 2233 15 267 T_CHAR 2234 16 268 T_DOUBLE 2235 17 269 T_FLOAT 2236 18 270 T_INT 2237 19 271 T_VOID 2238 20 272 T_LONG 2239 21 273 T_SHORT 2240 22 274 T_SIGNED 2241 23 275 T_UNSIGNED 2242 24 276 T_ENUM 2243 25 277 T_STRUCT 2244 26 278 T_UNION 2245 27 279 T_Bool 2246 28 280 T_Complex 2247 29 281 T_Imaginary 2248 30 282 T_TYPE_QUALIFIER 2249 31 283 T_BRACKETS 2250 32 284 T_LBRACE 2251 33 285 T_MATCHRBRACE 2252 34 286 T_ELLIPSIS 2253 35 287 T_INITIALIZER 2254 36 288 T_STRING_LITERAL 2255 37 289 T_ASM 2256 38 290 T_ASMARG 2257 39 291 T_VA_DCL 2258 40 59 ';' 2259 41 44 ',' 2260 42 61 '=' 2261 43 41 ')' 2262 44 292 $accept 2263 45 293 program 2264 46 294 decl_specifiers 2265 47 295 decl_specifier 2266 48 296 storage_class 2267 49 297 type_specifier 2268 50 298 type_qualifier 2269 51 299 struct_or_union_specifier 2270 52 300 enum_specifier 2271 53 301 init_declarator_list 2272 54 302 init_declarator 2273 55 303 declarator 2274 56 304 direct_declarator 2275 57 305 abs_declarator 2276 58 306 direct_abs_declarator 2277 59 307 parameter_type_list 2278 60 308 parameter_list 2279 61 309 parameter_declaration 2280 62 310 opt_identifier_list 2281 63 311 identifier_list 2282 64 312 struct_or_union 2283 65 313 pointer 2284 66 314 opt_type_qualifiers 2285 67 315 type_qualifier_list 2286 68 316 any_id 2287 69 317 identifier_or_ref 2288 70 318 enumeration 2289 71 319 translation_unit 2290 72 320 external_declaration 2291 73 321 declaration 2292 74 322 function_definition 2293 75 323 linkage_specification 2294 76 324 braces 2295 77 325 any_typedef 2296 78 326 opt_declarator_list 2297 79 327 $$1 2298 80 328 declarator_list 2299 81 329 opt_declaration_list 2300 82 330 $$2 2301 83 331 $$3 2302 84 332 $$4 2303 85 333 declaration_list 2304 86 334 $$5 2305