Terminals unused in grammar "elsif" Grammar 0 $accept: start END 1 start: program 2 | V_function_definition function_definition 3 | V_def_or_decl_list_or_empty def_or_decl_list_or_empty 4 | V_def_or_decl_list def_or_decl_list 5 | V_def_or_decl def_or_decl 6 | V_header header 7 | V_formal_list formal_list 8 | V_formal formal 9 | V_type type 10 | V_function_declaration function_declaration 11 | V_variable_definition variable_definition 12 | V_id_list id_list 13 | V_statement statement 14 | V_elif_clause elif_clause 15 | V_elif_clause_list elif_clause_list 16 | V_elif_clause_list_or_empty elif_clause_list_or_empty 17 | V_else_clause_or_empty else_clause_or_empty 18 | V_statement_list statement_list 19 | V_simple simple 20 | V_simple_list simple_list 21 | V_call call 22 | V_expression_list_or_empty expression_list_or_empty 23 | V_expression_list expression_list 24 | V_atom atom 25 | V_expression expression 26 program: function_definition 27 function_definition: "def" header ":" def_or_decl_list_or_empty statement_list "end" 28 def_or_decl_list_or_empty: def_or_decl_list 29 | /* empty */ 30 def_or_decl_list: def_or_decl 31 | def_or_decl def_or_decl_list 32 def_or_decl: function_definition 33 | function_declaration 34 | variable_definition 35 header: type IDENTIFIER "(" formal_list ")" 36 formal_list: formal 37 | formal ";" formal_list 38 formal: "ref" type id_list 39 | type id_list 40 type: "int" 41 | "bool" 42 | "char" 43 | type "[" "]" 44 | "list" "[" type "]" 45 function_declaration: "decl" header 46 variable_definition: type id_list 47 id_list: IDENTIFIER 48 | IDENTIFIER "," id_list 49 statement: simple 50 | "exit" 51 | "return" expression 52 | "if" expression ":" statement_list elif_clause_list_or_empty else_clause_or_empty "end" 53 | "for" simple_list ";" expression ";" simple_list ":" statement_list "end" 54 elif_clause: "elif" expression ":" statement_list 55 elif_clause_list: elif_clause 56 | elif_clause elif_clause_list 57 elif_clause_list_or_empty: elif_clause_list 58 | /* empty */ 59 else_clause_or_empty: "else" ":" statement_list 60 | /* empty */ 61 statement_list: statement 62 | statement statement_list 63 simple: "skip" 64 | atom ":=" expression 65 | call 66 simple_list: simple 67 | simple "," simple_list 68 call: IDENTIFIER "(" expression_list_or_empty ")" 69 expression_list_or_empty: expression_list 70 | /* empty */ 71 expression_list: expression 72 | expression "," expression_list 73 atom: IDENTIFIER 74 | STRING_LITERAL 75 | atom "[" expression "]" 76 | call 77 expression: atom 78 | INT_CONST 79 | CHAR_CONST 80 | "(" expression ")" 81 | "+" expression 82 | "-" expression 83 | expression "+" expression 84 | expression "-" expression 85 | expression "*" expression 86 | expression "/" expression 87 | expression "mod" expression 88 | expression "=" expression 89 | expression "<>" expression 90 | expression "<" expression 91 | expression ">" expression 92 | expression "<=" expression 93 | expression ">=" expression 94 | "true" 95 | "false" 96 | "not" expression 97 | expression "and" expression 98 | expression "or" expression 99 | "new" type "[" expression "]" 100 | "nil" 101 | "nil?" "(" expression ")" 102 | expression "#" expression 103 | "head" "(" expression ")" 104 | "tail" "(" expression ")" Terminals, with rules where they appear END (0) 0 error (256) "and" (258) 97 "bool" (259) 41 "char" (260) 42 "decl" (261) 45 "def" (262) 27 "else" (263) 59 "elsif" (264) "end" (265) 27 52 53 "exit" (266) 50 "false" (267) 95 "for" (268) 53 "head" (269) 103 "if" (270) 52 "int" (271) 40 "list" (272) 44 "mod" (273) 87 "new" (274) 99 "nil" (275) 100 "nil?" (276) 101 "not" (277) 96 "or" (278) 98 "ref" (279) 38 "return" (280) 51 "skip" (281) 63 "tail" (282) 104 "true" (283) 94 "+" (284) 81 83 "-" (285) 82 84 "*" (286) 85 "/" (287) 86 "#" (288) 102 "=" (289) 88 "<>" (290) 89 "<" (291) 90 ">" (292) 91 "<=" (293) 92 ">=" (294) 93 "(" (295) 35 68 80 101 103 104 ")" (296) 35 68 80 101 103 104 "[" (297) 43 44 75 99 "]" (298) 43 44 75 99 "," (299) 48 67 72 ";" (300) 37 53 ":" (301) 27 52 53 54 59 ":=" (302) 64 IDENTIFIER (303) 35 47 48 68 73 INT_CONST (304) 78 CHAR_CONST (305) 79 STRING_LITERAL (306) 74 V_function_definition (307) 2 V_def_or_decl_list_or_empty (308) 3 V_def_or_decl_list (309) 4 V_def_or_decl (310) 5 V_header (311) 6 V_formal_list (312) 7 V_formal (313) 8 V_type (314) 9 V_function_declaration (315) 10 V_variable_definition (316) 11 V_id_list (317) 12 V_statement (318) 13 V_elif_clause (319) 14 V_elif_clause_list (320) 15 V_elif_clause_list_or_empty (321) 16 V_else_clause_or_empty (322) 17 V_statement_list (323) 18 V_simple (324) 19 V_simple_list (325) 20 V_call (326) 21 V_expression_list_or_empty (327) 22 V_expression_list (328) 23 V_atom (329) 24 V_expression (330) 25 UPLUS (331) UMINUS (332) "elif" (333) 54 Nonterminals, with rules where they appear $accept (79) on left: 0 start (80) on left: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25, on right: 0 program (81) on left: 26, on right: 1 function_definition (82) on left: 27, on right: 2 26 32 def_or_decl_list_or_empty (83) on left: 28 29, on right: 3 27 def_or_decl_list (84) on left: 30 31, on right: 4 28 31 def_or_decl (85) on left: 32 33 34, on right: 5 30 31 header (86) on left: 35, on right: 6 27 45 formal_list (87) on left: 36 37, on right: 7 35 37 formal (88) on left: 38 39, on right: 8 36 37 type (89) on left: 40 41 42 43 44, on right: 9 35 38 39 43 44 46 99 function_declaration (90) on left: 45, on right: 10 33 variable_definition (91) on left: 46, on right: 11 34 id_list (92) on left: 47 48, on right: 12 38 39 46 48 statement (93) on left: 49 50 51 52 53, on right: 13 61 62 elif_clause (94) on left: 54, on right: 14 55 56 elif_clause_list (95) on left: 55 56, on right: 15 56 57 elif_clause_list_or_empty (96) on left: 57 58, on right: 16 52 else_clause_or_empty (97) on left: 59 60, on right: 17 52 statement_list (98) on left: 61 62, on right: 18 27 52 53 54 59 62 simple (99) on left: 63 64 65, on right: 19 49 66 67 simple_list (100) on left: 66 67, on right: 20 53 67 call (101) on left: 68, on right: 21 65 76 expression_list_or_empty (102) on left: 69 70, on right: 22 68 expression_list (103) on left: 71 72, on right: 23 69 72 atom (104) on left: 73 74 75 76, on right: 24 64 75 77 expression (105) on left: 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104, on right: 25 51 52 53 54 64 71 72 75 80 81 82 83 84 85 86 87 88 89 90 91 92 93 96 97 98 99 101 102 103 104 state 0 0 $accept: . start END "def" shift, and go to state 1 V_function_definition shift, and go to state 2 V_def_or_decl_list_or_empty shift, and go to state 3 V_def_or_decl_list shift, and go to state 4 V_def_or_decl shift, and go to state 5 V_header shift, and go to state 6 V_formal_list shift, and go to state 7 V_formal shift, and go to state 8 V_type shift, and go to state 9 V_function_declaration shift, and go to state 10 V_variable_definition shift, and go to state 11 V_id_list shift, and go to state 12 V_statement shift, and go to state 13 V_elif_clause shift, and go to state 14 V_elif_clause_list shift, and go to state 15 V_elif_clause_list_or_empty shift, and go to state 16 V_else_clause_or_empty shift, and go to state 17 V_statement_list shift, and go to state 18 V_simple shift, and go to state 19 V_simple_list shift, and go to state 20 V_call shift, and go to state 21 V_expression_list_or_empty shift, and go to state 22 V_expression_list shift, and go to state 23 V_atom shift, and go to state 24 V_expression shift, and go to state 25 start go to state 26 program go to state 27 function_definition go to state 28 state 1 27 function_definition: "def" . header ":" def_or_decl_list_or_empty statement_list "end" "bool" shift, and go to state 29 "char" shift, and go to state 30 "int" shift, and go to state 31 "list" shift, and go to state 32 header go to state 33 type go to state 34 state 2 2 start: V_function_definition . function_definition "def" shift, and go to state 1 function_definition go to state 35 state 3 3 start: V_def_or_decl_list_or_empty . def_or_decl_list_or_empty "bool" shift, and go to state 29 "char" shift, and go to state 30 "decl" shift, and go to state 36 "def" shift, and go to state 1 "int" shift, and go to state 31 "list" shift, and go to state 32 $default reduce using rule 29 (def_or_decl_list_or_empty) function_definition go to state 37 def_or_decl_list_or_empty go to state 38 def_or_decl_list go to state 39 def_or_decl go to state 40 type go to state 41 function_declaration go to state 42 variable_definition go to state 43 state 4 4 start: V_def_or_decl_list . def_or_decl_list "bool" shift, and go to state 29 "char" shift, and go to state 30 "decl" shift, and go to state 36 "def" shift, and go to state 1 "int" shift, and go to state 31 "list" shift, and go to state 32 function_definition go to state 37 def_or_decl_list go to state 44 def_or_decl go to state 40 type go to state 41 function_declaration go to state 42 variable_definition go to state 43 state 5 5 start: V_def_or_decl . def_or_decl "bool" shift, and go to state 29 "char" shift, and go to state 30 "decl" shift, and go to state 36 "def" shift, and go to state 1 "int" shift, and go to state 31 "list" shift, and go to state 32 function_definition go to state 37 def_or_decl go to state 45 type go to state 41 function_declaration go to state 42 variable_definition go to state 43 state 6 6 start: V_header . header "bool" shift, and go to state 29 "char" shift, and go to state 30 "int" shift, and go to state 31 "list" shift, and go to state 32 header go to state 46 type go to state 34 state 7 7 start: V_formal_list . formal_list "bool" shift, and go to state 29 "char" shift, and go to state 30 "int" shift, and go to state 31 "list" shift, and go to state 32 "ref" shift, and go to state 47 formal_list go to state 48 formal go to state 49 type go to state 50 state 8 8 start: V_formal . formal "bool" shift, and go to state 29 "char" shift, and go to state 30 "int" shift, and go to state 31 "list" shift, and go to state 32 "ref" shift, and go to state 47 formal go to state 51 type go to state 50 state 9 9 start: V_type . type "bool" shift, and go to state 29 "char" shift, and go to state 30 "int" shift, and go to state 31 "list" shift, and go to state 32 type go to state 52 state 10 10 start: V_function_declaration . function_declaration "decl" shift, and go to state 36 function_declaration go to state 53 state 11 11 start: V_variable_definition . variable_definition "bool" shift, and go to state 29 "char" shift, and go to state 30 "int" shift, and go to state 31 "list" shift, and go to state 32 type go to state 41 variable_definition go to state 54 state 12 12 start: V_id_list . id_list IDENTIFIER shift, and go to state 55 id_list go to state 56 state 13 13 start: V_statement . statement "exit" shift, and go to state 57 "for" shift, and go to state 58 "if" shift, and go to state 59 "return" shift, and go to state 60 "skip" shift, and go to state 61 IDENTIFIER shift, and go to state 62 STRING_LITERAL shift, and go to state 63 statement go to state 64 simple go to state 65 call go to state 66 atom go to state 67 state 14 14 start: V_elif_clause . elif_clause "elif" shift, and go to state 68 elif_clause go to state 69 state 15 15 start: V_elif_clause_list . elif_clause_list "elif" shift, and go to state 68 elif_clause go to state 70 elif_clause_list go to state 71 state 16 16 start: V_elif_clause_list_or_empty . elif_clause_list_or_empty "elif" shift, and go to state 68 $default reduce using rule 58 (elif_clause_list_or_empty) elif_clause go to state 70 elif_clause_list go to state 72 elif_clause_list_or_empty go to state 73 state 17 17 start: V_else_clause_or_empty . else_clause_or_empty "else" shift, and go to state 74 $default reduce using rule 60 (else_clause_or_empty) else_clause_or_empty go to state 75 state 18 18 start: V_statement_list . statement_list "exit" shift, and go to state 57 "for" shift, and go to state 58 "if" shift, and go to state 59 "return" shift, and go to state 60 "skip" shift, and go to state 61 IDENTIFIER shift, and go to state 62 STRING_LITERAL shift, and go to state 63 statement go to state 76 statement_list go to state 77 simple go to state 65 call go to state 66 atom go to state 67 state 19 19 start: V_simple . simple "skip" shift, and go to state 61 IDENTIFIER shift, and go to state 62 STRING_LITERAL shift, and go to state 63 simple go to state 78 call go to state 66 atom go to state 67 state 20 20 start: V_simple_list . simple_list "skip" shift, and go to state 61 IDENTIFIER shift, and go to state 62 STRING_LITERAL shift, and go to state 63 simple go to state 79 simple_list go to state 80 call go to state 66 atom go to state 67 state 21 21 start: V_call . call IDENTIFIER shift, and go to state 81 call go to state 82 state 22 22 start: V_expression_list_or_empty . expression_list_or_empty "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 $default reduce using rule 70 (expression_list_or_empty) call go to state 96 expression_list_or_empty go to state 97 expression_list go to state 98 atom go to state 99 expression go to state 100 state 23 23 start: V_expression_list . expression_list "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 expression_list go to state 101 atom go to state 99 expression go to state 100 state 24 24 start: V_atom . atom IDENTIFIER shift, and go to state 62 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 102 state 25 25 start: V_expression . expression "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 103 state 26 0 $accept: start . END END shift, and go to state 104 state 27 1 start: program . $default reduce using rule 1 (start) state 28 26 program: function_definition . $default reduce using rule 26 (program) state 29 41 type: "bool" . $default reduce using rule 41 (type) state 30 42 type: "char" . $default reduce using rule 42 (type) state 31 40 type: "int" . $default reduce using rule 40 (type) state 32 44 type: "list" . "[" type "]" "[" shift, and go to state 105 state 33 27 function_definition: "def" header . ":" def_or_decl_list_or_empty statement_list "end" ":" shift, and go to state 106 state 34 35 header: type . IDENTIFIER "(" formal_list ")" 43 type: type . "[" "]" "[" shift, and go to state 107 IDENTIFIER shift, and go to state 108 state 35 2 start: V_function_definition function_definition . $default reduce using rule 2 (start) state 36 45 function_declaration: "decl" . header "bool" shift, and go to state 29 "char" shift, and go to state 30 "int" shift, and go to state 31 "list" shift, and go to state 32 header go to state 109 type go to state 34 state 37 32 def_or_decl: function_definition . $default reduce using rule 32 (def_or_decl) state 38 3 start: V_def_or_decl_list_or_empty def_or_decl_list_or_empty . $default reduce using rule 3 (start) state 39 28 def_or_decl_list_or_empty: def_or_decl_list . $default reduce using rule 28 (def_or_decl_list_or_empty) state 40 30 def_or_decl_list: def_or_decl . 31 | def_or_decl . def_or_decl_list "bool" shift, and go to state 29 "char" shift, and go to state 30 "decl" shift, and go to state 36 "def" shift, and go to state 1 "int" shift, and go to state 31 "list" shift, and go to state 32 $default reduce using rule 30 (def_or_decl_list) function_definition go to state 37 def_or_decl_list go to state 110 def_or_decl go to state 40 type go to state 41 function_declaration go to state 42 variable_definition go to state 43 state 41 43 type: type . "[" "]" 46 variable_definition: type . id_list "[" shift, and go to state 107 IDENTIFIER shift, and go to state 55 id_list go to state 111 state 42 33 def_or_decl: function_declaration . $default reduce using rule 33 (def_or_decl) state 43 34 def_or_decl: variable_definition . $default reduce using rule 34 (def_or_decl) state 44 4 start: V_def_or_decl_list def_or_decl_list . $default reduce using rule 4 (start) state 45 5 start: V_def_or_decl def_or_decl . $default reduce using rule 5 (start) state 46 6 start: V_header header . $default reduce using rule 6 (start) state 47 38 formal: "ref" . type id_list "bool" shift, and go to state 29 "char" shift, and go to state 30 "int" shift, and go to state 31 "list" shift, and go to state 32 type go to state 112 state 48 7 start: V_formal_list formal_list . $default reduce using rule 7 (start) state 49 36 formal_list: formal . 37 | formal . ";" formal_list ";" shift, and go to state 113 $default reduce using rule 36 (formal_list) state 50 39 formal: type . id_list 43 type: type . "[" "]" "[" shift, and go to state 107 IDENTIFIER shift, and go to state 55 id_list go to state 114 state 51 8 start: V_formal formal . $default reduce using rule 8 (start) state 52 9 start: V_type type . 43 type: type . "[" "]" "[" shift, and go to state 107 $default reduce using rule 9 (start) state 53 10 start: V_function_declaration function_declaration . $default reduce using rule 10 (start) state 54 11 start: V_variable_definition variable_definition . $default reduce using rule 11 (start) state 55 47 id_list: IDENTIFIER . 48 | IDENTIFIER . "," id_list "," shift, and go to state 115 $default reduce using rule 47 (id_list) state 56 12 start: V_id_list id_list . $default reduce using rule 12 (start) state 57 50 statement: "exit" . $default reduce using rule 50 (statement) state 58 53 statement: "for" . simple_list ";" expression ";" simple_list ":" statement_list "end" "skip" shift, and go to state 61 IDENTIFIER shift, and go to state 62 STRING_LITERAL shift, and go to state 63 simple go to state 79 simple_list go to state 116 call go to state 66 atom go to state 67 state 59 52 statement: "if" . expression ":" statement_list elif_clause_list_or_empty else_clause_or_empty "end" "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 117 state 60 51 statement: "return" . expression "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 118 state 61 63 simple: "skip" . $default reduce using rule 63 (simple) state 62 68 call: IDENTIFIER . "(" expression_list_or_empty ")" 73 atom: IDENTIFIER . "(" shift, and go to state 119 $default reduce using rule 73 (atom) state 63 74 atom: STRING_LITERAL . $default reduce using rule 74 (atom) state 64 13 start: V_statement statement . $default reduce using rule 13 (start) state 65 49 statement: simple . $default reduce using rule 49 (statement) state 66 65 simple: call . 76 atom: call . "[" reduce using rule 76 (atom) ":=" reduce using rule 76 (atom) $default reduce using rule 65 (simple) state 67 64 simple: atom . ":=" expression 75 atom: atom . "[" expression "]" "[" shift, and go to state 120 ":=" shift, and go to state 121 state 68 54 elif_clause: "elif" . expression ":" statement_list "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 122 state 69 14 start: V_elif_clause elif_clause . $default reduce using rule 14 (start) state 70 55 elif_clause_list: elif_clause . 56 | elif_clause . elif_clause_list "elif" shift, and go to state 68 $default reduce using rule 55 (elif_clause_list) elif_clause go to state 70 elif_clause_list go to state 123 state 71 15 start: V_elif_clause_list elif_clause_list . $default reduce using rule 15 (start) state 72 57 elif_clause_list_or_empty: elif_clause_list . $default reduce using rule 57 (elif_clause_list_or_empty) state 73 16 start: V_elif_clause_list_or_empty elif_clause_list_or_empty . $default reduce using rule 16 (start) state 74 59 else_clause_or_empty: "else" . ":" statement_list ":" shift, and go to state 124 state 75 17 start: V_else_clause_or_empty else_clause_or_empty . $default reduce using rule 17 (start) state 76 61 statement_list: statement . 62 | statement . statement_list "exit" shift, and go to state 57 "for" shift, and go to state 58 "if" shift, and go to state 59 "return" shift, and go to state 60 "skip" shift, and go to state 61 IDENTIFIER shift, and go to state 62 STRING_LITERAL shift, and go to state 63 $default reduce using rule 61 (statement_list) statement go to state 76 statement_list go to state 125 simple go to state 65 call go to state 66 atom go to state 67 state 77 18 start: V_statement_list statement_list . $default reduce using rule 18 (start) state 78 19 start: V_simple simple . $default reduce using rule 19 (start) state 79 66 simple_list: simple . 67 | simple . "," simple_list "," shift, and go to state 126 $default reduce using rule 66 (simple_list) state 80 20 start: V_simple_list simple_list . $default reduce using rule 20 (start) state 81 68 call: IDENTIFIER . "(" expression_list_or_empty ")" "(" shift, and go to state 119 state 82 21 start: V_call call . $default reduce using rule 21 (start) state 83 95 expression: "false" . $default reduce using rule 95 (expression) state 84 103 expression: "head" . "(" expression ")" "(" shift, and go to state 127 state 85 99 expression: "new" . type "[" expression "]" "bool" shift, and go to state 29 "char" shift, and go to state 30 "int" shift, and go to state 31 "list" shift, and go to state 32 type go to state 128 state 86 100 expression: "nil" . $default reduce using rule 100 (expression) state 87 101 expression: "nil?" . "(" expression ")" "(" shift, and go to state 129 state 88 96 expression: "not" . expression "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 130 state 89 104 expression: "tail" . "(" expression ")" "(" shift, and go to state 131 state 90 94 expression: "true" . $default reduce using rule 94 (expression) state 91 81 expression: "+" . expression "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 132 state 92 82 expression: "-" . expression "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 133 state 93 80 expression: "(" . expression ")" "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 134 state 94 78 expression: INT_CONST . $default reduce using rule 78 (expression) state 95 79 expression: CHAR_CONST . $default reduce using rule 79 (expression) state 96 76 atom: call . $default reduce using rule 76 (atom) state 97 22 start: V_expression_list_or_empty expression_list_or_empty . $default reduce using rule 22 (start) state 98 69 expression_list_or_empty: expression_list . $default reduce using rule 69 (expression_list_or_empty) state 99 75 atom: atom . "[" expression "]" 77 expression: atom . "[" shift, and go to state 120 $default reduce using rule 77 (expression) state 100 71 expression_list: expression . 72 | expression . "," expression_list 83 expression: expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 97 | expression . "and" expression 98 | expression . "or" expression 102 | expression . "#" expression "and" shift, and go to state 135 "mod" shift, and go to state 136 "or" shift, and go to state 137 "+" shift, and go to state 138 "-" shift, and go to state 139 "*" shift, and go to state 140 "/" shift, and go to state 141 "#" shift, and go to state 142 "=" shift, and go to state 143 "<>" shift, and go to state 144 "<" shift, and go to state 145 ">" shift, and go to state 146 "<=" shift, and go to state 147 ">=" shift, and go to state 148 "," shift, and go to state 149 $default reduce using rule 71 (expression_list) state 101 23 start: V_expression_list expression_list . $default reduce using rule 23 (start) state 102 24 start: V_atom atom . 75 atom: atom . "[" expression "]" "[" shift, and go to state 120 $default reduce using rule 24 (start) state 103 25 start: V_expression expression . 83 expression: expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 97 | expression . "and" expression 98 | expression . "or" expression 102 | expression . "#" expression "and" shift, and go to state 135 "mod" shift, and go to state 136 "or" shift, and go to state 137 "+" shift, and go to state 138 "-" shift, and go to state 139 "*" shift, and go to state 140 "/" shift, and go to state 141 "#" shift, and go to state 142 "=" shift, and go to state 143 "<>" shift, and go to state 144 "<" shift, and go to state 145 ">" shift, and go to state 146 "<=" shift, and go to state 147 ">=" shift, and go to state 148 $default reduce using rule 25 (start) state 104 0 $accept: start END . $default accept state 105 44 type: "list" "[" . type "]" "bool" shift, and go to state 29 "char" shift, and go to state 30 "int" shift, and go to state 31 "list" shift, and go to state 32 type go to state 150 state 106 27 function_definition: "def" header ":" . def_or_decl_list_or_empty statement_list "end" "bool" shift, and go to state 29 "char" shift, and go to state 30 "decl" shift, and go to state 36 "def" shift, and go to state 1 "int" shift, and go to state 31 "list" shift, and go to state 32 $default reduce using rule 29 (def_or_decl_list_or_empty) function_definition go to state 37 def_or_decl_list_or_empty go to state 151 def_or_decl_list go to state 39 def_or_decl go to state 40 type go to state 41 function_declaration go to state 42 variable_definition go to state 43 state 107 43 type: type "[" . "]" "]" shift, and go to state 152 state 108 35 header: type IDENTIFIER . "(" formal_list ")" "(" shift, and go to state 153 state 109 45 function_declaration: "decl" header . $default reduce using rule 45 (function_declaration) state 110 31 def_or_decl_list: def_or_decl def_or_decl_list . $default reduce using rule 31 (def_or_decl_list) state 111 46 variable_definition: type id_list . $default reduce using rule 46 (variable_definition) state 112 38 formal: "ref" type . id_list 43 type: type . "[" "]" "[" shift, and go to state 107 IDENTIFIER shift, and go to state 55 id_list go to state 154 state 113 37 formal_list: formal ";" . formal_list "bool" shift, and go to state 29 "char" shift, and go to state 30 "int" shift, and go to state 31 "list" shift, and go to state 32 "ref" shift, and go to state 47 formal_list go to state 155 formal go to state 49 type go to state 50 state 114 39 formal: type id_list . $default reduce using rule 39 (formal) state 115 48 id_list: IDENTIFIER "," . id_list IDENTIFIER shift, and go to state 55 id_list go to state 156 state 116 53 statement: "for" simple_list . ";" expression ";" simple_list ":" statement_list "end" ";" shift, and go to state 157 state 117 52 statement: "if" expression . ":" statement_list elif_clause_list_or_empty else_clause_or_empty "end" 83 expression: expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 97 | expression . "and" expression 98 | expression . "or" expression 102 | expression . "#" expression "and" shift, and go to state 135 "mod" shift, and go to state 136 "or" shift, and go to state 137 "+" shift, and go to state 138 "-" shift, and go to state 139 "*" shift, and go to state 140 "/" shift, and go to state 141 "#" shift, and go to state 142 "=" shift, and go to state 143 "<>" shift, and go to state 144 "<" shift, and go to state 145 ">" shift, and go to state 146 "<=" shift, and go to state 147 ">=" shift, and go to state 148 ":" shift, and go to state 158 state 118 51 statement: "return" expression . 83 expression: expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 97 | expression . "and" expression 98 | expression . "or" expression 102 | expression . "#" expression "and" shift, and go to state 135 "mod" shift, and go to state 136 "or" shift, and go to state 137 "+" shift, and go to state 138 "-" shift, and go to state 139 "*" shift, and go to state 140 "/" shift, and go to state 141 "#" shift, and go to state 142 "=" shift, and go to state 143 "<>" shift, and go to state 144 "<" shift, and go to state 145 ">" shift, and go to state 146 "<=" shift, and go to state 147 ">=" shift, and go to state 148 $default reduce using rule 51 (statement) state 119 68 call: IDENTIFIER "(" . expression_list_or_empty ")" "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 $default reduce using rule 70 (expression_list_or_empty) call go to state 96 expression_list_or_empty go to state 159 expression_list go to state 98 atom go to state 99 expression go to state 100 state 120 75 atom: atom "[" . expression "]" "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 160 state 121 64 simple: atom ":=" . expression "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 161 state 122 54 elif_clause: "elif" expression . ":" statement_list 83 expression: expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 97 | expression . "and" expression 98 | expression . "or" expression 102 | expression . "#" expression "and" shift, and go to state 135 "mod" shift, and go to state 136 "or" shift, and go to state 137 "+" shift, and go to state 138 "-" shift, and go to state 139 "*" shift, and go to state 140 "/" shift, and go to state 141 "#" shift, and go to state 142 "=" shift, and go to state 143 "<>" shift, and go to state 144 "<" shift, and go to state 145 ">" shift, and go to state 146 "<=" shift, and go to state 147 ">=" shift, and go to state 148 ":" shift, and go to state 162 state 123 56 elif_clause_list: elif_clause elif_clause_list . $default reduce using rule 56 (elif_clause_list) state 124 59 else_clause_or_empty: "else" ":" . statement_list "exit" shift, and go to state 57 "for" shift, and go to state 58 "if" shift, and go to state 59 "return" shift, and go to state 60 "skip" shift, and go to state 61 IDENTIFIER shift, and go to state 62 STRING_LITERAL shift, and go to state 63 statement go to state 76 statement_list go to state 163 simple go to state 65 call go to state 66 atom go to state 67 state 125 62 statement_list: statement statement_list . $default reduce using rule 62 (statement_list) state 126 67 simple_list: simple "," . simple_list "skip" shift, and go to state 61 IDENTIFIER shift, and go to state 62 STRING_LITERAL shift, and go to state 63 simple go to state 79 simple_list go to state 164 call go to state 66 atom go to state 67 state 127 103 expression: "head" "(" . expression ")" "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 165 state 128 43 type: type . "[" "]" 99 expression: "new" type . "[" expression "]" "[" shift, and go to state 166 state 129 101 expression: "nil?" "(" . expression ")" "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 167 state 130 83 expression: expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 96 | "not" expression . 97 | expression . "and" expression 98 | expression . "or" expression 102 | expression . "#" expression "mod" shift, and go to state 136 "+" shift, and go to state 138 "-" shift, and go to state 139 "*" shift, and go to state 140 "/" shift, and go to state 141 "#" shift, and go to state 142 "=" shift, and go to state 143 "<>" shift, and go to state 144 "<" shift, and go to state 145 ">" shift, and go to state 146 "<=" shift, and go to state 147 ">=" shift, and go to state 148 $default reduce using rule 96 (expression) state 131 104 expression: "tail" "(" . expression ")" "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 168 state 132 81 expression: "+" expression . 83 | expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 97 | expression . "and" expression 98 | expression . "or" expression 102 | expression . "#" expression $default reduce using rule 81 (expression) state 133 82 expression: "-" expression . 83 | expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 97 | expression . "and" expression 98 | expression . "or" expression 102 | expression . "#" expression $default reduce using rule 82 (expression) state 134 80 expression: "(" expression . ")" 83 | expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 97 | expression . "and" expression 98 | expression . "or" expression 102 | expression . "#" expression "and" shift, and go to state 135 "mod" shift, and go to state 136 "or" shift, and go to state 137 "+" shift, and go to state 138 "-" shift, and go to state 139 "*" shift, and go to state 140 "/" shift, and go to state 141 "#" shift, and go to state 142 "=" shift, and go to state 143 "<>" shift, and go to state 144 "<" shift, and go to state 145 ">" shift, and go to state 146 "<=" shift, and go to state 147 ">=" shift, and go to state 148 ")" shift, and go to state 169 state 135 97 expression: expression "and" . expression "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 170 state 136 87 expression: expression "mod" . expression "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 171 state 137 98 expression: expression "or" . expression "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 172 state 138 83 expression: expression "+" . expression "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 173 state 139 84 expression: expression "-" . expression "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 174 state 140 85 expression: expression "*" . expression "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 175 state 141 86 expression: expression "/" . expression "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 176 state 142 102 expression: expression "#" . expression "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 177 state 143 88 expression: expression "=" . expression "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 178 state 144 89 expression: expression "<>" . expression "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 179 state 145 90 expression: expression "<" . expression "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 180 state 146 91 expression: expression ">" . expression "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 181 state 147 92 expression: expression "<=" . expression "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 182 state 148 93 expression: expression ">=" . expression "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 183 state 149 72 expression_list: expression "," . expression_list "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 expression_list go to state 184 atom go to state 99 expression go to state 100 state 150 43 type: type . "[" "]" 44 | "list" "[" type . "]" "[" shift, and go to state 107 "]" shift, and go to state 185 state 151 27 function_definition: "def" header ":" def_or_decl_list_or_empty . statement_list "end" "exit" shift, and go to state 57 "for" shift, and go to state 58 "if" shift, and go to state 59 "return" shift, and go to state 60 "skip" shift, and go to state 61 IDENTIFIER shift, and go to state 62 STRING_LITERAL shift, and go to state 63 statement go to state 76 statement_list go to state 186 simple go to state 65 call go to state 66 atom go to state 67 state 152 43 type: type "[" "]" . $default reduce using rule 43 (type) state 153 35 header: type IDENTIFIER "(" . formal_list ")" "bool" shift, and go to state 29 "char" shift, and go to state 30 "int" shift, and go to state 31 "list" shift, and go to state 32 "ref" shift, and go to state 47 formal_list go to state 187 formal go to state 49 type go to state 50 state 154 38 formal: "ref" type id_list . $default reduce using rule 38 (formal) state 155 37 formal_list: formal ";" formal_list . $default reduce using rule 37 (formal_list) state 156 48 id_list: IDENTIFIER "," id_list . $default reduce using rule 48 (id_list) state 157 53 statement: "for" simple_list ";" . expression ";" simple_list ":" statement_list "end" "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 188 state 158 52 statement: "if" expression ":" . statement_list elif_clause_list_or_empty else_clause_or_empty "end" "exit" shift, and go to state 57 "for" shift, and go to state 58 "if" shift, and go to state 59 "return" shift, and go to state 60 "skip" shift, and go to state 61 IDENTIFIER shift, and go to state 62 STRING_LITERAL shift, and go to state 63 statement go to state 76 statement_list go to state 189 simple go to state 65 call go to state 66 atom go to state 67 state 159 68 call: IDENTIFIER "(" expression_list_or_empty . ")" ")" shift, and go to state 190 state 160 75 atom: atom "[" expression . "]" 83 expression: expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 97 | expression . "and" expression 98 | expression . "or" expression 102 | expression . "#" expression "and" shift, and go to state 135 "mod" shift, and go to state 136 "or" shift, and go to state 137 "+" shift, and go to state 138 "-" shift, and go to state 139 "*" shift, and go to state 140 "/" shift, and go to state 141 "#" shift, and go to state 142 "=" shift, and go to state 143 "<>" shift, and go to state 144 "<" shift, and go to state 145 ">" shift, and go to state 146 "<=" shift, and go to state 147 ">=" shift, and go to state 148 "]" shift, and go to state 191 state 161 64 simple: atom ":=" expression . 83 expression: expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 97 | expression . "and" expression 98 | expression . "or" expression 102 | expression . "#" expression "and" shift, and go to state 135 "mod" shift, and go to state 136 "or" shift, and go to state 137 "+" shift, and go to state 138 "-" shift, and go to state 139 "*" shift, and go to state 140 "/" shift, and go to state 141 "#" shift, and go to state 142 "=" shift, and go to state 143 "<>" shift, and go to state 144 "<" shift, and go to state 145 ">" shift, and go to state 146 "<=" shift, and go to state 147 ">=" shift, and go to state 148 $default reduce using rule 64 (simple) state 162 54 elif_clause: "elif" expression ":" . statement_list "exit" shift, and go to state 57 "for" shift, and go to state 58 "if" shift, and go to state 59 "return" shift, and go to state 60 "skip" shift, and go to state 61 IDENTIFIER shift, and go to state 62 STRING_LITERAL shift, and go to state 63 statement go to state 76 statement_list go to state 192 simple go to state 65 call go to state 66 atom go to state 67 state 163 59 else_clause_or_empty: "else" ":" statement_list . $default reduce using rule 59 (else_clause_or_empty) state 164 67 simple_list: simple "," simple_list . $default reduce using rule 67 (simple_list) state 165 83 expression: expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 97 | expression . "and" expression 98 | expression . "or" expression 102 | expression . "#" expression 103 | "head" "(" expression . ")" "and" shift, and go to state 135 "mod" shift, and go to state 136 "or" shift, and go to state 137 "+" shift, and go to state 138 "-" shift, and go to state 139 "*" shift, and go to state 140 "/" shift, and go to state 141 "#" shift, and go to state 142 "=" shift, and go to state 143 "<>" shift, and go to state 144 "<" shift, and go to state 145 ">" shift, and go to state 146 "<=" shift, and go to state 147 ">=" shift, and go to state 148 ")" shift, and go to state 193 state 166 43 type: type "[" . "]" 99 expression: "new" type "[" . expression "]" "false" shift, and go to state 83 "head" shift, and go to state 84 "new" shift, and go to state 85 "nil" shift, and go to state 86 "nil?" shift, and go to state 87 "not" shift, and go to state 88 "tail" shift, and go to state 89 "true" shift, and go to state 90 "+" shift, and go to state 91 "-" shift, and go to state 92 "(" shift, and go to state 93 "]" shift, and go to state 152 IDENTIFIER shift, and go to state 62 INT_CONST shift, and go to state 94 CHAR_CONST shift, and go to state 95 STRING_LITERAL shift, and go to state 63 call go to state 96 atom go to state 99 expression go to state 194 state 167 83 expression: expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 97 | expression . "and" expression 98 | expression . "or" expression 101 | "nil?" "(" expression . ")" 102 | expression . "#" expression "and" shift, and go to state 135 "mod" shift, and go to state 136 "or" shift, and go to state 137 "+" shift, and go to state 138 "-" shift, and go to state 139 "*" shift, and go to state 140 "/" shift, and go to state 141 "#" shift, and go to state 142 "=" shift, and go to state 143 "<>" shift, and go to state 144 "<" shift, and go to state 145 ">" shift, and go to state 146 "<=" shift, and go to state 147 ">=" shift, and go to state 148 ")" shift, and go to state 195 state 168 83 expression: expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 97 | expression . "and" expression 98 | expression . "or" expression 102 | expression . "#" expression 104 | "tail" "(" expression . ")" "and" shift, and go to state 135 "mod" shift, and go to state 136 "or" shift, and go to state 137 "+" shift, and go to state 138 "-" shift, and go to state 139 "*" shift, and go to state 140 "/" shift, and go to state 141 "#" shift, and go to state 142 "=" shift, and go to state 143 "<>" shift, and go to state 144 "<" shift, and go to state 145 ">" shift, and go to state 146 "<=" shift, and go to state 147 ">=" shift, and go to state 148 ")" shift, and go to state 196 state 169 80 expression: "(" expression ")" . $default reduce using rule 80 (expression) state 170 83 expression: expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 97 | expression . "and" expression 97 | expression "and" expression . 98 | expression . "or" expression 102 | expression . "#" expression "mod" shift, and go to state 136 "+" shift, and go to state 138 "-" shift, and go to state 139 "*" shift, and go to state 140 "/" shift, and go to state 141 "#" shift, and go to state 142 "=" shift, and go to state 143 "<>" shift, and go to state 144 "<" shift, and go to state 145 ">" shift, and go to state 146 "<=" shift, and go to state 147 ">=" shift, and go to state 148 $default reduce using rule 97 (expression) state 171 83 expression: expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 87 | expression "mod" expression . 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 97 | expression . "and" expression 98 | expression . "or" expression 102 | expression . "#" expression $default reduce using rule 87 (expression) state 172 83 expression: expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 97 | expression . "and" expression 98 | expression . "or" expression 98 | expression "or" expression . 102 | expression . "#" expression "and" shift, and go to state 135 "mod" shift, and go to state 136 "+" shift, and go to state 138 "-" shift, and go to state 139 "*" shift, and go to state 140 "/" shift, and go to state 141 "#" shift, and go to state 142 "=" shift, and go to state 143 "<>" shift, and go to state 144 "<" shift, and go to state 145 ">" shift, and go to state 146 "<=" shift, and go to state 147 ">=" shift, and go to state 148 $default reduce using rule 98 (expression) state 173 83 expression: expression . "+" expression 83 | expression "+" expression . 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 97 | expression . "and" expression 98 | expression . "or" expression 102 | expression . "#" expression "mod" shift, and go to state 136 "*" shift, and go to state 140 "/" shift, and go to state 141 $default reduce using rule 83 (expression) state 174 83 expression: expression . "+" expression 84 | expression . "-" expression 84 | expression "-" expression . 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 97 | expression . "and" expression 98 | expression . "or" expression 102 | expression . "#" expression "mod" shift, and go to state 136 "*" shift, and go to state 140 "/" shift, and go to state 141 $default reduce using rule 84 (expression) state 175 83 expression: expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 85 | expression "*" expression . 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 97 | expression . "and" expression 98 | expression . "or" expression 102 | expression . "#" expression $default reduce using rule 85 (expression) state 176 83 expression: expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 86 | expression "/" expression . 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 97 | expression . "and" expression 98 | expression . "or" expression 102 | expression . "#" expression $default reduce using rule 86 (expression) state 177 83 expression: expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 97 | expression . "and" expression 98 | expression . "or" expression 102 | expression . "#" expression 102 | expression "#" expression . "mod" shift, and go to state 136 "+" shift, and go to state 138 "-" shift, and go to state 139 "*" shift, and go to state 140 "/" shift, and go to state 141 "#" shift, and go to state 142 $default reduce using rule 102 (expression) state 178 83 expression: expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 88 | expression "=" expression . 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 97 | expression . "and" expression 98 | expression . "or" expression 102 | expression . "#" expression "mod" shift, and go to state 136 "+" shift, and go to state 138 "-" shift, and go to state 139 "*" shift, and go to state 140 "/" shift, and go to state 141 "#" shift, and go to state 142 "=" error (nonassociative) "<>" error (nonassociative) "<" error (nonassociative) ">" error (nonassociative) "<=" error (nonassociative) ">=" error (nonassociative) $default reduce using rule 88 (expression) state 179 83 expression: expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 89 | expression "<>" expression . 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 97 | expression . "and" expression 98 | expression . "or" expression 102 | expression . "#" expression "mod" shift, and go to state 136 "+" shift, and go to state 138 "-" shift, and go to state 139 "*" shift, and go to state 140 "/" shift, and go to state 141 "#" shift, and go to state 142 "=" error (nonassociative) "<>" error (nonassociative) "<" error (nonassociative) ">" error (nonassociative) "<=" error (nonassociative) ">=" error (nonassociative) $default reduce using rule 89 (expression) state 180 83 expression: expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 90 | expression "<" expression . 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 97 | expression . "and" expression 98 | expression . "or" expression 102 | expression . "#" expression "mod" shift, and go to state 136 "+" shift, and go to state 138 "-" shift, and go to state 139 "*" shift, and go to state 140 "/" shift, and go to state 141 "#" shift, and go to state 142 "=" error (nonassociative) "<>" error (nonassociative) "<" error (nonassociative) ">" error (nonassociative) "<=" error (nonassociative) ">=" error (nonassociative) $default reduce using rule 90 (expression) state 181 83 expression: expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 91 | expression ">" expression . 92 | expression . "<=" expression 93 | expression . ">=" expression 97 | expression . "and" expression 98 | expression . "or" expression 102 | expression . "#" expression "mod" shift, and go to state 136 "+" shift, and go to state 138 "-" shift, and go to state 139 "*" shift, and go to state 140 "/" shift, and go to state 141 "#" shift, and go to state 142 "=" error (nonassociative) "<>" error (nonassociative) "<" error (nonassociative) ">" error (nonassociative) "<=" error (nonassociative) ">=" error (nonassociative) $default reduce using rule 91 (expression) state 182 83 expression: expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 92 | expression "<=" expression . 93 | expression . ">=" expression 97 | expression . "and" expression 98 | expression . "or" expression 102 | expression . "#" expression "mod" shift, and go to state 136 "+" shift, and go to state 138 "-" shift, and go to state 139 "*" shift, and go to state 140 "/" shift, and go to state 141 "#" shift, and go to state 142 "=" error (nonassociative) "<>" error (nonassociative) "<" error (nonassociative) ">" error (nonassociative) "<=" error (nonassociative) ">=" error (nonassociative) $default reduce using rule 92 (expression) state 183 83 expression: expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 93 | expression ">=" expression . 97 | expression . "and" expression 98 | expression . "or" expression 102 | expression . "#" expression "mod" shift, and go to state 136 "+" shift, and go to state 138 "-" shift, and go to state 139 "*" shift, and go to state 140 "/" shift, and go to state 141 "#" shift, and go to state 142 "=" error (nonassociative) "<>" error (nonassociative) "<" error (nonassociative) ">" error (nonassociative) "<=" error (nonassociative) ">=" error (nonassociative) $default reduce using rule 93 (expression) state 184 72 expression_list: expression "," expression_list . $default reduce using rule 72 (expression_list) state 185 44 type: "list" "[" type "]" . $default reduce using rule 44 (type) state 186 27 function_definition: "def" header ":" def_or_decl_list_or_empty statement_list . "end" "end" shift, and go to state 197 state 187 35 header: type IDENTIFIER "(" formal_list . ")" ")" shift, and go to state 198 state 188 53 statement: "for" simple_list ";" expression . ";" simple_list ":" statement_list "end" 83 expression: expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 97 | expression . "and" expression 98 | expression . "or" expression 102 | expression . "#" expression "and" shift, and go to state 135 "mod" shift, and go to state 136 "or" shift, and go to state 137 "+" shift, and go to state 138 "-" shift, and go to state 139 "*" shift, and go to state 140 "/" shift, and go to state 141 "#" shift, and go to state 142 "=" shift, and go to state 143 "<>" shift, and go to state 144 "<" shift, and go to state 145 ">" shift, and go to state 146 "<=" shift, and go to state 147 ">=" shift, and go to state 148 ";" shift, and go to state 199 state 189 52 statement: "if" expression ":" statement_list . elif_clause_list_or_empty else_clause_or_empty "end" "elif" shift, and go to state 68 $default reduce using rule 58 (elif_clause_list_or_empty) elif_clause go to state 70 elif_clause_list go to state 72 elif_clause_list_or_empty go to state 200 state 190 68 call: IDENTIFIER "(" expression_list_or_empty ")" . $default reduce using rule 68 (call) state 191 75 atom: atom "[" expression "]" . $default reduce using rule 75 (atom) state 192 54 elif_clause: "elif" expression ":" statement_list . $default reduce using rule 54 (elif_clause) state 193 103 expression: "head" "(" expression ")" . $default reduce using rule 103 (expression) state 194 83 expression: expression . "+" expression 84 | expression . "-" expression 85 | expression . "*" expression 86 | expression . "/" expression 87 | expression . "mod" expression 88 | expression . "=" expression 89 | expression . "<>" expression 90 | expression . "<" expression 91 | expression . ">" expression 92 | expression . "<=" expression 93 | expression . ">=" expression 97 | expression . "and" expression 98 | expression . "or" expression 99 | "new" type "[" expression . "]" 102 | expression . "#" expression "and" shift, and go to state 135 "mod" shift, and go to state 136 "or" shift, and go to state 137 "+" shift, and go to state 138 "-" shift, and go to state 139 "*" shift, and go to state 140 "/" shift, and go to state 141 "#" shift, and go to state 142 "=" shift, and go to state 143 "<>" shift, and go to state 144 "<" shift, and go to state 145 ">" shift, and go to state 146 "<=" shift, and go to state 147 ">=" shift, and go to state 148 "]" shift, and go to state 201 state 195 101 expression: "nil?" "(" expression ")" . $default reduce using rule 101 (expression) state 196 104 expression: "tail" "(" expression ")" . $default reduce using rule 104 (expression) state 197 27 function_definition: "def" header ":" def_or_decl_list_or_empty statement_list "end" . $default reduce using rule 27 (function_definition) state 198 35 header: type IDENTIFIER "(" formal_list ")" . $default reduce using rule 35 (header) state 199 53 statement: "for" simple_list ";" expression ";" . simple_list ":" statement_list "end" "skip" shift, and go to state 61 IDENTIFIER shift, and go to state 62 STRING_LITERAL shift, and go to state 63 simple go to state 79 simple_list go to state 202 call go to state 66 atom go to state 67 state 200 52 statement: "if" expression ":" statement_list elif_clause_list_or_empty . else_clause_or_empty "end" "else" shift, and go to state 74 $default reduce using rule 60 (else_clause_or_empty) else_clause_or_empty go to state 203 state 201 99 expression: "new" type "[" expression "]" . $default reduce using rule 99 (expression) state 202 53 statement: "for" simple_list ";" expression ";" simple_list . ":" statement_list "end" ":" shift, and go to state 204 state 203 52 statement: "if" expression ":" statement_list elif_clause_list_or_empty else_clause_or_empty . "end" "end" shift, and go to state 205 state 204 53 statement: "for" simple_list ";" expression ";" simple_list ":" . statement_list "end" "exit" shift, and go to state 57 "for" shift, and go to state 58 "if" shift, and go to state 59 "return" shift, and go to state 60 "skip" shift, and go to state 61 IDENTIFIER shift, and go to state 62 STRING_LITERAL shift, and go to state 63 statement go to state 76 statement_list go to state 206 simple go to state 65 call go to state 66 atom go to state 67 state 205 52 statement: "if" expression ":" statement_list elif_clause_list_or_empty else_clause_or_empty "end" . $default reduce using rule 52 (statement) state 206 53 statement: "for" simple_list ";" expression ";" simple_list ":" statement_list . "end" "end" shift, and go to state 207 state 207 53 statement: "for" simple_list ";" expression ";" simple_list ":" statement_list "end" . $default reduce using rule 53 (statement)