Terminals which are not used APPLY LEAF Rules never reduced 101 external_declaration: function_definition State 15 conflicts: 1 shift/reduce State 19 conflicts: 9 reduce/reduce State 35 conflicts: 1 shift/reduce State 43 conflicts: 3 reduce/reduce State 53 conflicts: 1 shift/reduce, 2 reduce/reduce State 165 conflicts: 1 shift/reduce Grammar 0 $accept: goal $end 1 goal: translation_unit 2 primary_expression: IDENTIFIER 3 | CONSTANT 4 | STRING_LITERAL 5 | '(' expression ')' 6 postfix_expression: primary_expression 7 | postfix_expression '(' ')' 8 | postfix_expression '(' argument_expression_list ')' 9 argument_expression_list: assignment_expression 10 | argument_expression_list ',' assignment_expression 11 unary_expression: postfix_expression 12 | unary_operator unary_expression 13 unary_operator: '&' 14 | '*' 15 | '+' 16 | '-' 17 | '!' 18 multiplicative_expression: unary_expression 19 | multiplicative_expression '*' unary_expression 20 | multiplicative_expression '/' unary_expression 21 | multiplicative_expression '%' unary_expression 22 additive_expression: multiplicative_expression 23 | additive_expression '+' multiplicative_expression 24 | additive_expression '-' multiplicative_expression 25 relational_expression: additive_expression 26 | relational_expression '<' additive_expression 27 | relational_expression '>' additive_expression 28 | relational_expression LE_OP additive_expression 29 | relational_expression GE_OP additive_expression 30 equality_expression: relational_expression 31 | equality_expression EQ_OP relational_expression 32 | equality_expression NE_OP relational_expression 33 assignment_expression: equality_expression 34 | unary_expression '=' assignment_expression 35 expression: assignment_expression 36 | expression ',' assignment_expression 37 declaration: declaration_specifiers ';' 38 | function_definition 39 | declaration_specifiers init_declarator_list ';' 40 declaration_specifiers: storage_class_specifier 41 | storage_class_specifier declaration_specifiers 42 | type_specifier 43 | type_specifier declaration_specifiers 44 init_declarator_list: init_declarator 45 | init_declarator_list ',' init_declarator 46 init_declarator: declarator 47 | declarator '=' assignment_expression 48 storage_class_specifier: EXTERN 49 | AUTO 50 type_specifier: VOID 51 | INT 52 | FUNCTION 53 declarator: pointer direct_declarator 54 | direct_declarator 55 direct_declarator: IDENTIFIER 56 | '(' declarator ')' 57 | direct_declarator '(' parameter_list ')' 58 | direct_declarator '(' identifier_list ')' 59 | direct_declarator '(' ')' 60 pointer: '*' 61 | '*' pointer 62 parameter_list: parameter_declaration 63 | parameter_list ',' parameter_declaration 64 parameter_declaration: declaration_specifiers declarator 65 | declaration_specifiers abstract_declarator 66 | declaration_specifiers 67 identifier_list: IDENTIFIER 68 | identifier_list ',' IDENTIFIER 69 abstract_declarator: pointer 70 | direct_abstract_declarator 71 | pointer direct_abstract_declarator 72 direct_abstract_declarator: '(' abstract_declarator ')' 73 | '(' ')' 74 | '(' parameter_list ')' 75 | direct_abstract_declarator '(' ')' 76 | direct_abstract_declarator '(' parameter_list ')' 77 statement: compound_statement 78 | expression_statement 79 | selection_statement 80 | iteration_statement 81 | jump_statement 82 compound_statement: '{' '}' 83 | '{' statement_list '}' 84 | '{' declaration_list '}' 85 | '{' declaration_list statement_list '}' 86 declaration_list: declaration 87 | declaration_list declaration 88 statement_list: statement 89 | statement_list statement 90 expression_statement: ';' 91 | expression ';' 92 selection_statement: IF '(' expression ')' statement 93 | IF '(' expression ')' statement ELSE statement 94 iteration_statement: WHILE '(' expression ')' statement 95 jump_statement: CONTINUE ';' 96 | BREAK ';' 97 | RETURN ';' 98 | RETURN expression ';' 99 translation_unit: external_declaration 100 | translation_unit external_declaration 101 external_declaration: function_definition 102 | declaration 103 function_definition: declaration_specifiers declarator declaration_list compound_statement 104 | declaration_specifiers declarator compound_statement 105 | declarator declaration_list compound_statement 106 | declarator compound_statement Terminals, with rules where they appear $end (0) 0 '!' (33) 17 '%' (37) 21 '&' (38) 13 '(' (40) 5 7 8 56 57 58 59 72 73 74 75 76 92 93 94 ')' (41) 5 7 8 56 57 58 59 72 73 74 75 76 92 93 94 '*' (42) 14 19 60 61 '+' (43) 15 23 ',' (44) 10 36 45 63 68 '-' (45) 16 24 '/' (47) 20 ';' (59) 37 39 90 91 95 96 97 98 '<' (60) 26 '=' (61) 34 47 '>' (62) 27 '{' (123) 82 83 84 85 '}' (125) 82 83 84 85 error (256) IDENTIFIER (258) 2 55 67 68 CONSTANT (259) 3 STRING_LITERAL (260) 4 LE_OP (261) 28 GE_OP (262) 29 EQ_OP (263) 31 NE_OP (264) 32 EXTERN (265) 48 AUTO (266) 49 INT (267) 51 VOID (268) 50 FUNCTION (269) 52 APPLY (270) LEAF (271) IF (272) 92 93 ELSE (273) 93 WHILE (274) 94 CONTINUE (275) 95 BREAK (276) 96 RETURN (277) 97 98 Nonterminals, with rules where they appear $accept (39) on left: 0 goal (40) on left: 1, on right: 0 primary_expression (41) on left: 2 3 4 5, on right: 6 postfix_expression (42) on left: 6 7 8, on right: 7 8 11 argument_expression_list (43) on left: 9 10, on right: 8 10 unary_expression (44) on left: 11 12, on right: 12 18 19 20 21 34 unary_operator (45) on left: 13 14 15 16 17, on right: 12 multiplicative_expression (46) on left: 18 19 20 21, on right: 19 20 21 22 23 24 additive_expression (47) on left: 22 23 24, on right: 23 24 25 26 27 28 29 relational_expression (48) on left: 25 26 27 28 29, on right: 26 27 28 29 30 31 32 equality_expression (49) on left: 30 31 32, on right: 31 32 33 assignment_expression (50) on left: 33 34, on right: 9 10 34 35 36 47 expression (51) on left: 35 36, on right: 5 36 91 92 93 94 98 declaration (52) on left: 37 38 39, on right: 86 87 102 declaration_specifiers (53) on left: 40 41 42 43, on right: 37 39 41 43 64 65 66 103 104 init_declarator_list (54) on left: 44 45, on right: 39 45 init_declarator (55) on left: 46 47, on right: 44 45 storage_class_specifier (56) on left: 48 49, on right: 40 41 type_specifier (57) on left: 50 51 52, on right: 42 43 declarator (58) on left: 53 54, on right: 46 47 56 64 103 104 105 106 direct_declarator (59) on left: 55 56 57 58 59, on right: 53 54 57 58 59 pointer (60) on left: 60 61, on right: 53 61 69 71 parameter_list (61) on left: 62 63, on right: 57 63 74 76 parameter_declaration (62) on left: 64 65 66, on right: 62 63 identifier_list (63) on left: 67 68, on right: 58 68 abstract_declarator (64) on left: 69 70 71, on right: 65 72 direct_abstract_declarator (65) on left: 72 73 74 75 76, on right: 70 71 75 76 statement (66) on left: 77 78 79 80 81, on right: 88 89 92 93 94 compound_statement (67) on left: 82 83 84 85, on right: 77 103 104 105 106 declaration_list (68) on left: 86 87, on right: 84 85 87 103 105 statement_list (69) on left: 88 89, on right: 83 85 89 expression_statement (70) on left: 90 91, on right: 78 selection_statement (71) on left: 92 93, on right: 79 iteration_statement (72) on left: 94, on right: 80 jump_statement (73) on left: 95 96 97 98, on right: 81 translation_unit (74) on left: 99 100, on right: 1 100 external_declaration (75) on left: 101 102, on right: 99 100 function_definition (76) on left: 103 104 105 106, on right: 38 101 state 0 0 $accept: . goal $end IDENTIFIER shift, and go to state 1 EXTERN shift, and go to state 2 AUTO shift, and go to state 3 INT shift, and go to state 4 VOID shift, and go to state 5 FUNCTION shift, and go to state 6 '(' shift, and go to state 7 '*' shift, and go to state 8 goal go to state 9 declaration go to state 10 declaration_specifiers go to state 11 storage_class_specifier go to state 12 type_specifier go to state 13 declarator go to state 14 direct_declarator go to state 15 pointer go to state 16 translation_unit go to state 17 external_declaration go to state 18 function_definition go to state 19 state 1 55 direct_declarator: IDENTIFIER . $default reduce using rule 55 (direct_declarator) state 2 48 storage_class_specifier: EXTERN . $default reduce using rule 48 (storage_class_specifier) state 3 49 storage_class_specifier: AUTO . $default reduce using rule 49 (storage_class_specifier) state 4 51 type_specifier: INT . $default reduce using rule 51 (type_specifier) state 5 50 type_specifier: VOID . $default reduce using rule 50 (type_specifier) state 6 52 type_specifier: FUNCTION . $default reduce using rule 52 (type_specifier) state 7 56 direct_declarator: '(' . declarator ')' IDENTIFIER shift, and go to state 1 '(' shift, and go to state 7 '*' shift, and go to state 8 declarator go to state 20 direct_declarator go to state 15 pointer go to state 16 state 8 60 pointer: '*' . 61 | '*' . pointer '*' shift, and go to state 8 $default reduce using rule 60 (pointer) pointer go to state 21 state 9 0 $accept: goal . $end $end shift, and go to state 22 state 10 102 external_declaration: declaration . $default reduce using rule 102 (external_declaration) state 11 37 declaration: declaration_specifiers . ';' 39 | declaration_specifiers . init_declarator_list ';' 103 function_definition: declaration_specifiers . declarator declaration_list compound_statement 104 | declaration_specifiers . declarator compound_statement IDENTIFIER shift, and go to state 1 '(' shift, and go to state 7 '*' shift, and go to state 8 ';' shift, and go to state 23 init_declarator_list go to state 24 init_declarator go to state 25 declarator go to state 26 direct_declarator go to state 15 pointer go to state 16 state 12 40 declaration_specifiers: storage_class_specifier . 41 | storage_class_specifier . declaration_specifiers EXTERN shift, and go to state 2 AUTO shift, and go to state 3 INT shift, and go to state 4 VOID shift, and go to state 5 FUNCTION shift, and go to state 6 $default reduce using rule 40 (declaration_specifiers) declaration_specifiers go to state 27 storage_class_specifier go to state 12 type_specifier go to state 13 state 13 42 declaration_specifiers: type_specifier . 43 | type_specifier . declaration_specifiers EXTERN shift, and go to state 2 AUTO shift, and go to state 3 INT shift, and go to state 4 VOID shift, and go to state 5 FUNCTION shift, and go to state 6 $default reduce using rule 42 (declaration_specifiers) declaration_specifiers go to state 28 storage_class_specifier go to state 12 type_specifier go to state 13 state 14 105 function_definition: declarator . declaration_list compound_statement 106 | declarator . compound_statement IDENTIFIER shift, and go to state 1 EXTERN shift, and go to state 2 AUTO shift, and go to state 3 INT shift, and go to state 4 VOID shift, and go to state 5 FUNCTION shift, and go to state 6 '(' shift, and go to state 7 '*' shift, and go to state 8 '{' shift, and go to state 29 declaration go to state 30 declaration_specifiers go to state 11 storage_class_specifier go to state 12 type_specifier go to state 13 declarator go to state 14 direct_declarator go to state 15 pointer go to state 16 compound_statement go to state 31 declaration_list go to state 32 function_definition go to state 33 state 15 54 declarator: direct_declarator . 57 direct_declarator: direct_declarator . '(' parameter_list ')' 58 | direct_declarator . '(' identifier_list ')' 59 | direct_declarator . '(' ')' '(' shift, and go to state 34 '(' [reduce using rule 54 (declarator)] $default reduce using rule 54 (declarator) state 16 53 declarator: pointer . direct_declarator IDENTIFIER shift, and go to state 1 '(' shift, and go to state 7 direct_declarator go to state 35 state 17 1 goal: translation_unit . 100 translation_unit: translation_unit . external_declaration IDENTIFIER shift, and go to state 1 EXTERN shift, and go to state 2 AUTO shift, and go to state 3 INT shift, and go to state 4 VOID shift, and go to state 5 FUNCTION shift, and go to state 6 '(' shift, and go to state 7 '*' shift, and go to state 8 $default reduce using rule 1 (goal) declaration go to state 10 declaration_specifiers go to state 11 storage_class_specifier go to state 12 type_specifier go to state 13 declarator go to state 14 direct_declarator go to state 15 pointer go to state 16 external_declaration go to state 36 function_definition go to state 19 state 18 99 translation_unit: external_declaration . $default reduce using rule 99 (translation_unit) state 19 38 declaration: function_definition . 101 external_declaration: function_definition . $end reduce using rule 38 (declaration) $end [reduce using rule 101 (external_declaration)] IDENTIFIER reduce using rule 38 (declaration) IDENTIFIER [reduce using rule 101 (external_declaration)] EXTERN reduce using rule 38 (declaration) EXTERN [reduce using rule 101 (external_declaration)] AUTO reduce using rule 38 (declaration) AUTO [reduce using rule 101 (external_declaration)] INT reduce using rule 38 (declaration) INT [reduce using rule 101 (external_declaration)] VOID reduce using rule 38 (declaration) VOID [reduce using rule 101 (external_declaration)] FUNCTION reduce using rule 38 (declaration) FUNCTION [reduce using rule 101 (external_declaration)] '(' reduce using rule 38 (declaration) '(' [reduce using rule 101 (external_declaration)] '*' reduce using rule 38 (declaration) '*' [reduce using rule 101 (external_declaration)] $default reduce using rule 38 (declaration) state 20 56 direct_declarator: '(' declarator . ')' ')' shift, and go to state 37 state 21 61 pointer: '*' pointer . $default reduce using rule 61 (pointer) state 22 0 $accept: goal $end . $default accept state 23 37 declaration: declaration_specifiers ';' . $default reduce using rule 37 (declaration) state 24 39 declaration: declaration_specifiers init_declarator_list . ';' 45 init_declarator_list: init_declarator_list . ',' init_declarator ',' shift, and go to state 38 ';' shift, and go to state 39 state 25 44 init_declarator_list: init_declarator . $default reduce using rule 44 (init_declarator_list) state 26 46 init_declarator: declarator . 47 | declarator . '=' assignment_expression 103 function_definition: declaration_specifiers declarator . declaration_list compound_statement 104 | declaration_specifiers declarator . compound_statement IDENTIFIER shift, and go to state 1 EXTERN shift, and go to state 2 AUTO shift, and go to state 3 INT shift, and go to state 4 VOID shift, and go to state 5 FUNCTION shift, and go to state 6 '(' shift, and go to state 7 '*' shift, and go to state 8 '=' shift, and go to state 40 '{' shift, and go to state 29 $default reduce using rule 46 (init_declarator) declaration go to state 30 declaration_specifiers go to state 11 storage_class_specifier go to state 12 type_specifier go to state 13 declarator go to state 14 direct_declarator go to state 15 pointer go to state 16 compound_statement go to state 41 declaration_list go to state 42 function_definition go to state 33 state 27 41 declaration_specifiers: storage_class_specifier declaration_specifiers . $default reduce using rule 41 (declaration_specifiers) state 28 43 declaration_specifiers: type_specifier declaration_specifiers . $default reduce using rule 43 (declaration_specifiers) state 29 82 compound_statement: '{' . '}' 83 | '{' . statement_list '}' 84 | '{' . declaration_list '}' 85 | '{' . declaration_list statement_list '}' IDENTIFIER shift, and go to state 43 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 EXTERN shift, and go to state 2 AUTO shift, and go to state 3 INT shift, and go to state 4 VOID shift, and go to state 5 FUNCTION shift, and go to state 6 IF shift, and go to state 46 WHILE shift, and go to state 47 CONTINUE shift, and go to state 48 BREAK shift, and go to state 49 RETURN shift, and go to state 50 '(' shift, and go to state 51 '&' shift, and go to state 52 '*' shift, and go to state 53 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 ';' shift, and go to state 57 '{' shift, and go to state 29 '}' shift, and go to state 58 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 61 unary_operator go to state 62 multiplicative_expression go to state 63 additive_expression go to state 64 relational_expression go to state 65 equality_expression go to state 66 assignment_expression go to state 67 expression go to state 68 declaration go to state 30 declaration_specifiers go to state 11 storage_class_specifier go to state 12 type_specifier go to state 13 declarator go to state 14 direct_declarator go to state 15 pointer go to state 16 statement go to state 69 compound_statement go to state 70 declaration_list go to state 71 statement_list go to state 72 expression_statement go to state 73 selection_statement go to state 74 iteration_statement go to state 75 jump_statement go to state 76 function_definition go to state 33 state 30 86 declaration_list: declaration . $default reduce using rule 86 (declaration_list) state 31 106 function_definition: declarator compound_statement . $default reduce using rule 106 (function_definition) state 32 87 declaration_list: declaration_list . declaration 105 function_definition: declarator declaration_list . compound_statement IDENTIFIER shift, and go to state 1 EXTERN shift, and go to state 2 AUTO shift, and go to state 3 INT shift, and go to state 4 VOID shift, and go to state 5 FUNCTION shift, and go to state 6 '(' shift, and go to state 7 '*' shift, and go to state 8 '{' shift, and go to state 29 declaration go to state 77 declaration_specifiers go to state 11 storage_class_specifier go to state 12 type_specifier go to state 13 declarator go to state 14 direct_declarator go to state 15 pointer go to state 16 compound_statement go to state 78 function_definition go to state 33 state 33 38 declaration: function_definition . $default reduce using rule 38 (declaration) state 34 57 direct_declarator: direct_declarator '(' . parameter_list ')' 58 | direct_declarator '(' . identifier_list ')' 59 | direct_declarator '(' . ')' IDENTIFIER shift, and go to state 79 EXTERN shift, and go to state 2 AUTO shift, and go to state 3 INT shift, and go to state 4 VOID shift, and go to state 5 FUNCTION shift, and go to state 6 ')' shift, and go to state 80 declaration_specifiers go to state 81 storage_class_specifier go to state 12 type_specifier go to state 13 parameter_list go to state 82 parameter_declaration go to state 83 identifier_list go to state 84 state 35 53 declarator: pointer direct_declarator . 57 direct_declarator: direct_declarator . '(' parameter_list ')' 58 | direct_declarator . '(' identifier_list ')' 59 | direct_declarator . '(' ')' '(' shift, and go to state 34 '(' [reduce using rule 53 (declarator)] $default reduce using rule 53 (declarator) state 36 100 translation_unit: translation_unit external_declaration . $default reduce using rule 100 (translation_unit) state 37 56 direct_declarator: '(' declarator ')' . $default reduce using rule 56 (direct_declarator) state 38 45 init_declarator_list: init_declarator_list ',' . init_declarator IDENTIFIER shift, and go to state 1 '(' shift, and go to state 7 '*' shift, and go to state 8 init_declarator go to state 85 declarator go to state 86 direct_declarator go to state 15 pointer go to state 16 state 39 39 declaration: declaration_specifiers init_declarator_list ';' . $default reduce using rule 39 (declaration) state 40 47 init_declarator: declarator '=' . assignment_expression IDENTIFIER shift, and go to state 87 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 '(' shift, and go to state 88 '&' shift, and go to state 52 '*' shift, and go to state 89 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 61 unary_operator go to state 62 multiplicative_expression go to state 63 additive_expression go to state 64 relational_expression go to state 65 equality_expression go to state 66 assignment_expression go to state 90 state 41 104 function_definition: declaration_specifiers declarator compound_statement . $default reduce using rule 104 (function_definition) state 42 87 declaration_list: declaration_list . declaration 103 function_definition: declaration_specifiers declarator declaration_list . compound_statement IDENTIFIER shift, and go to state 1 EXTERN shift, and go to state 2 AUTO shift, and go to state 3 INT shift, and go to state 4 VOID shift, and go to state 5 FUNCTION shift, and go to state 6 '(' shift, and go to state 7 '*' shift, and go to state 8 '{' shift, and go to state 29 declaration go to state 77 declaration_specifiers go to state 11 storage_class_specifier go to state 12 type_specifier go to state 13 declarator go to state 14 direct_declarator go to state 15 pointer go to state 16 compound_statement go to state 91 function_definition go to state 33 state 43 2 primary_expression: IDENTIFIER . 55 direct_declarator: IDENTIFIER . IDENTIFIER reduce using rule 55 (direct_declarator) EXTERN reduce using rule 55 (direct_declarator) AUTO reduce using rule 55 (direct_declarator) INT reduce using rule 55 (direct_declarator) VOID reduce using rule 55 (direct_declarator) FUNCTION reduce using rule 55 (direct_declarator) '(' reduce using rule 2 (primary_expression) '(' [reduce using rule 55 (direct_declarator)] ')' reduce using rule 2 (primary_expression) ')' [reduce using rule 55 (direct_declarator)] '*' reduce using rule 2 (primary_expression) '*' [reduce using rule 55 (direct_declarator)] '{' reduce using rule 55 (direct_declarator) $default reduce using rule 2 (primary_expression) state 44 3 primary_expression: CONSTANT . $default reduce using rule 3 (primary_expression) state 45 4 primary_expression: STRING_LITERAL . $default reduce using rule 4 (primary_expression) state 46 92 selection_statement: IF . '(' expression ')' statement 93 | IF . '(' expression ')' statement ELSE statement '(' shift, and go to state 92 state 47 94 iteration_statement: WHILE . '(' expression ')' statement '(' shift, and go to state 93 state 48 95 jump_statement: CONTINUE . ';' ';' shift, and go to state 94 state 49 96 jump_statement: BREAK . ';' ';' shift, and go to state 95 state 50 97 jump_statement: RETURN . ';' 98 | RETURN . expression ';' IDENTIFIER shift, and go to state 87 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 '(' shift, and go to state 88 '&' shift, and go to state 52 '*' shift, and go to state 89 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 ';' shift, and go to state 96 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 61 unary_operator go to state 62 multiplicative_expression go to state 63 additive_expression go to state 64 relational_expression go to state 65 equality_expression go to state 66 assignment_expression go to state 67 expression go to state 97 state 51 5 primary_expression: '(' . expression ')' 56 direct_declarator: '(' . declarator ')' IDENTIFIER shift, and go to state 43 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 '(' shift, and go to state 51 '&' shift, and go to state 52 '*' shift, and go to state 53 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 61 unary_operator go to state 62 multiplicative_expression go to state 63 additive_expression go to state 64 relational_expression go to state 65 equality_expression go to state 66 assignment_expression go to state 67 expression go to state 98 declarator go to state 20 direct_declarator go to state 15 pointer go to state 16 state 52 13 unary_operator: '&' . $default reduce using rule 13 (unary_operator) state 53 14 unary_operator: '*' . 60 pointer: '*' . 61 | '*' . pointer '*' shift, and go to state 8 IDENTIFIER reduce using rule 14 (unary_operator) IDENTIFIER [reduce using rule 60 (pointer)] '(' reduce using rule 14 (unary_operator) '(' [reduce using rule 60 (pointer)] '*' [reduce using rule 14 (unary_operator)] $default reduce using rule 14 (unary_operator) pointer go to state 21 state 54 15 unary_operator: '+' . $default reduce using rule 15 (unary_operator) state 55 16 unary_operator: '-' . $default reduce using rule 16 (unary_operator) state 56 17 unary_operator: '!' . $default reduce using rule 17 (unary_operator) state 57 90 expression_statement: ';' . $default reduce using rule 90 (expression_statement) state 58 82 compound_statement: '{' '}' . $default reduce using rule 82 (compound_statement) state 59 6 postfix_expression: primary_expression . $default reduce using rule 6 (postfix_expression) state 60 7 postfix_expression: postfix_expression . '(' ')' 8 | postfix_expression . '(' argument_expression_list ')' 11 unary_expression: postfix_expression . '(' shift, and go to state 99 $default reduce using rule 11 (unary_expression) state 61 18 multiplicative_expression: unary_expression . 34 assignment_expression: unary_expression . '=' assignment_expression '=' shift, and go to state 100 $default reduce using rule 18 (multiplicative_expression) state 62 12 unary_expression: unary_operator . unary_expression IDENTIFIER shift, and go to state 87 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 '(' shift, and go to state 88 '&' shift, and go to state 52 '*' shift, and go to state 89 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 101 unary_operator go to state 62 state 63 19 multiplicative_expression: multiplicative_expression . '*' unary_expression 20 | multiplicative_expression . '/' unary_expression 21 | multiplicative_expression . '%' unary_expression 22 additive_expression: multiplicative_expression . '*' shift, and go to state 102 '/' shift, and go to state 103 '%' shift, and go to state 104 $default reduce using rule 22 (additive_expression) state 64 23 additive_expression: additive_expression . '+' multiplicative_expression 24 | additive_expression . '-' multiplicative_expression 25 relational_expression: additive_expression . '+' shift, and go to state 105 '-' shift, and go to state 106 $default reduce using rule 25 (relational_expression) state 65 26 relational_expression: relational_expression . '<' additive_expression 27 | relational_expression . '>' additive_expression 28 | relational_expression . LE_OP additive_expression 29 | relational_expression . GE_OP additive_expression 30 equality_expression: relational_expression . LE_OP shift, and go to state 107 GE_OP shift, and go to state 108 '<' shift, and go to state 109 '>' shift, and go to state 110 $default reduce using rule 30 (equality_expression) state 66 31 equality_expression: equality_expression . EQ_OP relational_expression 32 | equality_expression . NE_OP relational_expression 33 assignment_expression: equality_expression . EQ_OP shift, and go to state 111 NE_OP shift, and go to state 112 $default reduce using rule 33 (assignment_expression) state 67 35 expression: assignment_expression . $default reduce using rule 35 (expression) state 68 36 expression: expression . ',' assignment_expression 91 expression_statement: expression . ';' ',' shift, and go to state 113 ';' shift, and go to state 114 state 69 88 statement_list: statement . $default reduce using rule 88 (statement_list) state 70 77 statement: compound_statement . $default reduce using rule 77 (statement) state 71 84 compound_statement: '{' declaration_list . '}' 85 | '{' declaration_list . statement_list '}' 87 declaration_list: declaration_list . declaration IDENTIFIER shift, and go to state 43 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 EXTERN shift, and go to state 2 AUTO shift, and go to state 3 INT shift, and go to state 4 VOID shift, and go to state 5 FUNCTION shift, and go to state 6 IF shift, and go to state 46 WHILE shift, and go to state 47 CONTINUE shift, and go to state 48 BREAK shift, and go to state 49 RETURN shift, and go to state 50 '(' shift, and go to state 51 '&' shift, and go to state 52 '*' shift, and go to state 53 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 ';' shift, and go to state 57 '{' shift, and go to state 29 '}' shift, and go to state 115 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 61 unary_operator go to state 62 multiplicative_expression go to state 63 additive_expression go to state 64 relational_expression go to state 65 equality_expression go to state 66 assignment_expression go to state 67 expression go to state 68 declaration go to state 77 declaration_specifiers go to state 11 storage_class_specifier go to state 12 type_specifier go to state 13 declarator go to state 14 direct_declarator go to state 15 pointer go to state 16 statement go to state 69 compound_statement go to state 70 statement_list go to state 116 expression_statement go to state 73 selection_statement go to state 74 iteration_statement go to state 75 jump_statement go to state 76 function_definition go to state 33 state 72 83 compound_statement: '{' statement_list . '}' 89 statement_list: statement_list . statement IDENTIFIER shift, and go to state 87 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 IF shift, and go to state 46 WHILE shift, and go to state 47 CONTINUE shift, and go to state 48 BREAK shift, and go to state 49 RETURN shift, and go to state 50 '(' shift, and go to state 88 '&' shift, and go to state 52 '*' shift, and go to state 89 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 ';' shift, and go to state 57 '{' shift, and go to state 29 '}' shift, and go to state 117 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 61 unary_operator go to state 62 multiplicative_expression go to state 63 additive_expression go to state 64 relational_expression go to state 65 equality_expression go to state 66 assignment_expression go to state 67 expression go to state 68 statement go to state 118 compound_statement go to state 70 expression_statement go to state 73 selection_statement go to state 74 iteration_statement go to state 75 jump_statement go to state 76 state 73 78 statement: expression_statement . $default reduce using rule 78 (statement) state 74 79 statement: selection_statement . $default reduce using rule 79 (statement) state 75 80 statement: iteration_statement . $default reduce using rule 80 (statement) state 76 81 statement: jump_statement . $default reduce using rule 81 (statement) state 77 87 declaration_list: declaration_list declaration . $default reduce using rule 87 (declaration_list) state 78 105 function_definition: declarator declaration_list compound_statement . $default reduce using rule 105 (function_definition) state 79 67 identifier_list: IDENTIFIER . $default reduce using rule 67 (identifier_list) state 80 59 direct_declarator: direct_declarator '(' ')' . $default reduce using rule 59 (direct_declarator) state 81 64 parameter_declaration: declaration_specifiers . declarator 65 | declaration_specifiers . abstract_declarator 66 | declaration_specifiers . IDENTIFIER shift, and go to state 1 '(' shift, and go to state 119 '*' shift, and go to state 8 $default reduce using rule 66 (parameter_declaration) declarator go to state 120 direct_declarator go to state 15 pointer go to state 121 abstract_declarator go to state 122 direct_abstract_declarator go to state 123 state 82 57 direct_declarator: direct_declarator '(' parameter_list . ')' 63 parameter_list: parameter_list . ',' parameter_declaration ')' shift, and go to state 124 ',' shift, and go to state 125 state 83 62 parameter_list: parameter_declaration . $default reduce using rule 62 (parameter_list) state 84 58 direct_declarator: direct_declarator '(' identifier_list . ')' 68 identifier_list: identifier_list . ',' IDENTIFIER ')' shift, and go to state 126 ',' shift, and go to state 127 state 85 45 init_declarator_list: init_declarator_list ',' init_declarator . $default reduce using rule 45 (init_declarator_list) state 86 46 init_declarator: declarator . 47 | declarator . '=' assignment_expression '=' shift, and go to state 40 $default reduce using rule 46 (init_declarator) state 87 2 primary_expression: IDENTIFIER . $default reduce using rule 2 (primary_expression) state 88 5 primary_expression: '(' . expression ')' IDENTIFIER shift, and go to state 87 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 '(' shift, and go to state 88 '&' shift, and go to state 52 '*' shift, and go to state 89 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 61 unary_operator go to state 62 multiplicative_expression go to state 63 additive_expression go to state 64 relational_expression go to state 65 equality_expression go to state 66 assignment_expression go to state 67 expression go to state 98 state 89 14 unary_operator: '*' . $default reduce using rule 14 (unary_operator) state 90 47 init_declarator: declarator '=' assignment_expression . $default reduce using rule 47 (init_declarator) state 91 103 function_definition: declaration_specifiers declarator declaration_list compound_statement . $default reduce using rule 103 (function_definition) state 92 92 selection_statement: IF '(' . expression ')' statement 93 | IF '(' . expression ')' statement ELSE statement IDENTIFIER shift, and go to state 87 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 '(' shift, and go to state 88 '&' shift, and go to state 52 '*' shift, and go to state 89 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 61 unary_operator go to state 62 multiplicative_expression go to state 63 additive_expression go to state 64 relational_expression go to state 65 equality_expression go to state 66 assignment_expression go to state 67 expression go to state 128 state 93 94 iteration_statement: WHILE '(' . expression ')' statement IDENTIFIER shift, and go to state 87 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 '(' shift, and go to state 88 '&' shift, and go to state 52 '*' shift, and go to state 89 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 61 unary_operator go to state 62 multiplicative_expression go to state 63 additive_expression go to state 64 relational_expression go to state 65 equality_expression go to state 66 assignment_expression go to state 67 expression go to state 129 state 94 95 jump_statement: CONTINUE ';' . $default reduce using rule 95 (jump_statement) state 95 96 jump_statement: BREAK ';' . $default reduce using rule 96 (jump_statement) state 96 97 jump_statement: RETURN ';' . $default reduce using rule 97 (jump_statement) state 97 36 expression: expression . ',' assignment_expression 98 jump_statement: RETURN expression . ';' ',' shift, and go to state 113 ';' shift, and go to state 130 state 98 5 primary_expression: '(' expression . ')' 36 expression: expression . ',' assignment_expression ')' shift, and go to state 131 ',' shift, and go to state 113 state 99 7 postfix_expression: postfix_expression '(' . ')' 8 | postfix_expression '(' . argument_expression_list ')' IDENTIFIER shift, and go to state 87 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 '(' shift, and go to state 88 ')' shift, and go to state 132 '&' shift, and go to state 52 '*' shift, and go to state 89 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 primary_expression go to state 59 postfix_expression go to state 60 argument_expression_list go to state 133 unary_expression go to state 61 unary_operator go to state 62 multiplicative_expression go to state 63 additive_expression go to state 64 relational_expression go to state 65 equality_expression go to state 66 assignment_expression go to state 134 state 100 34 assignment_expression: unary_expression '=' . assignment_expression IDENTIFIER shift, and go to state 87 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 '(' shift, and go to state 88 '&' shift, and go to state 52 '*' shift, and go to state 89 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 61 unary_operator go to state 62 multiplicative_expression go to state 63 additive_expression go to state 64 relational_expression go to state 65 equality_expression go to state 66 assignment_expression go to state 135 state 101 12 unary_expression: unary_operator unary_expression . $default reduce using rule 12 (unary_expression) state 102 19 multiplicative_expression: multiplicative_expression '*' . unary_expression IDENTIFIER shift, and go to state 87 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 '(' shift, and go to state 88 '&' shift, and go to state 52 '*' shift, and go to state 89 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 136 unary_operator go to state 62 state 103 20 multiplicative_expression: multiplicative_expression '/' . unary_expression IDENTIFIER shift, and go to state 87 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 '(' shift, and go to state 88 '&' shift, and go to state 52 '*' shift, and go to state 89 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 137 unary_operator go to state 62 state 104 21 multiplicative_expression: multiplicative_expression '%' . unary_expression IDENTIFIER shift, and go to state 87 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 '(' shift, and go to state 88 '&' shift, and go to state 52 '*' shift, and go to state 89 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 138 unary_operator go to state 62 state 105 23 additive_expression: additive_expression '+' . multiplicative_expression IDENTIFIER shift, and go to state 87 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 '(' shift, and go to state 88 '&' shift, and go to state 52 '*' shift, and go to state 89 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 139 unary_operator go to state 62 multiplicative_expression go to state 140 state 106 24 additive_expression: additive_expression '-' . multiplicative_expression IDENTIFIER shift, and go to state 87 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 '(' shift, and go to state 88 '&' shift, and go to state 52 '*' shift, and go to state 89 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 139 unary_operator go to state 62 multiplicative_expression go to state 141 state 107 28 relational_expression: relational_expression LE_OP . additive_expression IDENTIFIER shift, and go to state 87 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 '(' shift, and go to state 88 '&' shift, and go to state 52 '*' shift, and go to state 89 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 139 unary_operator go to state 62 multiplicative_expression go to state 63 additive_expression go to state 142 state 108 29 relational_expression: relational_expression GE_OP . additive_expression IDENTIFIER shift, and go to state 87 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 '(' shift, and go to state 88 '&' shift, and go to state 52 '*' shift, and go to state 89 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 139 unary_operator go to state 62 multiplicative_expression go to state 63 additive_expression go to state 143 state 109 26 relational_expression: relational_expression '<' . additive_expression IDENTIFIER shift, and go to state 87 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 '(' shift, and go to state 88 '&' shift, and go to state 52 '*' shift, and go to state 89 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 139 unary_operator go to state 62 multiplicative_expression go to state 63 additive_expression go to state 144 state 110 27 relational_expression: relational_expression '>' . additive_expression IDENTIFIER shift, and go to state 87 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 '(' shift, and go to state 88 '&' shift, and go to state 52 '*' shift, and go to state 89 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 139 unary_operator go to state 62 multiplicative_expression go to state 63 additive_expression go to state 145 state 111 31 equality_expression: equality_expression EQ_OP . relational_expression IDENTIFIER shift, and go to state 87 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 '(' shift, and go to state 88 '&' shift, and go to state 52 '*' shift, and go to state 89 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 139 unary_operator go to state 62 multiplicative_expression go to state 63 additive_expression go to state 64 relational_expression go to state 146 state 112 32 equality_expression: equality_expression NE_OP . relational_expression IDENTIFIER shift, and go to state 87 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 '(' shift, and go to state 88 '&' shift, and go to state 52 '*' shift, and go to state 89 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 139 unary_operator go to state 62 multiplicative_expression go to state 63 additive_expression go to state 64 relational_expression go to state 147 state 113 36 expression: expression ',' . assignment_expression IDENTIFIER shift, and go to state 87 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 '(' shift, and go to state 88 '&' shift, and go to state 52 '*' shift, and go to state 89 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 61 unary_operator go to state 62 multiplicative_expression go to state 63 additive_expression go to state 64 relational_expression go to state 65 equality_expression go to state 66 assignment_expression go to state 148 state 114 91 expression_statement: expression ';' . $default reduce using rule 91 (expression_statement) state 115 84 compound_statement: '{' declaration_list '}' . $default reduce using rule 84 (compound_statement) state 116 85 compound_statement: '{' declaration_list statement_list . '}' 89 statement_list: statement_list . statement IDENTIFIER shift, and go to state 87 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 IF shift, and go to state 46 WHILE shift, and go to state 47 CONTINUE shift, and go to state 48 BREAK shift, and go to state 49 RETURN shift, and go to state 50 '(' shift, and go to state 88 '&' shift, and go to state 52 '*' shift, and go to state 89 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 ';' shift, and go to state 57 '{' shift, and go to state 29 '}' shift, and go to state 149 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 61 unary_operator go to state 62 multiplicative_expression go to state 63 additive_expression go to state 64 relational_expression go to state 65 equality_expression go to state 66 assignment_expression go to state 67 expression go to state 68 statement go to state 118 compound_statement go to state 70 expression_statement go to state 73 selection_statement go to state 74 iteration_statement go to state 75 jump_statement go to state 76 state 117 83 compound_statement: '{' statement_list '}' . $default reduce using rule 83 (compound_statement) state 118 89 statement_list: statement_list statement . $default reduce using rule 89 (statement_list) state 119 56 direct_declarator: '(' . declarator ')' 72 direct_abstract_declarator: '(' . abstract_declarator ')' 73 | '(' . ')' 74 | '(' . parameter_list ')' IDENTIFIER shift, and go to state 1 EXTERN shift, and go to state 2 AUTO shift, and go to state 3 INT shift, and go to state 4 VOID shift, and go to state 5 FUNCTION shift, and go to state 6 '(' shift, and go to state 119 ')' shift, and go to state 150 '*' shift, and go to state 8 declaration_specifiers go to state 81 storage_class_specifier go to state 12 type_specifier go to state 13 declarator go to state 20 direct_declarator go to state 15 pointer go to state 121 parameter_list go to state 151 parameter_declaration go to state 83 abstract_declarator go to state 152 direct_abstract_declarator go to state 123 state 120 64 parameter_declaration: declaration_specifiers declarator . $default reduce using rule 64 (parameter_declaration) state 121 53 declarator: pointer . direct_declarator 69 abstract_declarator: pointer . 71 | pointer . direct_abstract_declarator IDENTIFIER shift, and go to state 1 '(' shift, and go to state 119 $default reduce using rule 69 (abstract_declarator) direct_declarator go to state 35 direct_abstract_declarator go to state 153 state 122 65 parameter_declaration: declaration_specifiers abstract_declarator . $default reduce using rule 65 (parameter_declaration) state 123 70 abstract_declarator: direct_abstract_declarator . 75 direct_abstract_declarator: direct_abstract_declarator . '(' ')' 76 | direct_abstract_declarator . '(' parameter_list ')' '(' shift, and go to state 154 $default reduce using rule 70 (abstract_declarator) state 124 57 direct_declarator: direct_declarator '(' parameter_list ')' . $default reduce using rule 57 (direct_declarator) state 125 63 parameter_list: parameter_list ',' . parameter_declaration EXTERN shift, and go to state 2 AUTO shift, and go to state 3 INT shift, and go to state 4 VOID shift, and go to state 5 FUNCTION shift, and go to state 6 declaration_specifiers go to state 81 storage_class_specifier go to state 12 type_specifier go to state 13 parameter_declaration go to state 155 state 126 58 direct_declarator: direct_declarator '(' identifier_list ')' . $default reduce using rule 58 (direct_declarator) state 127 68 identifier_list: identifier_list ',' . IDENTIFIER IDENTIFIER shift, and go to state 156 state 128 36 expression: expression . ',' assignment_expression 92 selection_statement: IF '(' expression . ')' statement 93 | IF '(' expression . ')' statement ELSE statement ')' shift, and go to state 157 ',' shift, and go to state 113 state 129 36 expression: expression . ',' assignment_expression 94 iteration_statement: WHILE '(' expression . ')' statement ')' shift, and go to state 158 ',' shift, and go to state 113 state 130 98 jump_statement: RETURN expression ';' . $default reduce using rule 98 (jump_statement) state 131 5 primary_expression: '(' expression ')' . $default reduce using rule 5 (primary_expression) state 132 7 postfix_expression: postfix_expression '(' ')' . $default reduce using rule 7 (postfix_expression) state 133 8 postfix_expression: postfix_expression '(' argument_expression_list . ')' 10 argument_expression_list: argument_expression_list . ',' assignment_expression ')' shift, and go to state 159 ',' shift, and go to state 160 state 134 9 argument_expression_list: assignment_expression . $default reduce using rule 9 (argument_expression_list) state 135 34 assignment_expression: unary_expression '=' assignment_expression . $default reduce using rule 34 (assignment_expression) state 136 19 multiplicative_expression: multiplicative_expression '*' unary_expression . $default reduce using rule 19 (multiplicative_expression) state 137 20 multiplicative_expression: multiplicative_expression '/' unary_expression . $default reduce using rule 20 (multiplicative_expression) state 138 21 multiplicative_expression: multiplicative_expression '%' unary_expression . $default reduce using rule 21 (multiplicative_expression) state 139 18 multiplicative_expression: unary_expression . $default reduce using rule 18 (multiplicative_expression) state 140 19 multiplicative_expression: multiplicative_expression . '*' unary_expression 20 | multiplicative_expression . '/' unary_expression 21 | multiplicative_expression . '%' unary_expression 23 additive_expression: additive_expression '+' multiplicative_expression . '*' shift, and go to state 102 '/' shift, and go to state 103 '%' shift, and go to state 104 $default reduce using rule 23 (additive_expression) state 141 19 multiplicative_expression: multiplicative_expression . '*' unary_expression 20 | multiplicative_expression . '/' unary_expression 21 | multiplicative_expression . '%' unary_expression 24 additive_expression: additive_expression '-' multiplicative_expression . '*' shift, and go to state 102 '/' shift, and go to state 103 '%' shift, and go to state 104 $default reduce using rule 24 (additive_expression) state 142 23 additive_expression: additive_expression . '+' multiplicative_expression 24 | additive_expression . '-' multiplicative_expression 28 relational_expression: relational_expression LE_OP additive_expression . '+' shift, and go to state 105 '-' shift, and go to state 106 $default reduce using rule 28 (relational_expression) state 143 23 additive_expression: additive_expression . '+' multiplicative_expression 24 | additive_expression . '-' multiplicative_expression 29 relational_expression: relational_expression GE_OP additive_expression . '+' shift, and go to state 105 '-' shift, and go to state 106 $default reduce using rule 29 (relational_expression) state 144 23 additive_expression: additive_expression . '+' multiplicative_expression 24 | additive_expression . '-' multiplicative_expression 26 relational_expression: relational_expression '<' additive_expression . '+' shift, and go to state 105 '-' shift, and go to state 106 $default reduce using rule 26 (relational_expression) state 145 23 additive_expression: additive_expression . '+' multiplicative_expression 24 | additive_expression . '-' multiplicative_expression 27 relational_expression: relational_expression '>' additive_expression . '+' shift, and go to state 105 '-' shift, and go to state 106 $default reduce using rule 27 (relational_expression) state 146 26 relational_expression: relational_expression . '<' additive_expression 27 | relational_expression . '>' additive_expression 28 | relational_expression . LE_OP additive_expression 29 | relational_expression . GE_OP additive_expression 31 equality_expression: equality_expression EQ_OP relational_expression . LE_OP shift, and go to state 107 GE_OP shift, and go to state 108 '<' shift, and go to state 109 '>' shift, and go to state 110 $default reduce using rule 31 (equality_expression) state 147 26 relational_expression: relational_expression . '<' additive_expression 27 | relational_expression . '>' additive_expression 28 | relational_expression . LE_OP additive_expression 29 | relational_expression . GE_OP additive_expression 32 equality_expression: equality_expression NE_OP relational_expression . LE_OP shift, and go to state 107 GE_OP shift, and go to state 108 '<' shift, and go to state 109 '>' shift, and go to state 110 $default reduce using rule 32 (equality_expression) state 148 36 expression: expression ',' assignment_expression . $default reduce using rule 36 (expression) state 149 85 compound_statement: '{' declaration_list statement_list '}' . $default reduce using rule 85 (compound_statement) state 150 73 direct_abstract_declarator: '(' ')' . $default reduce using rule 73 (direct_abstract_declarator) state 151 63 parameter_list: parameter_list . ',' parameter_declaration 74 direct_abstract_declarator: '(' parameter_list . ')' ')' shift, and go to state 161 ',' shift, and go to state 125 state 152 72 direct_abstract_declarator: '(' abstract_declarator . ')' ')' shift, and go to state 162 state 153 71 abstract_declarator: pointer direct_abstract_declarator . 75 direct_abstract_declarator: direct_abstract_declarator . '(' ')' 76 | direct_abstract_declarator . '(' parameter_list ')' '(' shift, and go to state 154 $default reduce using rule 71 (abstract_declarator) state 154 75 direct_abstract_declarator: direct_abstract_declarator '(' . ')' 76 | direct_abstract_declarator '(' . parameter_list ')' EXTERN shift, and go to state 2 AUTO shift, and go to state 3 INT shift, and go to state 4 VOID shift, and go to state 5 FUNCTION shift, and go to state 6 ')' shift, and go to state 163 declaration_specifiers go to state 81 storage_class_specifier go to state 12 type_specifier go to state 13 parameter_list go to state 164 parameter_declaration go to state 83 state 155 63 parameter_list: parameter_list ',' parameter_declaration . $default reduce using rule 63 (parameter_list) state 156 68 identifier_list: identifier_list ',' IDENTIFIER . $default reduce using rule 68 (identifier_list) state 157 92 selection_statement: IF '(' expression ')' . statement 93 | IF '(' expression ')' . statement ELSE statement IDENTIFIER shift, and go to state 87 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 IF shift, and go to state 46 WHILE shift, and go to state 47 CONTINUE shift, and go to state 48 BREAK shift, and go to state 49 RETURN shift, and go to state 50 '(' shift, and go to state 88 '&' shift, and go to state 52 '*' shift, and go to state 89 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 ';' shift, and go to state 57 '{' shift, and go to state 29 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 61 unary_operator go to state 62 multiplicative_expression go to state 63 additive_expression go to state 64 relational_expression go to state 65 equality_expression go to state 66 assignment_expression go to state 67 expression go to state 68 statement go to state 165 compound_statement go to state 70 expression_statement go to state 73 selection_statement go to state 74 iteration_statement go to state 75 jump_statement go to state 76 state 158 94 iteration_statement: WHILE '(' expression ')' . statement IDENTIFIER shift, and go to state 87 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 IF shift, and go to state 46 WHILE shift, and go to state 47 CONTINUE shift, and go to state 48 BREAK shift, and go to state 49 RETURN shift, and go to state 50 '(' shift, and go to state 88 '&' shift, and go to state 52 '*' shift, and go to state 89 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 ';' shift, and go to state 57 '{' shift, and go to state 29 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 61 unary_operator go to state 62 multiplicative_expression go to state 63 additive_expression go to state 64 relational_expression go to state 65 equality_expression go to state 66 assignment_expression go to state 67 expression go to state 68 statement go to state 166 compound_statement go to state 70 expression_statement go to state 73 selection_statement go to state 74 iteration_statement go to state 75 jump_statement go to state 76 state 159 8 postfix_expression: postfix_expression '(' argument_expression_list ')' . $default reduce using rule 8 (postfix_expression) state 160 10 argument_expression_list: argument_expression_list ',' . assignment_expression IDENTIFIER shift, and go to state 87 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 '(' shift, and go to state 88 '&' shift, and go to state 52 '*' shift, and go to state 89 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 61 unary_operator go to state 62 multiplicative_expression go to state 63 additive_expression go to state 64 relational_expression go to state 65 equality_expression go to state 66 assignment_expression go to state 167 state 161 74 direct_abstract_declarator: '(' parameter_list ')' . $default reduce using rule 74 (direct_abstract_declarator) state 162 72 direct_abstract_declarator: '(' abstract_declarator ')' . $default reduce using rule 72 (direct_abstract_declarator) state 163 75 direct_abstract_declarator: direct_abstract_declarator '(' ')' . $default reduce using rule 75 (direct_abstract_declarator) state 164 63 parameter_list: parameter_list . ',' parameter_declaration 76 direct_abstract_declarator: direct_abstract_declarator '(' parameter_list . ')' ')' shift, and go to state 168 ',' shift, and go to state 125 state 165 92 selection_statement: IF '(' expression ')' statement . 93 | IF '(' expression ')' statement . ELSE statement ELSE shift, and go to state 169 ELSE [reduce using rule 92 (selection_statement)] $default reduce using rule 92 (selection_statement) state 166 94 iteration_statement: WHILE '(' expression ')' statement . $default reduce using rule 94 (iteration_statement) state 167 10 argument_expression_list: argument_expression_list ',' assignment_expression . $default reduce using rule 10 (argument_expression_list) state 168 76 direct_abstract_declarator: direct_abstract_declarator '(' parameter_list ')' . $default reduce using rule 76 (direct_abstract_declarator) state 169 93 selection_statement: IF '(' expression ')' statement ELSE . statement IDENTIFIER shift, and go to state 87 CONSTANT shift, and go to state 44 STRING_LITERAL shift, and go to state 45 IF shift, and go to state 46 WHILE shift, and go to state 47 CONTINUE shift, and go to state 48 BREAK shift, and go to state 49 RETURN shift, and go to state 50 '(' shift, and go to state 88 '&' shift, and go to state 52 '*' shift, and go to state 89 '+' shift, and go to state 54 '-' shift, and go to state 55 '!' shift, and go to state 56 ';' shift, and go to state 57 '{' shift, and go to state 29 primary_expression go to state 59 postfix_expression go to state 60 unary_expression go to state 61 unary_operator go to state 62 multiplicative_expression go to state 63 additive_expression go to state 64 relational_expression go to state 65 equality_expression go to state 66 assignment_expression go to state 67 expression go to state 68 statement go to state 170 compound_statement go to state 70 expression_statement go to state 73 selection_statement go to state 74 iteration_statement go to state 75 jump_statement go to state 76 state 170 93 selection_statement: IF '(' expression ')' statement ELSE statement . $default reduce using rule 93 (selection_statement)