dhaka 2.2.0 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. data/Rakefile +2 -2
  2. data/lib/dhaka.rb +3 -1
  3. data/lib/{dot → dhaka/dot}/dot.rb +0 -0
  4. data/lib/{evaluator → dhaka/evaluator}/evaluator.rb +0 -0
  5. data/lib/{grammar → dhaka/grammar}/closure_hash.rb +0 -0
  6. data/lib/{grammar → dhaka/grammar}/grammar.rb +0 -0
  7. data/lib/{grammar → dhaka/grammar}/grammar_symbol.rb +0 -0
  8. data/lib/{grammar → dhaka/grammar}/precedence.rb +0 -0
  9. data/lib/{grammar → dhaka/grammar}/production.rb +0 -0
  10. data/lib/dhaka/lexer/accept_actions.rb +36 -0
  11. data/lib/dhaka/lexer/alphabet.rb +21 -0
  12. data/lib/dhaka/lexer/alphabet.rb~ +5 -0
  13. data/lib/{lexer → dhaka/lexer}/compiled_lexer.rb +0 -0
  14. data/lib/{lexer → dhaka/lexer}/dfa.rb +0 -0
  15. data/lib/{lexer → dhaka/lexer}/lexeme.rb +0 -0
  16. data/lib/{lexer → dhaka/lexer}/lexer.rb +0 -0
  17. data/lib/{lexer → dhaka/lexer}/lexer_run.rb +0 -0
  18. data/lib/{lexer → dhaka/lexer}/regex_grammar.rb +0 -50
  19. data/lib/dhaka/lexer/regex_parser.rb +2010 -0
  20. data/lib/{lexer → dhaka/lexer}/regex_tokenizer.rb +0 -0
  21. data/lib/{lexer → dhaka/lexer}/specification.rb +3 -2
  22. data/lib/{lexer → dhaka/lexer}/state.rb +0 -0
  23. data/lib/{lexer → dhaka/lexer}/state_machine.rb +0 -0
  24. data/lib/{parser → dhaka/parser}/action.rb +0 -0
  25. data/lib/{parser → dhaka/parser}/channel.rb +0 -0
  26. data/lib/{parser → dhaka/parser}/compiled_parser.rb +0 -0
  27. data/lib/{parser → dhaka/parser}/conflict.rb +0 -0
  28. data/lib/{parser → dhaka/parser}/item.rb +0 -0
  29. data/lib/{parser → dhaka/parser}/parse_result.rb +7 -3
  30. data/lib/{parser → dhaka/parser}/parse_tree.rb +0 -0
  31. data/lib/{parser → dhaka/parser}/parser.rb +0 -0
  32. data/lib/{parser → dhaka/parser}/parser_methods.rb +0 -0
  33. data/lib/{parser → dhaka/parser}/parser_run.rb +1 -1
  34. data/lib/{parser → dhaka/parser}/parser_state.rb +0 -0
  35. data/lib/{parser → dhaka/parser}/token.rb +0 -0
  36. data/lib/dhaka/runtime.rb +51 -0
  37. data/lib/dhaka/runtime.rb~ +49 -0
  38. data/lib/{tokenizer → dhaka/tokenizer}/tokenizer.rb +8 -3
  39. data/test/brackets/bracket_tokenizer.rb +7 -0
  40. data/test/brackets/brackets_test.rb +9 -0
  41. data/test/chittagong/chittagong_lexer.rb +63 -63
  42. data/test/chittagong/chittagong_parser.rb +660 -660
  43. data/test/core/another_lalr_but_not_slr_grammar.rb.rej +13 -0
  44. metadata +73 -69
  45. data/lib/lexer/regex_parser.rb +0 -2010
  46. data/test/chittagong/chittagong_lexer.rb.rej +0 -189
  47. data/test/chittagong/chittagong_parser.rb.rej +0 -1623
@@ -1,189 +0,0 @@
1
- ***************
2
- *** 5
3
- - start_with 21824080
4
- --- 5 -----
5
- + start_with 22347760
6
- ***************
7
- *** 7,8
8
- - at_state(21819770) {
9
- - for_characters("6", "7", "8", "9", "0", "1", "2", "3", "4", "5") { switch_to 21819470 }
10
- --- 7,8 -----
11
- + at_state(22321370) {
12
- + accept("\\)")
13
- ***************
14
- *** 11,12
15
- - at_state(21821860) {
16
- - recognize("\\+")
17
- --- 11,12 -----
18
- + at_state(22339000) {
19
- + for_characters("6", "7", "8", "9", "0", "1", "2", "3", "4", "5") { switch_to 22337320 }
20
- ***************
21
- *** 15,17
22
- - at_state(21817320) {
23
- - recognize("\\w+")
24
- - for_characters("k", "V", "K", "v", "L", "A", "a", "w", "l", "W", "M", "B", "X", "x", "m", "b", "y", "n", "c", "N", "Y", "C", "d", "Z", "O", "D", "z", "o", "E", "p", "e", "P", "Q", "F", "q", "f", "r", "g", "R", "G", "h", "S", "H", "s", "T", "I", "t", "i", "J", "u", "j", "U") { switch_to 21817320 }
25
- --- 15,16 -----
26
- + at_state(22342900) {
27
- + accept("==")
28
- ***************
29
- *** 20,21
30
- - at_state(21820580) {
31
- - recognize("!")
32
- --- 19,37 -----
33
- + at_state(22347760) {
34
- + accept("\\d*(\\.\\d+)?")
35
- + for_characters(")") { switch_to 22321370 }
36
- + for_characters("^") { switch_to 22291450 }
37
- + for_characters("+") { switch_to 22322410 }
38
- + for_characters("(") { switch_to 22319550 }
39
- + for_characters(" ") { switch_to 22289950 }
40
- + for_characters(">") { switch_to 22293250 }
41
- + for_characters("8", "9", "0", "1", "2", "3", "4", "5", "6", "7") { switch_to 22341260 }
42
- + for_characters("\n") { switch_to 22294340 }
43
- + for_characters(".") { switch_to 22339000 }
44
- + for_characters(",") { switch_to 22320520 }
45
- + for_characters("!") { switch_to 22325520 }
46
- + for_characters("*") { switch_to 22292410 }
47
- + for_characters("J", "o", "p", "K", "q", "L", "r", "M", "s", "N", "t", "O", "a", "u", "P", "b", "Q", "c", "v", "R", "d", "w", "S", "e", "x", "T", "f", "y", "A", "U", "g", "z", "B", "h", "C", "V", "i", "D", "W", "j", "E", "X", "F", "Y", "k", "G", "Z", "l", "H", "m", "I", "n") { switch_to 22317930 }
48
- + for_characters("/") { switch_to 22288930 }
49
- + for_characters("-") { switch_to 22326990 }
50
- + for_characters("=") { switch_to 22344860 }
51
- + for_characters("<") { switch_to 22324070 }
52
- ***************
53
- *** 24,25
54
- - at_state(21821040) {
55
- - recognize("\\^")
56
- --- 40,41 -----
57
- + at_state(22325520) {
58
- + accept("!")
59
- ***************
60
- *** 28,29
61
- - at_state(21822840) {
62
- - recognize(",")
63
- --- 44,46 -----
64
- + at_state(22317930) {
65
- + accept("\\w+")
66
- + for_characters("K", "V", "k", "v", "a", "A", "L", "W", "l", "w", "b", "B", "M", "X", "m", "x", "C", "N", "Y", "c", "n", "y", "D", "O", "Z", "d", "o", "z", "E", "P", "e", "p", "F", "Q", "f", "q", "G", "R", "g", "r", "H", "S", "h", "s", "I", "T", "i", "t", "j", "u", "J", "U") { switch_to 22317930 }
67
- ***************
68
- *** 32,33
69
- - at_state(21822110) {
70
- - recognize(">")
71
- --- 49,50 -----
72
- + at_state(22320520) {
73
- + accept(",")
74
- ***************
75
- *** 36,54
76
- - at_state(21824080) {
77
- - recognize("\\d*(\\.\\d+)?")
78
- - for_characters(".") { switch_to 21819770 }
79
- - for_characters("+") { switch_to 21821860 }
80
- - for_characters("/") { switch_to 21820370 }
81
- - for_characters("*") { switch_to 21823340 }
82
- - for_characters(",") { switch_to 21822840 }
83
- - for_characters("!") { switch_to 21820580 }
84
- - for_characters("=") { switch_to 21821620 }
85
- - for_characters(" ") { switch_to 21822330 }
86
- - for_characters("\n") { switch_to 21823100 }
87
- - for_characters(">") { switch_to 21822110 }
88
- - for_characters("(") { switch_to 21820790 }
89
- - for_characters("<") { switch_to 21823590 }
90
- - for_characters("J", "o", "p", "K", "q", "L", "r", "M", "s", "N", "t", "O", "a", "u", "P", "b", "Q", "c", "v", "R", "d", "w", "S", "e", "x", "T", "f", "y", "A", "U", "g", "z", "B", "h", "C", "V", "i", "D", "W", "j", "E", "X", "F", "Y", "k", "G", "Z", "l", "H", "m", "I", "n") { switch_to 21817320 }
91
- - for_characters(")") { switch_to 21817530 }
92
- - for_characters("-") { switch_to 21822580 }
93
- - for_characters("^") { switch_to 21821040 }
94
- - for_characters("8", "9", "0", "1", "2", "3", "4", "5", "6", "7") { switch_to 21820160 }
95
- --- 53,54 -----
96
- + at_state(22322410) {
97
- + accept("\\+")
98
- ***************
99
- *** 57,58
100
- - at_state(21817530) {
101
- - recognize("\\)")
102
- --- 57,59 -----
103
- + at_state(22344860) {
104
- + accept("=")
105
- + for_characters("=") { switch_to 22342900 }
106
- ***************
107
- *** 61,62
108
- - at_state(21822580) {
109
- - recognize("-")
110
- --- 62,63 -----
111
- + at_state(22324070) {
112
- + accept("<")
113
- ***************
114
- *** 65,66
115
- - at_state(21823340) {
116
- - recognize("\\*")
117
- --- 66,67 -----
118
- + at_state(22288930) {
119
- + accept("\\/")
120
- ***************
121
- *** 69,70
122
- - at_state(21820370) {
123
- - recognize("\\/")
124
- --- 70,71 -----
125
- + at_state(22289950) {
126
- + accept(" ")
127
- ***************
128
- *** 73,74
129
- - at_state(21823100) {
130
- - recognize("\n")
131
- --- 74,75 -----
132
- + at_state(22291450) {
133
- + accept("\\^")
134
- ***************
135
- *** 77,80
136
- - at_state(21820160) {
137
- - recognize("\\d*(\\.\\d+)?")
138
- - for_characters(".") { switch_to 21819770 }
139
- - for_characters("6", "7", "8", "9", "0", "1", "2", "3", "4", "5") { switch_to 21820160 }
140
- --- 78,79 -----
141
- + at_state(22292410) {
142
- + accept("\\*")
143
- ***************
144
- *** 83,84
145
- - at_state(21820790) {
146
- - recognize("\\(")
147
- --- 82,83 -----
148
- + at_state(22294340) {
149
- + accept("\n")
150
- ***************
151
- *** 87,88
152
- - at_state(21821310) {
153
- - recognize("==")
154
- --- 86,88 -----
155
- + at_state(22337320) {
156
- + accept("\\d*(\\.\\d+)?")
157
- + for_characters("6", "7", "8", "9", "0", "1", "2", "3", "4", "5") { switch_to 22337320 }
158
- ***************
159
- *** 91,92
160
- - at_state(21822330) {
161
- - recognize(" ")
162
- --- 91,94 -----
163
- + at_state(22341260) {
164
- + accept("\\d*(\\.\\d+)?")
165
- + for_characters("6", "7", "8", "9", "0", "1", "2", "3", "4", "5") { switch_to 22341260 }
166
- + for_characters(".") { switch_to 22339000 }
167
- ***************
168
- *** 95,96
169
- - at_state(21823590) {
170
- - recognize("<")
171
- --- 97,98 -----
172
- + at_state(22293250) {
173
- + accept(">")
174
- ***************
175
- *** 99,101
176
- - at_state(21819470) {
177
- - recognize("\\d*(\\.\\d+)?")
178
- - for_characters("6", "7", "8", "9", "0", "1", "2", "3", "4", "5") { switch_to 21819470 }
179
- --- 101,102 -----
180
- + at_state(22319550) {
181
- + accept("\\(")
182
- ***************
183
- *** 104,106
184
- - at_state(21821620) {
185
- - recognize("=")
186
- - for_characters("=") { switch_to 21821310 }
187
- --- 105,106 -----
188
- + at_state(22326990) {
189
- + accept("-")
@@ -1,1623 +0,0 @@
1
- ***************
2
- *** 7,18
3
- - at_state(76) {
4
- - for_symbols("return") { shift_to 66 }
5
- - for_symbols("newline") { shift_to 2 }
6
- - for_symbols("function_body") { shift_to 77 }
7
- - for_symbols("word_literal") { shift_to 40 }
8
- - for_symbols("var_name") { shift_to 63 }
9
- - for_symbols("print") { shift_to 18 }
10
- - for_symbols("function_name") { shift_to 59 }
11
- - for_symbols("simple_statement") { shift_to 17 }
12
- - for_symbols("while") { shift_to 56 }
13
- - for_symbols("function_body_statement") { shift_to 16 }
14
- - for_symbols("if") { shift_to 53 }
15
- --- 7,9 -----
16
- + at_state(94) {
17
- + for_symbols("terms") { shift_to 95 }
18
- + for_symbols("newline") { shift_to 37 }
19
- ***************
20
- *** 21,29
21
- - at_state(27) {
22
- - for_symbols("var_name") { shift_to 48 }
23
- - for_symbols("numeric_literal") { shift_to 19 }
24
- - for_symbols("!") { shift_to 49 }
25
- - for_symbols("word_literal") { shift_to 40 }
26
- - for_symbols("function_name") { shift_to 43 }
27
- - for_symbols("-") { shift_to 41 }
28
- - for_symbols("(") { shift_to 37 }
29
- - for_symbols("expression") { shift_to 28 }
30
- --- 12,22 -----
31
- + at_state(46) {
32
- + for_symbols("(") { shift_to 29 }
33
- + for_symbols("function_name") { shift_to 5 }
34
- + for_symbols("-") { shift_to 32 }
35
- + for_symbols("!") { shift_to 4 }
36
- + for_symbols("numeric_literal") { shift_to 11 }
37
- + for_symbols("word_literal") { shift_to 2 }
38
- + for_symbols("expression") { shift_to 34 }
39
- + for_symbols("arg_list") { shift_to 47 }
40
- + for_symbols(",", ")") { reduce_with "no_args" }
41
- + for_symbols("var_name") { shift_to 7 }
42
- ***************
43
- *** 32,40
44
- - at_state(21) {
45
- - for_symbols("var_name") { shift_to 48 }
46
- - for_symbols("expression") { shift_to 22 }
47
- - for_symbols("numeric_literal") { shift_to 19 }
48
- - for_symbols("!") { shift_to 49 }
49
- - for_symbols("word_literal") { shift_to 40 }
50
- - for_symbols("function_name") { shift_to 43 }
51
- - for_symbols("-") { shift_to 41 }
52
- - for_symbols("(") { shift_to 37 }
53
- --- 25,29 -----
54
- + at_state(0) {
55
- + for_symbols("opt_terms") { shift_to 1 }
56
- + for_symbols("newline") { shift_to 37 }
57
- + for_symbols("word_literal", "def", "print", "if", "while") { reduce_with "no_terms" }
58
- + for_symbols("terms") { shift_to 105 }
59
- ***************
60
- *** 43,44
61
- - at_state(104) {
62
- - for_symbols("_End_", "newline") { reduce_with "main_body_if_else_statement" }
63
- --- 32,40 -----
64
- + at_state(25) {
65
- + for_symbols("(") { shift_to 29 }
66
- + for_symbols("expression") { shift_to 26 }
67
- + for_symbols("function_name") { shift_to 5 }
68
- + for_symbols("-") { shift_to 32 }
69
- + for_symbols("!") { shift_to 4 }
70
- + for_symbols("numeric_literal") { shift_to 11 }
71
- + for_symbols("word_literal") { shift_to 2 }
72
- + for_symbols("var_name") { shift_to 7 }
73
- ***************
74
- *** 47,48
75
- - at_state(91) {
76
- - for_symbols("_End_", "newline") { reduce_with "main_body_if_statement" }
77
- --- 43,51 -----
78
- + at_state(3) {
79
- + for_symbols("(") { shift_to 29 }
80
- + for_symbols("function_name") { shift_to 5 }
81
- + for_symbols("expression") { shift_to 36 }
82
- + for_symbols("-") { shift_to 32 }
83
- + for_symbols("!") { shift_to 4 }
84
- + for_symbols("numeric_literal") { shift_to 11 }
85
- + for_symbols("word_literal") { shift_to 2 }
86
- + for_symbols("var_name") { shift_to 7 }
87
- ***************
88
- *** 51,63
89
- - at_state(90) {
90
- - for_symbols("main_body_statement") { shift_to 98 }
91
- - for_symbols("newline") { shift_to 2 }
92
- - for_symbols("def") { shift_to 5 }
93
- - for_symbols("else") { shift_to 100 }
94
- - for_symbols("word_literal") { shift_to 40 }
95
- - for_symbols("var_name") { shift_to 63 }
96
- - for_symbols("end") { shift_to 91 }
97
- - for_symbols("print") { shift_to 18 }
98
- - for_symbols("while") { shift_to 92 }
99
- - for_symbols("function_name") { shift_to 59 }
100
- - for_symbols("if") { shift_to 86 }
101
- - for_symbols("simple_statement") { shift_to 83 }
102
- --- 54,60 -----
103
- + at_state(22) {
104
- + for_symbols("*") { shift_to 15 }
105
- + for_symbols("^") { shift_to 27 }
106
- + for_symbols("/") { shift_to 23 }
107
- + for_symbols("+") { shift_to 19 }
108
- + for_symbols("==", ",", "_End_", "newline", ")") { reduce_with "less_than_comparison" }
109
- + for_symbols("-") { shift_to 25 }
110
- ***************
111
- *** 66,77
112
- - at_state(55) {
113
- - for_symbols("return") { shift_to 66 }
114
- - for_symbols("newline") { shift_to 2 }
115
- - for_symbols("function_body") { shift_to 72 }
116
- - for_symbols("word_literal") { shift_to 40 }
117
- - for_symbols("var_name") { shift_to 63 }
118
- - for_symbols("print") { shift_to 18 }
119
- - for_symbols("function_name") { shift_to 59 }
120
- - for_symbols("simple_statement") { shift_to 17 }
121
- - for_symbols("while") { shift_to 56 }
122
- - for_symbols("function_body_statement") { shift_to 16 }
123
- - for_symbols("if") { shift_to 53 }
124
- --- 63,65 -----
125
- + at_state(42) {
126
- + for_symbols("terms") { shift_to 43 }
127
- + for_symbols("newline") { shift_to 37 }
128
- ***************
129
- *** 80,89
130
- - at_state(20) {
131
- - for_symbols("<") { shift_to 23 }
132
- - for_symbols("*") { shift_to 33 }
133
- - for_symbols("+") { shift_to 21 }
134
- - for_symbols(">") { shift_to 31 }
135
- - for_symbols("^") { shift_to 27 }
136
- - for_symbols("-") { shift_to 29 }
137
- - for_symbols("_End_", "newline") { reduce_with "print_statement" }
138
- - for_symbols("/") { shift_to 25 }
139
- - for_symbols("==") { shift_to 35 }
140
- --- 68,69 -----
141
- + at_state(84) {
142
- + for_symbols("newline") { reduce_with "function_body_if_else_statement" }
143
- ***************
144
- *** 92,94
145
- - at_state(14) {
146
- - for_symbols("terms") { shift_to 15 }
147
- - for_symbols("newline") { shift_to 3 }
148
- --- 72,73 -----
149
- + at_state(73) {
150
- + for_symbols("newline") { reduce_with "function_body_simple_statement" }
151
- ***************
152
- *** 97,108
153
- - at_state(85) {
154
- - for_symbols("main_body_statement") { shift_to 98 }
155
- - for_symbols("newline") { shift_to 2 }
156
- - for_symbols("def") { shift_to 5 }
157
- - for_symbols("_End_") { reduce_with "some_terms" }
158
- - for_symbols("word_literal") { shift_to 40 }
159
- - for_symbols("var_name") { shift_to 63 }
160
- - for_symbols("print") { shift_to 18 }
161
- - for_symbols("while") { shift_to 92 }
162
- - for_symbols("function_name") { shift_to 59 }
163
- - for_symbols("if") { shift_to 86 }
164
- - for_symbols("simple_statement") { shift_to 83 }
165
- --- 76,78 -----
166
- + at_state(66) {
167
- + for_symbols("terms") { shift_to 67 }
168
- + for_symbols("newline") { shift_to 37 }
169
- ***************
170
- *** 111,113
171
- - at_state(72) {
172
- - for_symbols("terms") { shift_to 73 }
173
- - for_symbols("newline") { shift_to 3 }
174
- --- 81,82 -----
175
- + at_state(37) {
176
- + for_symbols("word_literal", "def", "end", "print", "else", "if", "_End_", "newline", "return", "while") { reduce_with "single_term" }
177
- ***************
178
- *** 116,127
179
- - at_state(69) {
180
- - for_symbols("return") { shift_to 66 }
181
- - for_symbols("newline") { shift_to 2 }
182
- - for_symbols("end") { shift_to 71 }
183
- - for_symbols("word_literal") { shift_to 40 }
184
- - for_symbols("function_body_statement") { shift_to 70 }
185
- - for_symbols("var_name") { shift_to 63 }
186
- - for_symbols("print") { shift_to 18 }
187
- - for_symbols("function_name") { shift_to 59 }
188
- - for_symbols("simple_statement") { shift_to 17 }
189
- - for_symbols("while") { shift_to 56 }
190
- - for_symbols("if") { shift_to 53 }
191
- --- 85,93 -----
192
- + at_state(19) {
193
- + for_symbols("(") { shift_to 29 }
194
- + for_symbols("function_name") { shift_to 5 }
195
- + for_symbols("-") { shift_to 32 }
196
- + for_symbols("!") { shift_to 4 }
197
- + for_symbols("numeric_literal") { shift_to 11 }
198
- + for_symbols("word_literal") { shift_to 2 }
199
- + for_symbols("expression") { shift_to 20 }
200
- + for_symbols("var_name") { shift_to 7 }
201
- ***************
202
- *** 130,132
203
- - at_state(68) {
204
- - for_symbols("terms") { shift_to 69 }
205
- - for_symbols("newline") { shift_to 3 }
206
- --- 96,106 -----
207
- + at_state(36) {
208
- + for_symbols("*") { shift_to 15 }
209
- + for_symbols("^") { shift_to 27 }
210
- + for_symbols(">") { shift_to 13 }
211
- + for_symbols("/") { shift_to 23 }
212
- + for_symbols("<") { shift_to 21 }
213
- + for_symbols("newline") { shift_to 37 }
214
- + for_symbols("terms") { shift_to 38 }
215
- + for_symbols("+") { shift_to 19 }
216
- + for_symbols("==") { shift_to 17 }
217
- + for_symbols("-") { shift_to 25 }
218
- ***************
219
- *** 135,143
220
- - at_state(41) {
221
- - for_symbols("var_name") { shift_to 48 }
222
- - for_symbols("numeric_literal") { shift_to 19 }
223
- - for_symbols("!") { shift_to 49 }
224
- - for_symbols("expression") { shift_to 42 }
225
- - for_symbols("word_literal") { shift_to 40 }
226
- - for_symbols("function_name") { shift_to 43 }
227
- - for_symbols("-") { shift_to 41 }
228
- - for_symbols("(") { shift_to 37 }
229
- --- 109,119 -----
230
- + at_state(64) {
231
- + for_symbols("*") { shift_to 15 }
232
- + for_symbols("^") { shift_to 27 }
233
- + for_symbols(">") { shift_to 13 }
234
- + for_symbols("/") { shift_to 23 }
235
- + for_symbols("<") { shift_to 21 }
236
- + for_symbols("newline") { shift_to 37 }
237
- + for_symbols("+") { shift_to 19 }
238
- + for_symbols("terms") { shift_to 65 }
239
- + for_symbols("==") { shift_to 17 }
240
- + for_symbols("-") { shift_to 25 }
241
- ***************
242
- *** 146,147
243
- - at_state(16) {
244
- - for_symbols("newline") { reduce_with "single_function_body_statement" }
245
- --- 122,124 -----
246
- + at_state(47) {
247
- + for_symbols(",") { shift_to 10 }
248
- + for_symbols(")") { shift_to 48 }
249
- ***************
250
- *** 150,151
251
- - at_state(2) {
252
- - for_symbols("word_literal", "end", "def", "print", "else", "if", "_End_", "return", "newline", "while") { reduce_with "multiple_terms" }
253
- --- 127,135 -----
254
- + at_state(60) {
255
- + for_symbols("(") { shift_to 29 }
256
- + for_symbols("function_name") { shift_to 5 }
257
- + for_symbols("-") { shift_to 32 }
258
- + for_symbols("!") { shift_to 4 }
259
- + for_symbols("numeric_literal") { shift_to 11 }
260
- + for_symbols("word_literal") { shift_to 2 }
261
- + for_symbols("expression") { shift_to 61 }
262
- + for_symbols("var_name") { shift_to 7 }
263
- ***************
264
- *** 154,165
265
- - at_state(94) {
266
- - for_symbols("newline") { shift_to 2 }
267
- - for_symbols("main_body_statement") { shift_to 99 }
268
- - for_symbols("def") { shift_to 5 }
269
- - for_symbols("main_body") { shift_to 95 }
270
- - for_symbols("word_literal") { shift_to 40 }
271
- - for_symbols("var_name") { shift_to 63 }
272
- - for_symbols("print") { shift_to 18 }
273
- - for_symbols("while") { shift_to 92 }
274
- - for_symbols("function_name") { shift_to 59 }
275
- - for_symbols("if") { shift_to 86 }
276
- - for_symbols("simple_statement") { shift_to 83 }
277
- --- 138,142 -----
278
- + at_state(20) {
279
- + for_symbols("*") { shift_to 15 }
280
- + for_symbols("^") { shift_to 27 }
281
- + for_symbols("/") { shift_to 23 }
282
- + for_symbols("+", "==", ",", "-", "<", "_End_", ">", "newline", ")") { reduce_with "addition" }
283
- ***************
284
- *** 168,169
285
- - at_state(83) {
286
- - for_symbols("_End_", "newline") { reduce_with "main_body_simple_statement" }
287
- --- 145,146 -----
288
- + at_state(90) {
289
- + for_symbols(",", ")") { reduce_with "single_arg_declaration" }
290
- ***************
291
- *** 172,176
292
- - at_state(30) {
293
- - for_symbols("*") { shift_to 33 }
294
- - for_symbols("^") { shift_to 27 }
295
- - for_symbols("==", "+", ",", "-", "<", "_End_", ">", "newline", ")") { reduce_with "subtraction" }
296
- - for_symbols("/") { shift_to 25 }
297
- --- 149,151 -----
298
- + at_state(77) {
299
- + for_symbols("newline") { shift_to 37 }
300
- + for_symbols("terms") { shift_to 78 }
301
- ***************
302
- *** 179,188
303
- - at_state(47) {
304
- - for_symbols("<") { shift_to 23 }
305
- - for_symbols("*") { shift_to 33 }
306
- - for_symbols("+") { shift_to 21 }
307
- - for_symbols(">") { shift_to 31 }
308
- - for_symbols("^") { shift_to 27 }
309
- - for_symbols("-") { shift_to 29 }
310
- - for_symbols("/") { shift_to 25 }
311
- - for_symbols(",", ")") { reduce_with "multiple_args" }
312
- - for_symbols("==") { shift_to 35 }
313
- --- 154,155 -----
314
- + at_state(68) {
315
- + for_symbols("newline") { reduce_with "function_body_while_statement" }
316
- ***************
317
- *** 191,192
318
- - at_state(7) {
319
- - for_symbols("(") { shift_to 8 }
320
- --- 158,162 -----
321
- + at_state(26) {
322
- + for_symbols("*") { shift_to 15 }
323
- + for_symbols("^") { shift_to 27 }
324
- + for_symbols("/") { shift_to 23 }
325
- + for_symbols("+", "==", ",", "-", "<", "_End_", ">", "newline", ")") { reduce_with "subtraction" }
326
- ***************
327
- *** 195,196
328
- - at_state(43) {
329
- - for_symbols("(") { shift_to 44 }
330
- --- 165,174 -----
331
- + at_state(30) {
332
- + for_symbols("*") { shift_to 15 }
333
- + for_symbols("^") { shift_to 27 }
334
- + for_symbols(">") { shift_to 13 }
335
- + for_symbols("/") { shift_to 23 }
336
- + for_symbols(")") { shift_to 31 }
337
- + for_symbols("<") { shift_to 21 }
338
- + for_symbols("+") { shift_to 19 }
339
- + for_symbols("==") { shift_to 17 }
340
- + for_symbols("-") { shift_to 25 }
341
- ***************
342
- *** 199,200
343
- - at_state(50) {
344
- - for_symbols("==", "+", ",", "-", "/", "<", "_End_", ">", "^", "newline", ")", "*") { reduce_with "negation" }
345
- --- 177,178 -----
346
- + at_state(5) {
347
- + for_symbols("(") { shift_to 6 }
348
- ***************
349
- *** 203,205
350
- - at_state(61) {
351
- - for_symbols(")") { shift_to 62 }
352
- - for_symbols(",") { shift_to 46 }
353
- --- 181,182 -----
354
- + at_state(54) {
355
- + for_symbols("(") { shift_to 55 }
356
- ***************
357
- *** 208,210
358
- - at_state(34) {
359
- - for_symbols("^") { shift_to 27 }
360
- - for_symbols("==", "+", ",", "-", "/", "<", "_End_", ">", "newline", ")", "*") { reduce_with "multiplication" }
361
- --- 185,186 -----
362
- + at_state(45) {
363
- + for_symbols("(") { shift_to 46 }
364
- ***************
365
- *** 414,422
366
- - at_state(92) {
367
- - for_symbols("var_name") { shift_to 48 }
368
- - for_symbols("numeric_literal") { shift_to 19 }
369
- - for_symbols("!") { shift_to 49 }
370
- - for_symbols("expression") { shift_to 93 }
371
- - for_symbols("word_literal") { shift_to 40 }
372
- - for_symbols("function_name") { shift_to 43 }
373
- - for_symbols("-") { shift_to 41 }
374
- - for_symbols("(") { shift_to 37 }
375
- --- 399,407 -----
376
- + at_state(50) {
377
- + for_symbols("(") { shift_to 29 }
378
- + for_symbols("function_name") { shift_to 5 }
379
- + for_symbols("-") { shift_to 32 }
380
- + for_symbols("!") { shift_to 4 }
381
- + for_symbols("numeric_literal") { shift_to 11 }
382
- + for_symbols("word_literal") { shift_to 2 }
383
- + for_symbols("expression") { shift_to 51 }
384
- + for_symbols("var_name") { shift_to 7 }
385
- ***************
386
- *** 425,426
387
- - at_state(79) {
388
- - for_symbols("newline") { reduce_with "function_body_if_else_statement" }
389
- --- 410,411 -----
390
- + at_state(31) {
391
- + for_symbols("+", "==", ",", "-", "/", "<", "_End_", "^", ">", "newline", ")", "*") { reduce_with "parenthetized_expression" }
392
- ***************
393
- *** 429,437
394
- - at_state(36) {
395
- - for_symbols("<") { shift_to 23 }
396
- - for_symbols("*") { shift_to 33 }
397
- - for_symbols("+") { shift_to 21 }
398
- - for_symbols(">") { shift_to 31 }
399
- - for_symbols("^") { shift_to 27 }
400
- - for_symbols("-") { shift_to 29 }
401
- - for_symbols(",", "_End_", "newline", ")") { reduce_with "equality_comparison" }
402
- - for_symbols("/") { shift_to 25 }
403
- --- 414,422 -----
404
- + at_state(4) {
405
- + for_symbols("(") { shift_to 29 }
406
- + for_symbols("expression") { shift_to 35 }
407
- + for_symbols("function_name") { shift_to 5 }
408
- + for_symbols("-") { shift_to 32 }
409
- + for_symbols("!") { shift_to 4 }
410
- + for_symbols("numeric_literal") { shift_to 11 }
411
- + for_symbols("word_literal") { shift_to 2 }
412
- + for_symbols("var_name") { shift_to 7 }
413
- ***************
414
- *** 440,448
415
- - at_state(64) {
416
- - for_symbols("var_name") { shift_to 48 }
417
- - for_symbols("expression") { shift_to 65 }
418
- - for_symbols("numeric_literal") { shift_to 19 }
419
- - for_symbols("!") { shift_to 49 }
420
- - for_symbols("word_literal") { shift_to 40 }
421
- - for_symbols("function_name") { shift_to 43 }
422
- - for_symbols("-") { shift_to 41 }
423
- - for_symbols("(") { shift_to 37 }
424
- --- 425,433 -----
425
- + at_state(10) {
426
- + for_symbols("(") { shift_to 29 }
427
- + for_symbols("function_name") { shift_to 5 }
428
- + for_symbols("-") { shift_to 32 }
429
- + for_symbols("!") { shift_to 4 }
430
- + for_symbols("numeric_literal") { shift_to 11 }
431
- + for_symbols("word_literal") { shift_to 2 }
432
- + for_symbols("expression") { shift_to 12 }
433
- + for_symbols("var_name") { shift_to 7 }
434
- ***************
435
- *** 451,462
436
- - at_state(103) {
437
- - for_symbols("main_body_statement") { shift_to 98 }
438
- - for_symbols("newline") { shift_to 2 }
439
- - for_symbols("def") { shift_to 5 }
440
- - for_symbols("end") { shift_to 104 }
441
- - for_symbols("word_literal") { shift_to 40 }
442
- - for_symbols("var_name") { shift_to 63 }
443
- - for_symbols("print") { shift_to 18 }
444
- - for_symbols("while") { shift_to 92 }
445
- - for_symbols("function_name") { shift_to 59 }
446
- - for_symbols("if") { shift_to 86 }
447
- - for_symbols("simple_statement") { shift_to 83 }
448
- --- 436,445 -----
449
- + at_state(70) {
450
- + for_symbols("*") { shift_to 15 }
451
- + for_symbols("^") { shift_to 27 }
452
- + for_symbols(">") { shift_to 13 }
453
- + for_symbols("/") { shift_to 23 }
454
- + for_symbols("<") { shift_to 21 }
455
- + for_symbols("newline") { reduce_with "return_statement" }
456
- + for_symbols("+") { shift_to 19 }
457
- + for_symbols("==") { shift_to 17 }
458
- + for_symbols("-") { shift_to 25 }
459
- ***************
460
- *** 465,467
461
- - at_state(8) {
462
- - for_symbols("word_literal") { shift_to 10 }
463
- - for_symbols("arg_decl") { shift_to 9 }
464
- --- 448,451 -----
465
- + at_state(55) {
466
- + for_symbols("arg_declarations") { shift_to 57 }
467
- + for_symbols("arg_decl") { shift_to 90 }
468
- + for_symbols("word_literal") { shift_to 56 }
469
- ***************
470
- *** 469
471
- - for_symbols("arg_declarations") { shift_to 11 }
472
- --- 0 -----
473
- ***************
474
- *** 472,482
475
- - at_state(44) {
476
- - for_symbols("arg_list") { shift_to 45 }
477
- - for_symbols("var_name") { shift_to 48 }
478
- - for_symbols("numeric_literal") { shift_to 19 }
479
- - for_symbols("!") { shift_to 49 }
480
- - for_symbols("word_literal") { shift_to 40 }
481
- - for_symbols("function_name") { shift_to 43 }
482
- - for_symbols("-") { shift_to 41 }
483
- - for_symbols("(") { shift_to 37 }
484
- - for_symbols("expression") { shift_to 52 }
485
- - for_symbols(",", ")") { reduce_with "no_args" }
486
- --- 455,456 -----
487
- + at_state(56) {
488
- + for_symbols(",", ")") { reduce_with "arg_declaration" }
489
- ***************
490
- *** 485,486
491
- - at_state(59) {
492
- - for_symbols("(") { shift_to 60 }
493
- --- 459,470 -----
494
- + at_state(100) {
495
- + for_symbols("var_name") { shift_to 49 }
496
- + for_symbols("function_name") { shift_to 45 }
497
- + for_symbols("while") { shift_to 39 }
498
- + for_symbols("main_body_statement") { shift_to 91 }
499
- + for_symbols("word_literal") { shift_to 2 }
500
- + for_symbols("newline") { shift_to 72 }
501
- + for_symbols("print") { shift_to 74 }
502
- + for_symbols("end") { shift_to 101 }
503
- + for_symbols("if") { shift_to 3 }
504
- + for_symbols("simple_statement") { shift_to 92 }
505
- + for_symbols("def") { shift_to 52 }
506
- ***************
507
- *** 489,490
508
- - at_state(19) {
509
- - for_symbols("==", "+", ",", "-", "/", "<", "_End_", ">", "^", "newline", ")", "*") { reduce_with "literal" }
510
- --- 473,474 -----
511
- + at_state(87) {
512
- + for_symbols("_End_", "newline") { reduce_with "function_definition" }
513
- ***************
514
- *** 493,503
515
- - at_state(93) {
516
- - for_symbols("<") { shift_to 23 }
517
- - for_symbols("*") { shift_to 33 }
518
- - for_symbols("+") { shift_to 21 }
519
- - for_symbols(">") { shift_to 31 }
520
- - for_symbols("^") { shift_to 27 }
521
- - for_symbols("terms") { shift_to 94 }
522
- - for_symbols("-") { shift_to 29 }
523
- - for_symbols("newline") { shift_to 3 }
524
- - for_symbols("/") { shift_to 25 }
525
- - for_symbols("==") { shift_to 35 }
526
- --- 477,479 -----
527
- + at_state(85) {
528
- + for_symbols("terms") { shift_to 86 }
529
- + for_symbols("newline") { shift_to 37 }
530
- ***************
531
- *** 506,507
532
- - at_state(70) {
533
- - for_symbols("newline") { reduce_with "multiple_function_body_statements" }
534
- --- 482,483 -----
535
- + at_state(79) {
536
- + for_symbols("newline") { reduce_with "function_body_if_statement" }
537
- ***************
538
- *** 510,512
539
- - at_state(1) {
540
- - for_symbols("newline") { shift_to 2 }
541
- - for_symbols("word_literal", "def", "print", "if", "while") { reduce_with "some_terms" }
542
- --- 486,487 -----
543
- + at_state(103) {
544
- + for_symbols("_End_") { reduce_with "program" }
545
- ***************
546
- *** 515,525
547
- - at_state(4) {
548
- - for_symbols("main_body_statement") { shift_to 99 }
549
- - for_symbols("def") { shift_to 5 }
550
- - for_symbols("main_body") { shift_to 84 }
551
- - for_symbols("word_literal") { shift_to 40 }
552
- - for_symbols("var_name") { shift_to 63 }
553
- - for_symbols("print") { shift_to 18 }
554
- - for_symbols("while") { shift_to 92 }
555
- - for_symbols("function_name") { shift_to 59 }
556
- - for_symbols("if") { shift_to 86 }
557
- - for_symbols("simple_statement") { shift_to 83 }
558
- --- 490,491 -----
559
- + at_state(7) {
560
- + for_symbols("+", "==", ",", "-", "/", "<", "_End_", "^", ">", "newline", ")", "*") { reduce_with "variable_reference" }
561
- ***************
562
- *** 528,536
563
- - at_state(37) {
564
- - for_symbols("var_name") { shift_to 48 }
565
- - for_symbols("numeric_literal") { shift_to 19 }
566
- - for_symbols("!") { shift_to 49 }
567
- - for_symbols("word_literal") { shift_to 40 }
568
- - for_symbols("function_name") { shift_to 43 }
569
- - for_symbols("expression") { shift_to 38 }
570
- - for_symbols("-") { shift_to 41 }
571
- - for_symbols("(") { shift_to 37 }
572
- --- 494,502 -----
573
- + at_state(18) {
574
- + for_symbols("*") { shift_to 15 }
575
- + for_symbols("^") { shift_to 27 }
576
- + for_symbols(">") { shift_to 13 }
577
- + for_symbols("/") { shift_to 23 }
578
- + for_symbols(",", "_End_", "newline", ")") { reduce_with "equality_comparison" }
579
- + for_symbols("<") { shift_to 21 }
580
- + for_symbols("+") { shift_to 19 }
581
- + for_symbols("-") { shift_to 25 }
582
- ***************
583
- *** 539,540
584
- - at_state(9) {
585
- - for_symbols(",", ")") { reduce_with "single_arg_declaration" }
586
- --- 505,507 -----
587
- + at_state(88) {
588
- + for_symbols("word_literal") { shift_to 56 }
589
- + for_symbols("arg_decl") { shift_to 89 }
590
- ***************
591
- *** 543,554
592
- - at_state(58) {
593
- - for_symbols("return") { shift_to 66 }
594
- - for_symbols("newline") { shift_to 2 }
595
- - for_symbols("word_literal") { shift_to 40 }
596
- - for_symbols("var_name") { shift_to 63 }
597
- - for_symbols("print") { shift_to 18 }
598
- - for_symbols("function_name") { shift_to 59 }
599
- - for_symbols("simple_statement") { shift_to 17 }
600
- - for_symbols("while") { shift_to 56 }
601
- - for_symbols("function_body_statement") { shift_to 16 }
602
- - for_symbols("function_body") { shift_to 68 }
603
- - for_symbols("if") { shift_to 53 }
604
- --- 510,522 -----
605
- + at_state(78) {
606
- + for_symbols("var_name") { shift_to 49 }
607
- + for_symbols("function_name") { shift_to 45 }
608
- + for_symbols("if") { shift_to 60 }
609
- + for_symbols("function_body_statement") { shift_to 71 }
610
- + for_symbols("end") { shift_to 79 }
611
- + for_symbols("word_literal") { shift_to 2 }
612
- + for_symbols("return") { shift_to 69 }
613
- + for_symbols("newline") { shift_to 72 }
614
- + for_symbols("simple_statement") { shift_to 73 }
615
- + for_symbols("else") { shift_to 80 }
616
- + for_symbols("print") { shift_to 74 }
617
- + for_symbols("while") { shift_to 63 }
618
- ***************
619
- *** 557,565
620
- - at_state(66) {
621
- - for_symbols("var_name") { shift_to 48 }
622
- - for_symbols("expression") { shift_to 67 }
623
- - for_symbols("numeric_literal") { shift_to 19 }
624
- - for_symbols("!") { shift_to 49 }
625
- - for_symbols("word_literal") { shift_to 40 }
626
- - for_symbols("function_name") { shift_to 43 }
627
- - for_symbols("-") { shift_to 41 }
628
- - for_symbols("(") { shift_to 37 }
629
- --- 525,527 -----
630
- + at_state(33) {
631
- + for_symbols("^") { shift_to 27 }
632
- + for_symbols("+", "==", ",", "-", "/", "<", "_End_", ">", "newline", ")", "*") { reduce_with "negated_expression" }
633
- ***************
634
- *** 568,576
635
- - at_state(29) {
636
- - for_symbols("var_name") { shift_to 48 }
637
- - for_symbols("expression") { shift_to 30 }
638
- - for_symbols("numeric_literal") { shift_to 19 }
639
- - for_symbols("!") { shift_to 49 }
640
- - for_symbols("word_literal") { shift_to 40 }
641
- - for_symbols("function_name") { shift_to 43 }
642
- - for_symbols("-") { shift_to 41 }
643
- - for_symbols("(") { shift_to 37 }
644
- --- 530,538 -----
645
- + at_state(13) {
646
- + for_symbols("(") { shift_to 29 }
647
- + for_symbols("function_name") { shift_to 5 }
648
- + for_symbols("-") { shift_to 32 }
649
- + for_symbols("!") { shift_to 4 }
650
- + for_symbols("numeric_literal") { shift_to 11 }
651
- + for_symbols("expression") { shift_to 14 }
652
- + for_symbols("word_literal") { shift_to 2 }
653
- + for_symbols("var_name") { shift_to 7 }
654
- ***************
655
- *** 579,589
656
- - at_state(60) {
657
- - for_symbols("var_name") { shift_to 48 }
658
- - for_symbols("numeric_literal") { shift_to 19 }
659
- - for_symbols("arg_list") { shift_to 61 }
660
- - for_symbols("!") { shift_to 49 }
661
- - for_symbols("word_literal") { shift_to 40 }
662
- - for_symbols("function_name") { shift_to 43 }
663
- - for_symbols("-") { shift_to 41 }
664
- - for_symbols("(") { shift_to 37 }
665
- - for_symbols("expression") { shift_to 52 }
666
- - for_symbols(",", ")") { reduce_with "no_args" }
667
- --- 541,543 -----
668
- + at_state(2) {
669
- + for_symbols("+", "==", ",", "-", "/", "<", "=", "_End_", "^", ">", "newline", ")", "*") { reduce_with "variable_name" }
670
- + for_symbols("(") { reduce_with "function_name" }
671
- ***************
672
- *** 592,595
673
- - at_state(24) {
674
- - for_symbols("*") { shift_to 33 }
675
- - for_symbols("+") { shift_to 21 }
676
- - for_symbols("==", ",", "_End_", "newline", ")") { reduce_with "less_than_comparison" }
677
- --- 546,547 -----
678
- + at_state(14) {
679
- + for_symbols("*") { shift_to 15 }
680
- ***************
681
- *** 597,598
682
- - for_symbols("-") { shift_to 29 }
683
- - for_symbols("/") { shift_to 25 }
684
- --- 549,552 -----
685
- + for_symbols("/") { shift_to 23 }
686
- + for_symbols("+") { shift_to 19 }
687
- + for_symbols("==", ",", "_End_", "newline", ")") { reduce_with "greater_than_comparison" }
688
- + for_symbols("-") { shift_to 25 }
689
- ***************
690
- *** 601,609
691
- - at_state(53) {
692
- - for_symbols("var_name") { shift_to 48 }
693
- - for_symbols("numeric_literal") { shift_to 19 }
694
- - for_symbols("!") { shift_to 49 }
695
- - for_symbols("word_literal") { shift_to 40 }
696
- - for_symbols("function_name") { shift_to 43 }
697
- - for_symbols("expression") { shift_to 54 }
698
- - for_symbols("-") { shift_to 41 }
699
- - for_symbols("(") { shift_to 37 }
700
- --- 555,557 -----
701
- + at_state(57) {
702
- + for_symbols(",") { shift_to 88 }
703
- + for_symbols(")") { shift_to 58 }
704
- ***************
705
- *** 612,616
706
- - at_state(0) {
707
- - for_symbols("word_literal", "def", "print", "if", "while") { reduce_with "no_terms" }
708
- - for_symbols("opt_terms") { shift_to 4 }
709
- - for_symbols("terms") { shift_to 1 }
710
- - for_symbols("newline") { shift_to 3 }
711
- --- 560,575 -----
712
- + at_state(98) {
713
- + for_symbols("var_name") { shift_to 49 }
714
- + for_symbols("function_name") { shift_to 45 }
715
- + for_symbols("while") { shift_to 39 }
716
- + for_symbols("word_literal") { shift_to 2 }
717
- + for_symbols("newline") { shift_to 72 }
718
- + for_symbols("main_body") { shift_to 99 }
719
- + for_symbols("print") { shift_to 74 }
720
- + for_symbols("if") { shift_to 3 }
721
- + for_symbols("main_body_statement") { shift_to 93 }
722
- + for_symbols("simple_statement") { shift_to 92 }
723
- + for_symbols("def") { shift_to 52 }
724
- + }
725
- +
726
- + at_state(35) {
727
- + for_symbols("+", "==", ",", "-", "/", "<", "_End_", "^", ">", "newline", ")", "*") { reduce_with "negation" }
728
- ***************
729
- *** 620
730
- - for_symbols("(") { reduce_with "function_name" }
731
- --- 579,588 -----
732
- + for_symbols("(") { shift_to 29 }
733
- + for_symbols("function_name") { shift_to 5 }
734
- + for_symbols("-") { shift_to 32 }
735
- + for_symbols("!") { shift_to 4 }
736
- + for_symbols("numeric_literal") { shift_to 11 }
737
- + for_symbols("word_literal") { shift_to 2 }
738
- + for_symbols("expression") { shift_to 34 }
739
- + for_symbols(",", ")") { reduce_with "no_args" }
740
- + for_symbols("var_name") { shift_to 7 }
741
- + for_symbols("arg_list") { shift_to 8 }
742
- ***************
743
- *** 623,624
744
- - at_state(17) {
745
- - for_symbols("newline") { reduce_with "function_body_simple_statement" }
746
- --- 591,593 -----
747
- + at_state(52) {
748
- + for_symbols("word_literal") { shift_to 53 }
749
- + for_symbols("function_name") { shift_to 54 }
750
- ***************
751
- *** 627,628
752
- - at_state(98) {
753
- - for_symbols("_End_", "newline") { reduce_with "multiple_main_body_statements" }
754
- --- 596,597 -----
755
- + at_state(49) {
756
- + for_symbols("=") { shift_to 50 }
757
- ***************
758
- *** 631,641
759
- - at_state(87) {
760
- - for_symbols("<") { shift_to 23 }
761
- - for_symbols("*") { shift_to 33 }
762
- - for_symbols("+") { shift_to 21 }
763
- - for_symbols(">") { shift_to 31 }
764
- - for_symbols("^") { shift_to 27 }
765
- - for_symbols("-") { shift_to 29 }
766
- - for_symbols("newline") { shift_to 3 }
767
- - for_symbols("/") { shift_to 25 }
768
- - for_symbols("terms") { shift_to 88 }
769
- - for_symbols("==") { shift_to 35 }
770
- --- 600,601 -----
771
- + at_state(11) {
772
- + for_symbols("+", "==", ",", "-", "/", "<", "_End_", "^", ">", "newline", ")", "*") { reduce_with "literal" }
773
- ***************
774
- *** 644,648
775
- - at_state(84) {
776
- - for_symbols("terms") { shift_to 85 }
777
- - for_symbols("_End_") { reduce_with "no_terms" }
778
- - for_symbols("newline") { shift_to 3 }
779
- - for_symbols("opt_terms") { shift_to 105 }
780
- --- 604,612 -----
781
- + at_state(17) {
782
- + for_symbols("(") { shift_to 29 }
783
- + for_symbols("function_name") { shift_to 5 }
784
- + for_symbols("-") { shift_to 32 }
785
- + for_symbols("!") { shift_to 4 }
786
- + for_symbols("numeric_literal") { shift_to 11 }
787
- + for_symbols("word_literal") { shift_to 2 }
788
- + for_symbols("expression") { shift_to 18 }
789
- + for_symbols("var_name") { shift_to 7 }
790
- ***************
791
- *** 651,653
792
- - at_state(75) {
793
- - for_symbols("newline") { shift_to 3 }
794
- - for_symbols("terms") { shift_to 76 }
795
- --- 615,616 -----
796
- + at_state(53) {
797
- + for_symbols("(") { reduce_with "function_name" }
798
- ***************
799
- *** 656,666
800
- - at_state(54) {
801
- - for_symbols("terms") { shift_to 55 }
802
- - for_symbols("<") { shift_to 23 }
803
- - for_symbols("*") { shift_to 33 }
804
- - for_symbols("+") { shift_to 21 }
805
- - for_symbols(">") { shift_to 31 }
806
- - for_symbols("^") { shift_to 27 }
807
- - for_symbols("-") { shift_to 29 }
808
- - for_symbols("newline") { shift_to 3 }
809
- - for_symbols("/") { shift_to 25 }
810
- - for_symbols("==") { shift_to 35 }
811
- --- 619,620 -----
812
- + at_state(89) {
813
- + for_symbols(",", ")") { reduce_with "multiple_arg_declarations" }
814
- ***************
815
- *** 669,671
816
- - at_state(5) {
817
- - for_symbols("word_literal") { shift_to 6 }
818
- - for_symbols("function_name") { shift_to 7 }
819
- --- 623,625 -----
820
- + at_state(80) {
821
- + for_symbols("terms") { shift_to 81 }
822
- + for_symbols("newline") { shift_to 37 }
823
- ***************
824
- *** 674,675
825
- - at_state(105) {
826
- - for_symbols("_End_") { reduce_with "program" }
827
- --- 628,630 -----
828
- + at_state(8) {
829
- + for_symbols(",") { shift_to 10 }
830
- + for_symbols(")") { shift_to 9 }
831
- ***************
832
- *** 678,680
833
- - at_state(102) {
834
- - for_symbols("terms") { shift_to 103 }
835
- - for_symbols("newline") { shift_to 3 }
836
- --- 633,641 -----
837
- + at_state(21) {
838
- + for_symbols("(") { shift_to 29 }
839
- + for_symbols("function_name") { shift_to 5 }
840
- + for_symbols("-") { shift_to 32 }
841
- + for_symbols("!") { shift_to 4 }
842
- + for_symbols("numeric_literal") { shift_to 11 }
843
- + for_symbols("word_literal") { shift_to 2 }
844
- + for_symbols("expression") { shift_to 22 }
845
- + for_symbols("var_name") { shift_to 7 }
846
- ***************
847
- *** 683,694
848
- - at_state(81) {
849
- - for_symbols("return") { shift_to 66 }
850
- - for_symbols("newline") { shift_to 2 }
851
- - for_symbols("word_literal") { shift_to 40 }
852
- - for_symbols("function_body_statement") { shift_to 70 }
853
- - for_symbols("var_name") { shift_to 63 }
854
- - for_symbols("print") { shift_to 18 }
855
- - for_symbols("function_name") { shift_to 59 }
856
- - for_symbols("end") { shift_to 82 }
857
- - for_symbols("simple_statement") { shift_to 17 }
858
- - for_symbols("while") { shift_to 56 }
859
- - for_symbols("if") { shift_to 53 }
860
- --- 644,645 -----
861
- + at_state(101) {
862
- + for_symbols("_End_", "newline") { reduce_with "main_body_if_else_statement" }
863
- ***************
864
- *** 697,698
865
- - at_state(74) {
866
- - for_symbols("newline") { reduce_with "function_body_if_statement" }
867
- --- 648,649 -----
868
- + at_state(96) {
869
- + for_symbols("_End_", "newline") { reduce_with "main_body_if_statement" }
870
- ***************
871
- *** 701,713
872
- - at_state(73) {
873
- - for_symbols("return") { shift_to 66 }
874
- - for_symbols("newline") { shift_to 2 }
875
- - for_symbols("end") { shift_to 74 }
876
- - for_symbols("word_literal") { shift_to 40 }
877
- - for_symbols("function_body_statement") { shift_to 70 }
878
- - for_symbols("var_name") { shift_to 63 }
879
- - for_symbols("print") { shift_to 18 }
880
- - for_symbols("function_name") { shift_to 59 }
881
- - for_symbols("simple_statement") { shift_to 17 }
882
- - for_symbols("while") { shift_to 56 }
883
- - for_symbols("if") { shift_to 53 }
884
- - for_symbols("else") { shift_to 75 }
885
- --- 652,653 -----
886
- + at_state(92) {
887
- + for_symbols("_End_", "newline") { reduce_with "main_body_simple_statement" }
888
- ***************
889
- *** 716,717
890
- - at_state(71) {
891
- - for_symbols("newline") { reduce_with "function_body_while_statement" }
892
- --- 656,657 -----
893
- + at_state(91) {
894
- + for_symbols("_End_", "newline") { reduce_with "multiple_main_body_statements" }
895
- ***************
896
- *** 720,721
897
- - at_state(39) {
898
- - for_symbols("==", "+", ",", "-", "/", "<", "_End_", ">", "^", "newline", ")", "*") { reduce_with "parenthetized_expression" }
899
- --- 660,662 -----
900
- + at_state(82) {
901
- + for_symbols("terms") { shift_to 83 }
902
- + for_symbols("newline") { shift_to 37 }
903
- ***************
904
- *** 724,732
905
- - at_state(18) {
906
- - for_symbols("var_name") { shift_to 48 }
907
- - for_symbols("numeric_literal") { shift_to 19 }
908
- - for_symbols("!") { shift_to 49 }
909
- - for_symbols("word_literal") { shift_to 40 }
910
- - for_symbols("function_name") { shift_to 43 }
911
- - for_symbols("-") { shift_to 41 }
912
- - for_symbols("(") { shift_to 37 }
913
- - for_symbols("expression") { shift_to 20 }
914
- --- 665,667 -----
915
- + at_state(24) {
916
- + for_symbols("^") { shift_to 27 }
917
- + for_symbols("+", "==", ",", "-", "/", "<", "_End_", ">", "newline", ")", "*") { reduce_with "division" }
918
- ***************
919
- *** 735,744
920
- - at_state(38) {
921
- - for_symbols(")") { shift_to 39 }
922
- - for_symbols("<") { shift_to 23 }
923
- - for_symbols("*") { shift_to 33 }
924
- - for_symbols("+") { shift_to 21 }
925
- - for_symbols(">") { shift_to 31 }
926
- - for_symbols("^") { shift_to 27 }
927
- - for_symbols("-") { shift_to 29 }
928
- - for_symbols("/") { shift_to 25 }
929
- - for_symbols("==") { shift_to 35 }
930
- --- 670,681 -----
931
- + at_state(83) {
932
- + for_symbols("var_name") { shift_to 49 }
933
- + for_symbols("function_name") { shift_to 45 }
934
- + for_symbols("if") { shift_to 60 }
935
- + for_symbols("function_body_statement") { shift_to 71 }
936
- + for_symbols("word_literal") { shift_to 2 }
937
- + for_symbols("return") { shift_to 69 }
938
- + for_symbols("newline") { shift_to 72 }
939
- + for_symbols("simple_statement") { shift_to 73 }
940
- + for_symbols("print") { shift_to 74 }
941
- + for_symbols("end") { shift_to 84 }
942
- + for_symbols("while") { shift_to 63 }
943
- ***************
944
- *** 747,749
945
- - at_state(11) {
946
- - for_symbols(",") { shift_to 12 }
947
- - for_symbols(")") { shift_to 14 }
948
- --- 684,693 -----
949
- + at_state(75) {
950
- + for_symbols("*") { shift_to 15 }
951
- + for_symbols("^") { shift_to 27 }
952
- + for_symbols(">") { shift_to 13 }
953
- + for_symbols("/") { shift_to 23 }
954
- + for_symbols("<") { shift_to 21 }
955
- + for_symbols("+") { shift_to 19 }
956
- + for_symbols("_End_", "newline") { reduce_with "print_statement" }
957
- + for_symbols("==") { shift_to 17 }
958
- + for_symbols("-") { shift_to 25 }
959
- ***************
960
- *** 752,760
961
- - at_state(49) {
962
- - for_symbols("var_name") { shift_to 48 }
963
- - for_symbols("expression") { shift_to 50 }
964
- - for_symbols("numeric_literal") { shift_to 19 }
965
- - for_symbols("!") { shift_to 49 }
966
- - for_symbols("word_literal") { shift_to 40 }
967
- - for_symbols("function_name") { shift_to 43 }
968
- - for_symbols("-") { shift_to 41 }
969
- - for_symbols("(") { shift_to 37 }
970
- --- 696,704 -----
971
- + at_state(74) {
972
- + for_symbols("(") { shift_to 29 }
973
- + for_symbols("function_name") { shift_to 5 }
974
- + for_symbols("expression") { shift_to 75 }
975
- + for_symbols("-") { shift_to 32 }
976
- + for_symbols("!") { shift_to 4 }
977
- + for_symbols("numeric_literal") { shift_to 11 }
978
- + for_symbols("word_literal") { shift_to 2 }
979
- + for_symbols("var_name") { shift_to 7 }
980
- ***************
981
- *** 763,774
982
- - at_state(15) {
983
- - for_symbols("return") { shift_to 66 }
984
- - for_symbols("newline") { shift_to 2 }
985
- - for_symbols("function_body") { shift_to 80 }
986
- - for_symbols("word_literal") { shift_to 40 }
987
- - for_symbols("var_name") { shift_to 63 }
988
- - for_symbols("print") { shift_to 18 }
989
- - for_symbols("function_name") { shift_to 59 }
990
- - for_symbols("simple_statement") { shift_to 17 }
991
- - for_symbols("while") { shift_to 56 }
992
- - for_symbols("function_body_statement") { shift_to 16 }
993
- - for_symbols("if") { shift_to 53 }
994
- --- 707,708 -----
995
- + at_state(28) {
996
- + for_symbols("+", "==", ",", "-", "/", "<", "_End_", ">", "newline", ")", "*") { reduce_with "power" }
997
- ***************
998
- *** 777,778
999
- - at_state(63) {
1000
- - for_symbols("=") { shift_to 64 }
1001
- --- 711,719 -----
1002
- + at_state(27) {
1003
- + for_symbols("(") { shift_to 29 }
1004
- + for_symbols("function_name") { shift_to 5 }
1005
- + for_symbols("-") { shift_to 32 }
1006
- + for_symbols("!") { shift_to 4 }
1007
- + for_symbols("numeric_literal") { shift_to 11 }
1008
- + for_symbols("expression") { shift_to 28 }
1009
- + for_symbols("word_literal") { shift_to 2 }
1010
- + for_symbols("var_name") { shift_to 7 }
1011
- ***************
1012
- *** 781,782
1013
- - at_state(48) {
1014
- - for_symbols("==", "+", ",", "-", "/", "<", "_End_", ">", "^", "newline", ")", "*") { reduce_with "variable_reference" }
1015
- --- 722,733 -----
1016
- + at_state(43) {
1017
- + for_symbols("var_name") { shift_to 49 }
1018
- + for_symbols("function_name") { shift_to 45 }
1019
- + for_symbols("while") { shift_to 39 }
1020
- + for_symbols("main_body_statement") { shift_to 91 }
1021
- + for_symbols("word_literal") { shift_to 2 }
1022
- + for_symbols("newline") { shift_to 72 }
1023
- + for_symbols("print") { shift_to 74 }
1024
- + for_symbols("end") { shift_to 44 }
1025
- + for_symbols("if") { shift_to 3 }
1026
- + for_symbols("simple_statement") { shift_to 92 }
1027
- + for_symbols("def") { shift_to 52 }
1028
- ***************
1029
- *** 785,787
1030
- - at_state(42) {
1031
- - for_symbols("==", "+", ",", "-", "/", "<", "_End_", ">", "newline", ")", "*") { reduce_with "negated_expression" }
1032
- - for_symbols("^") { shift_to 27 }
1033
- --- 736,747 -----
1034
- + at_state(81) {
1035
- + for_symbols("var_name") { shift_to 49 }
1036
- + for_symbols("function_name") { shift_to 45 }
1037
- + for_symbols("if") { shift_to 60 }
1038
- + for_symbols("word_literal") { shift_to 2 }
1039
- + for_symbols("return") { shift_to 69 }
1040
- + for_symbols("newline") { shift_to 72 }
1041
- + for_symbols("simple_statement") { shift_to 73 }
1042
- + for_symbols("print") { shift_to 74 }
1043
- + for_symbols("function_body_statement") { shift_to 76 }
1044
- + for_symbols("function_body") { shift_to 82 }
1045
- + for_symbols("while") { shift_to 63 }
1046
- ***************
1047
- *** 790,792
1048
- - at_state(89) {
1049
- - for_symbols("terms") { shift_to 90 }
1050
- - for_symbols("newline") { shift_to 3 }
1051
- --- 750,758 -----
1052
- + at_state(39) {
1053
- + for_symbols("(") { shift_to 29 }
1054
- + for_symbols("function_name") { shift_to 5 }
1055
- + for_symbols("-") { shift_to 32 }
1056
- + for_symbols("!") { shift_to 4 }
1057
- + for_symbols("numeric_literal") { shift_to 11 }
1058
- + for_symbols("word_literal") { shift_to 2 }
1059
- + for_symbols("expression") { shift_to 40 }
1060
- + for_symbols("var_name") { shift_to 7 }
1061
- ***************
1062
- *** 795,806
1063
- - at_state(78) {
1064
- - for_symbols("return") { shift_to 66 }
1065
- - for_symbols("newline") { shift_to 2 }
1066
- - for_symbols("end") { shift_to 79 }
1067
- - for_symbols("word_literal") { shift_to 40 }
1068
- - for_symbols("function_body_statement") { shift_to 70 }
1069
- - for_symbols("var_name") { shift_to 63 }
1070
- - for_symbols("print") { shift_to 18 }
1071
- - for_symbols("function_name") { shift_to 59 }
1072
- - for_symbols("simple_statement") { shift_to 17 }
1073
- - for_symbols("while") { shift_to 56 }
1074
- - for_symbols("if") { shift_to 53 }
1075
- --- 761,769 -----
1076
- + at_state(15) {
1077
- + for_symbols("(") { shift_to 29 }
1078
- + for_symbols("function_name") { shift_to 5 }
1079
- + for_symbols("-") { shift_to 32 }
1080
- + for_symbols("!") { shift_to 4 }
1081
- + for_symbols("numeric_literal") { shift_to 11 }
1082
- + for_symbols("word_literal") { shift_to 2 }
1083
- + for_symbols("var_name") { shift_to 7 }
1084
- + for_symbols("expression") { shift_to 16 }
1085
- ***************
1086
- *** 809,818
1087
- - at_state(52) {
1088
- - for_symbols("<") { shift_to 23 }
1089
- - for_symbols(",", ")") { reduce_with "single_arg" }
1090
- - for_symbols("*") { shift_to 33 }
1091
- - for_symbols("+") { shift_to 21 }
1092
- - for_symbols(">") { shift_to 31 }
1093
- - for_symbols("^") { shift_to 27 }
1094
- - for_symbols("-") { shift_to 29 }
1095
- - for_symbols("/") { shift_to 25 }
1096
- - for_symbols("==") { shift_to 35 }
1097
- --- 772,780 -----
1098
- + at_state(23) {
1099
- + for_symbols("(") { shift_to 29 }
1100
- + for_symbols("expression") { shift_to 24 }
1101
- + for_symbols("function_name") { shift_to 5 }
1102
- + for_symbols("-") { shift_to 32 }
1103
- + for_symbols("!") { shift_to 4 }
1104
- + for_symbols("numeric_literal") { shift_to 11 }
1105
- + for_symbols("word_literal") { shift_to 2 }
1106
- + for_symbols("var_name") { shift_to 7 }
1107
- ***************
1108
- *** 821,829
1109
- - at_state(35) {
1110
- - for_symbols("var_name") { shift_to 48 }
1111
- - for_symbols("numeric_literal") { shift_to 19 }
1112
- - for_symbols("!") { shift_to 49 }
1113
- - for_symbols("word_literal") { shift_to 40 }
1114
- - for_symbols("function_name") { shift_to 43 }
1115
- - for_symbols("expression") { shift_to 36 }
1116
- - for_symbols("-") { shift_to 41 }
1117
- - for_symbols("(") { shift_to 37 }
1118
- --- 783,784 -----
1119
- + at_state(9) {
1120
- + for_symbols("+", "==", ",", "-", "/", "<", "_End_", "^", ">", "newline", ")", "*") { reduce_with "function_call_expression" }
1121
- ***************
1122
- *** 832,840
1123
- - at_state(31) {
1124
- - for_symbols("var_name") { shift_to 48 }
1125
- - for_symbols("numeric_literal") { shift_to 19 }
1126
- - for_symbols("!") { shift_to 49 }
1127
- - for_symbols("word_literal") { shift_to 40 }
1128
- - for_symbols("function_name") { shift_to 43 }
1129
- - for_symbols("expression") { shift_to 32 }
1130
- - for_symbols("-") { shift_to 41 }
1131
- - for_symbols("(") { shift_to 37 }
1132
- --- 787,788 -----
1133
- + at_state(48) {
1134
- + for_symbols("_End_", "newline") { reduce_with "function_call_statement" }
1135
- ***************
1136
- *** 843,844
1137
- - at_state(82) {
1138
- - for_symbols("_End_", "newline") { reduce_with "function_definition" }
1139
- --- 791,802 -----
1140
- + at_state(86) {
1141
- + for_symbols("var_name") { shift_to 49 }
1142
- + for_symbols("function_name") { shift_to 45 }
1143
- + for_symbols("end") { shift_to 87 }
1144
- + for_symbols("if") { shift_to 60 }
1145
- + for_symbols("function_body_statement") { shift_to 71 }
1146
- + for_symbols("word_literal") { shift_to 2 }
1147
- + for_symbols("return") { shift_to 69 }
1148
- + for_symbols("newline") { shift_to 72 }
1149
- + for_symbols("simple_statement") { shift_to 73 }
1150
- + for_symbols("print") { shift_to 74 }
1151
- + for_symbols("while") { shift_to 63 }
1152
- ***************
1153
- *** 847,849
1154
- - at_state(77) {
1155
- - for_symbols("terms") { shift_to 78 }
1156
- - for_symbols("newline") { shift_to 3 }
1157
- --- 805,806 -----
1158
- + at_state(71) {
1159
- + for_symbols("newline") { reduce_with "multiple_function_body_statements" }
1160
- ***************
1161
- *** 852,853
1162
- - at_state(51) {
1163
- - for_symbols("==", "+", ",", "-", "/", "<", "_End_", ">", "^", "newline", ")", "*") { reduce_with "function_call_expression" }
1164
- --- 809,817 -----
1165
- + at_state(32) {
1166
- + for_symbols("(") { shift_to 29 }
1167
- + for_symbols("function_name") { shift_to 5 }
1168
- + for_symbols("expression") { shift_to 33 }
1169
- + for_symbols("-") { shift_to 32 }
1170
- + for_symbols("!") { shift_to 4 }
1171
- + for_symbols("numeric_literal") { shift_to 11 }
1172
- + for_symbols("word_literal") { shift_to 2 }
1173
- + for_symbols("var_name") { shift_to 7 }
1174
- ***************
1175
- *** 856,864
1176
- - at_state(33) {
1177
- - for_symbols("var_name") { shift_to 48 }
1178
- - for_symbols("numeric_literal") { shift_to 19 }
1179
- - for_symbols("!") { shift_to 49 }
1180
- - for_symbols("word_literal") { shift_to 40 }
1181
- - for_symbols("function_name") { shift_to 43 }
1182
- - for_symbols("-") { shift_to 41 }
1183
- - for_symbols("expression") { shift_to 34 }
1184
- - for_symbols("(") { shift_to 37 }
1185
- --- 820,831 -----
1186
- + at_state(65) {
1187
- + for_symbols("var_name") { shift_to 49 }
1188
- + for_symbols("function_body") { shift_to 66 }
1189
- + for_symbols("function_name") { shift_to 45 }
1190
- + for_symbols("if") { shift_to 60 }
1191
- + for_symbols("word_literal") { shift_to 2 }
1192
- + for_symbols("return") { shift_to 69 }
1193
- + for_symbols("newline") { shift_to 72 }
1194
- + for_symbols("simple_statement") { shift_to 73 }
1195
- + for_symbols("print") { shift_to 74 }
1196
- + for_symbols("function_body_statement") { shift_to 76 }
1197
- + for_symbols("while") { shift_to 63 }
1198
- ***************
1199
- *** 867,875
1200
- - at_state(25) {
1201
- - for_symbols("var_name") { shift_to 48 }
1202
- - for_symbols("numeric_literal") { shift_to 19 }
1203
- - for_symbols("!") { shift_to 49 }
1204
- - for_symbols("word_literal") { shift_to 40 }
1205
- - for_symbols("function_name") { shift_to 43 }
1206
- - for_symbols("-") { shift_to 41 }
1207
- - for_symbols("(") { shift_to 37 }
1208
- - for_symbols("expression") { shift_to 26 }
1209
- --- 834,845 -----
1210
- + at_state(104) {
1211
- + for_symbols("var_name") { shift_to 49 }
1212
- + for_symbols("function_name") { shift_to 45 }
1213
- + for_symbols("while") { shift_to 39 }
1214
- + for_symbols("main_body_statement") { shift_to 91 }
1215
- + for_symbols("word_literal") { shift_to 2 }
1216
- + for_symbols("newline") { shift_to 72 }
1217
- + for_symbols("_End_") { reduce_with "some_terms" }
1218
- + for_symbols("print") { shift_to 74 }
1219
- + for_symbols("if") { shift_to 3 }
1220
- + for_symbols("simple_statement") { shift_to 92 }
1221
- + for_symbols("def") { shift_to 52 }
1222
- ***************
1223
- *** 878,880
1224
- - at_state(45) {
1225
- - for_symbols(",") { shift_to 46 }
1226
- - for_symbols(")") { shift_to 51 }
1227
- --- 848,850 -----
1228
- + at_state(99) {
1229
- + for_symbols("terms") { shift_to 100 }
1230
- + for_symbols("newline") { shift_to 37 }
1231
- ***************
1232
- *** 883,894
1233
- - at_state(96) {
1234
- - for_symbols("main_body_statement") { shift_to 98 }
1235
- - for_symbols("newline") { shift_to 2 }
1236
- - for_symbols("def") { shift_to 5 }
1237
- - for_symbols("word_literal") { shift_to 40 }
1238
- - for_symbols("var_name") { shift_to 63 }
1239
- - for_symbols("print") { shift_to 18 }
1240
- - for_symbols("while") { shift_to 92 }
1241
- - for_symbols("function_name") { shift_to 59 }
1242
- - for_symbols("if") { shift_to 86 }
1243
- - for_symbols("simple_statement") { shift_to 83 }
1244
- - for_symbols("end") { shift_to 97 }
1245
- --- 853,861 -----
1246
- + at_state(69) {
1247
- + for_symbols("(") { shift_to 29 }
1248
- + for_symbols("function_name") { shift_to 5 }
1249
- + for_symbols("-") { shift_to 32 }
1250
- + for_symbols("!") { shift_to 4 }
1251
- + for_symbols("numeric_literal") { shift_to 11 }
1252
- + for_symbols("word_literal") { shift_to 2 }
1253
- + for_symbols("expression") { shift_to 70 }
1254
- + for_symbols("var_name") { shift_to 7 }
1255
- ***************
1256
- *** 898,906
1257
- - for_symbols("<") { shift_to 23 }
1258
- - for_symbols("*") { shift_to 33 }
1259
- - for_symbols("+") { shift_to 21 }
1260
- - for_symbols(">") { shift_to 31 }
1261
- - for_symbols("^") { shift_to 27 }
1262
- - for_symbols("newline") { reduce_with "return_statement" }
1263
- - for_symbols("-") { shift_to 29 }
1264
- - for_symbols("/") { shift_to 25 }
1265
- - for_symbols("==") { shift_to 35 }
1266
- --- 865,875 -----
1267
- + for_symbols("var_name") { shift_to 49 }
1268
- + for_symbols("end") { shift_to 68 }
1269
- + for_symbols("function_name") { shift_to 45 }
1270
- + for_symbols("if") { shift_to 60 }
1271
- + for_symbols("function_body_statement") { shift_to 71 }
1272
- + for_symbols("word_literal") { shift_to 2 }
1273
- + for_symbols("return") { shift_to 69 }
1274
- + for_symbols("newline") { shift_to 72 }
1275
- + for_symbols("simple_statement") { shift_to 73 }
1276
- + for_symbols("print") { shift_to 74 }
1277
- + for_symbols("while") { shift_to 63 }
1278
- ***************
1279
- *** 909,911
1280
- - at_state(40) {
1281
- - for_symbols("(") { reduce_with "function_name" }
1282
- - for_symbols("==", "+", ",", "-", "/", "<", "=", "_End_", ">", "^", "newline", ")", "*") { reduce_with "variable_name" }
1283
- --- 878,882 -----
1284
- + at_state(102) {
1285
- + for_symbols("opt_terms") { shift_to 103 }
1286
- + for_symbols("terms") { shift_to 104 }
1287
- + for_symbols("newline") { shift_to 37 }
1288
- + for_symbols("_End_") { reduce_with "no_terms" }
1289
- ***************
1290
- *** 914,924
1291
- - at_state(57) {
1292
- - for_symbols("<") { shift_to 23 }
1293
- - for_symbols("*") { shift_to 33 }
1294
- - for_symbols("+") { shift_to 21 }
1295
- - for_symbols(">") { shift_to 31 }
1296
- - for_symbols("^") { shift_to 27 }
1297
- - for_symbols("-") { shift_to 29 }
1298
- - for_symbols("terms") { shift_to 58 }
1299
- - for_symbols("newline") { shift_to 3 }
1300
- - for_symbols("/") { shift_to 25 }
1301
- - for_symbols("==") { shift_to 35 }
1302
- --- 885,887 -----
1303
- + at_state(97) {
1304
- + for_symbols("terms") { shift_to 98 }
1305
- + for_symbols("newline") { shift_to 37 }
1306
- ***************
1307
- *** 927,929
1308
- - at_state(26) {
1309
- - for_symbols("==", "+", ",", "-", "/", "<", "_End_", ">", "newline", ")", "*") { reduce_with "division" }
1310
- - for_symbols("^") { shift_to 27 }
1311
- --- 890,891 -----
1312
- + at_state(76) {
1313
- + for_symbols("newline") { reduce_with "single_function_body_statement" }
1314
- ***************
1315
- *** 932,938
1316
- - at_state(32) {
1317
- - for_symbols("*") { shift_to 33 }
1318
- - for_symbols("+") { shift_to 21 }
1319
- - for_symbols("^") { shift_to 27 }
1320
- - for_symbols("==", ",", "_End_", "newline", ")") { reduce_with "greater_than_comparison" }
1321
- - for_symbols("-") { shift_to 29 }
1322
- - for_symbols("/") { shift_to 25 }
1323
- --- 894,902 -----
1324
- + at_state(63) {
1325
- + for_symbols("(") { shift_to 29 }
1326
- + for_symbols("function_name") { shift_to 5 }
1327
- + for_symbols("-") { shift_to 32 }
1328
- + for_symbols("!") { shift_to 4 }
1329
- + for_symbols("numeric_literal") { shift_to 11 }
1330
- + for_symbols("word_literal") { shift_to 2 }
1331
- + for_symbols("expression") { shift_to 64 }
1332
- + for_symbols("var_name") { shift_to 7 }
1333
- ***************
1334
- *** 941,945
1335
- - at_state(65) {
1336
- - for_symbols("<") { shift_to 23 }
1337
- - for_symbols("*") { shift_to 33 }
1338
- - for_symbols("+") { shift_to 21 }
1339
- - for_symbols(">") { shift_to 31 }
1340
- --- 905,906 -----
1341
- + at_state(34) {
1342
- + for_symbols("*") { shift_to 15 }
1343
- ***************
1344
- *** 947,950
1345
- - for_symbols("-") { shift_to 29 }
1346
- - for_symbols("_End_", "newline") { reduce_with "assignment_statement" }
1347
- - for_symbols("/") { shift_to 25 }
1348
- - for_symbols("==") { shift_to 35 }
1349
- --- 908,914 -----
1350
- + for_symbols(">") { shift_to 13 }
1351
- + for_symbols(",", ")") { reduce_with "single_arg" }
1352
- + for_symbols("/") { shift_to 23 }
1353
- + for_symbols("<") { shift_to 21 }
1354
- + for_symbols("+") { shift_to 19 }
1355
- + for_symbols("==") { shift_to 17 }
1356
- + for_symbols("-") { shift_to 25 }
1357
- ***************
1358
- *** 953,954
1359
- - at_state(62) {
1360
- - for_symbols("_End_", "newline") { reduce_with "function_call_statement" }
1361
- --- 917,929 -----
1362
- + at_state(95) {
1363
- + for_symbols("var_name") { shift_to 49 }
1364
- + for_symbols("else") { shift_to 97 }
1365
- + for_symbols("function_name") { shift_to 45 }
1366
- + for_symbols("end") { shift_to 96 }
1367
- + for_symbols("while") { shift_to 39 }
1368
- + for_symbols("main_body_statement") { shift_to 91 }
1369
- + for_symbols("word_literal") { shift_to 2 }
1370
- + for_symbols("newline") { shift_to 72 }
1371
- + for_symbols("print") { shift_to 74 }
1372
- + for_symbols("if") { shift_to 3 }
1373
- + for_symbols("simple_statement") { shift_to 92 }
1374
- + for_symbols("def") { shift_to 52 }
1375
- ***************
1376
- *** 957,959
1377
- - at_state(100) {
1378
- - for_symbols("terms") { shift_to 101 }
1379
- - for_symbols("newline") { shift_to 3 }
1380
- --- 932,933 -----
1381
- + at_state(93) {
1382
- + for_symbols("_End_", "newline") { reduce_with "single_main_body_statement" }
1383
- ***************
1384
- *** 962,970
1385
- - at_state(86) {
1386
- - for_symbols("var_name") { shift_to 48 }
1387
- - for_symbols("numeric_literal") { shift_to 19 }
1388
- - for_symbols("expression") { shift_to 87 }
1389
- - for_symbols("!") { shift_to 49 }
1390
- - for_symbols("word_literal") { shift_to 40 }
1391
- - for_symbols("function_name") { shift_to 43 }
1392
- - for_symbols("-") { shift_to 41 }
1393
- - for_symbols("(") { shift_to 37 }
1394
- --- 936,938 -----
1395
- + at_state(16) {
1396
- + for_symbols("^") { shift_to 27 }
1397
- + for_symbols("+", "==", ",", "-", "/", "<", "_End_", ">", "newline", ")", "*") { reduce_with "multiplication" }
1398
- ***************
1399
- *** 973,974
1400
- - at_state(13) {
1401
- - for_symbols(",", ")") { reduce_with "multiple_arg_declarations" }
1402
- --- 941,943 -----
1403
- + at_state(58) {
1404
- + for_symbols("newline") { shift_to 37 }
1405
- + for_symbols("terms") { shift_to 59 }
1406
- ***************
1407
- *** 977,988
1408
- - at_state(101) {
1409
- - for_symbols("newline") { shift_to 2 }
1410
- - for_symbols("main_body_statement") { shift_to 99 }
1411
- - for_symbols("def") { shift_to 5 }
1412
- - for_symbols("word_literal") { shift_to 40 }
1413
- - for_symbols("var_name") { shift_to 63 }
1414
- - for_symbols("print") { shift_to 18 }
1415
- - for_symbols("while") { shift_to 92 }
1416
- - for_symbols("function_name") { shift_to 59 }
1417
- - for_symbols("main_body") { shift_to 102 }
1418
- - for_symbols("if") { shift_to 86 }
1419
- - for_symbols("simple_statement") { shift_to 83 }
1420
- --- 946,955 -----
1421
- + at_state(51) {
1422
- + for_symbols("*") { shift_to 15 }
1423
- + for_symbols("^") { shift_to 27 }
1424
- + for_symbols(">") { shift_to 13 }
1425
- + for_symbols("/") { shift_to 23 }
1426
- + for_symbols("_End_", "newline") { reduce_with "assignment_statement" }
1427
- + for_symbols("<") { shift_to 21 }
1428
- + for_symbols("+") { shift_to 19 }
1429
- + for_symbols("==") { shift_to 17 }
1430
- + for_symbols("-") { shift_to 25 }
1431
- ***************
1432
- *** 991,1002
1433
- - at_state(88) {
1434
- - for_symbols("newline") { shift_to 2 }
1435
- - for_symbols("main_body_statement") { shift_to 99 }
1436
- - for_symbols("def") { shift_to 5 }
1437
- - for_symbols("word_literal") { shift_to 40 }
1438
- - for_symbols("var_name") { shift_to 63 }
1439
- - for_symbols("print") { shift_to 18 }
1440
- - for_symbols("while") { shift_to 92 }
1441
- - for_symbols("function_name") { shift_to 59 }
1442
- - for_symbols("if") { shift_to 86 }
1443
- - for_symbols("main_body") { shift_to 89 }
1444
- - for_symbols("simple_statement") { shift_to 83 }
1445
- --- 958,969 -----
1446
- + at_state(41) {
1447
- + for_symbols("var_name") { shift_to 49 }
1448
- + for_symbols("function_name") { shift_to 45 }
1449
- + for_symbols("main_body") { shift_to 42 }
1450
- + for_symbols("while") { shift_to 39 }
1451
- + for_symbols("word_literal") { shift_to 2 }
1452
- + for_symbols("newline") { shift_to 72 }
1453
- + for_symbols("print") { shift_to 74 }
1454
- + for_symbols("if") { shift_to 3 }
1455
- + for_symbols("main_body_statement") { shift_to 93 }
1456
- + for_symbols("simple_statement") { shift_to 92 }
1457
- + for_symbols("def") { shift_to 52 }
1458
- ***************
1459
- *** 1005,1007
1460
- - at_state(80) {
1461
- - for_symbols("newline") { shift_to 3 }
1462
- - for_symbols("terms") { shift_to 81 }
1463
- --- 972,983 -----
1464
- + at_state(59) {
1465
- + for_symbols("var_name") { shift_to 49 }
1466
- + for_symbols("function_name") { shift_to 45 }
1467
- + for_symbols("function_body") { shift_to 85 }
1468
- + for_symbols("if") { shift_to 60 }
1469
- + for_symbols("word_literal") { shift_to 2 }
1470
- + for_symbols("return") { shift_to 69 }
1471
- + for_symbols("newline") { shift_to 72 }
1472
- + for_symbols("simple_statement") { shift_to 73 }
1473
- + for_symbols("print") { shift_to 74 }
1474
- + for_symbols("function_body_statement") { shift_to 76 }
1475
- + for_symbols("while") { shift_to 63 }
1476
- ***************
1477
- *** 1010,1018
1478
- - at_state(56) {
1479
- - for_symbols("var_name") { shift_to 48 }
1480
- - for_symbols("expression") { shift_to 57 }
1481
- - for_symbols("numeric_literal") { shift_to 19 }
1482
- - for_symbols("!") { shift_to 49 }
1483
- - for_symbols("word_literal") { shift_to 40 }
1484
- - for_symbols("function_name") { shift_to 43 }
1485
- - for_symbols("-") { shift_to 41 }
1486
- - for_symbols("(") { shift_to 37 }
1487
- --- 986,996 -----
1488
- + at_state(40) {
1489
- + for_symbols("*") { shift_to 15 }
1490
- + for_symbols("^") { shift_to 27 }
1491
- + for_symbols(">") { shift_to 13 }
1492
- + for_symbols("/") { shift_to 23 }
1493
- + for_symbols("terms") { shift_to 41 }
1494
- + for_symbols("<") { shift_to 21 }
1495
- + for_symbols("newline") { shift_to 37 }
1496
- + for_symbols("+") { shift_to 19 }
1497
- + for_symbols("==") { shift_to 17 }
1498
- + for_symbols("-") { shift_to 25 }
1499
- ***************
1500
- *** 1021,1022
1501
- - at_state(97) {
1502
- - for_symbols("_End_", "newline") { reduce_with "main_body_while_statement" }
1503
- --- 999,1001 -----
1504
- + at_state(105) {
1505
- + for_symbols("newline") { shift_to 72 }
1506
- + for_symbols("word_literal", "def", "print", "if", "while") { reduce_with "some_terms" }
1507
- ***************
1508
- *** 1025,1027
1509
- - at_state(12) {
1510
- - for_symbols("word_literal") { shift_to 10 }
1511
- - for_symbols("arg_decl") { shift_to 13 }
1512
- --- 1004,1005 -----
1513
- + at_state(72) {
1514
- + for_symbols("word_literal", "def", "end", "print", "else", "if", "_End_", "newline", "return", "while") { reduce_with "multiple_terms" }
1515
- ***************
1516
- *** 1030,1032
1517
- - at_state(22) {
1518
- - for_symbols("*") { shift_to 33 }
1519
- - for_symbols("==", "+", ",", "-", "<", "_End_", ">", "newline", ")") { reduce_with "addition" }
1520
- --- 1008,1009 -----
1521
- + at_state(61) {
1522
- + for_symbols("*") { shift_to 15 }
1523
- ***************
1524
- *** 1034
1525
- - for_symbols("/") { shift_to 25 }
1526
- --- 1011,1018 -----
1527
- + for_symbols(">") { shift_to 13 }
1528
- + for_symbols("terms") { shift_to 62 }
1529
- + for_symbols("/") { shift_to 23 }
1530
- + for_symbols("<") { shift_to 21 }
1531
- + for_symbols("newline") { shift_to 37 }
1532
- + for_symbols("+") { shift_to 19 }
1533
- + for_symbols("==") { shift_to 17 }
1534
- + for_symbols("-") { shift_to 25 }
1535
- ***************
1536
- *** 1037,1043
1537
- - at_state(10) {
1538
- - for_symbols(",", ")") { reduce_with "arg_declaration" }
1539
- - }
1540
- -
1541
- - at_state(95) {
1542
- - for_symbols("terms") { shift_to 96 }
1543
- - for_symbols("newline") { shift_to 3 }
1544
- --- 1021,1030 -----
1545
- + at_state(12) {
1546
- + for_symbols("*") { shift_to 15 }
1547
- + for_symbols("^") { shift_to 27 }
1548
- + for_symbols(">") { shift_to 13 }
1549
- + for_symbols("/") { shift_to 23 }
1550
- + for_symbols("<") { shift_to 21 }
1551
- + for_symbols("+") { shift_to 19 }
1552
- + for_symbols("==") { shift_to 17 }
1553
- + for_symbols("-") { shift_to 25 }
1554
- + for_symbols(",", ")") { reduce_with "multiple_args" }
1555
- ***************
1556
- *** 1046,1054
1557
- - at_state(23) {
1558
- - for_symbols("var_name") { shift_to 48 }
1559
- - for_symbols("numeric_literal") { shift_to 19 }
1560
- - for_symbols("!") { shift_to 49 }
1561
- - for_symbols("word_literal") { shift_to 40 }
1562
- - for_symbols("function_name") { shift_to 43 }
1563
- - for_symbols("expression") { shift_to 24 }
1564
- - for_symbols("-") { shift_to 41 }
1565
- - for_symbols("(") { shift_to 37 }
1566
- --- 1033,1041 -----
1567
- + at_state(29) {
1568
- + for_symbols("(") { shift_to 29 }
1569
- + for_symbols("function_name") { shift_to 5 }
1570
- + for_symbols("-") { shift_to 32 }
1571
- + for_symbols("!") { shift_to 4 }
1572
- + for_symbols("numeric_literal") { shift_to 11 }
1573
- + for_symbols("word_literal") { shift_to 2 }
1574
- + for_symbols("expression") { shift_to 30 }
1575
- + for_symbols("var_name") { shift_to 7 }
1576
- ***************
1577
- *** 1057,1058
1578
- - at_state(28) {
1579
- - for_symbols("==", "+", ",", "-", "/", "<", "_End_", ">", "newline", ")", "*") { reduce_with "power" }
1580
- --- 1044,1055 -----
1581
- + at_state(62) {
1582
- + for_symbols("var_name") { shift_to 49 }
1583
- + for_symbols("function_name") { shift_to 45 }
1584
- + for_symbols("if") { shift_to 60 }
1585
- + for_symbols("word_literal") { shift_to 2 }
1586
- + for_symbols("return") { shift_to 69 }
1587
- + for_symbols("newline") { shift_to 72 }
1588
- + for_symbols("simple_statement") { shift_to 73 }
1589
- + for_symbols("print") { shift_to 74 }
1590
- + for_symbols("function_body_statement") { shift_to 76 }
1591
- + for_symbols("function_body") { shift_to 77 }
1592
- + for_symbols("while") { shift_to 63 }
1593
- ***************
1594
- *** 1061,1062
1595
- - at_state(3) {
1596
- - for_symbols("word_literal", "end", "def", "print", "else", "if", "_End_", "return", "newline", "while") { reduce_with "single_term" }
1597
- --- 1058,1069 -----
1598
- + at_state(38) {
1599
- + for_symbols("main_body") { shift_to 94 }
1600
- + for_symbols("var_name") { shift_to 49 }
1601
- + for_symbols("function_name") { shift_to 45 }
1602
- + for_symbols("while") { shift_to 39 }
1603
- + for_symbols("word_literal") { shift_to 2 }
1604
- + for_symbols("newline") { shift_to 72 }
1605
- + for_symbols("print") { shift_to 74 }
1606
- + for_symbols("if") { shift_to 3 }
1607
- + for_symbols("main_body_statement") { shift_to 93 }
1608
- + for_symbols("simple_statement") { shift_to 92 }
1609
- + for_symbols("def") { shift_to 52 }
1610
- ***************
1611
- *** 1065,1073
1612
- - at_state(46) {
1613
- - for_symbols("var_name") { shift_to 48 }
1614
- - for_symbols("numeric_literal") { shift_to 19 }
1615
- - for_symbols("!") { shift_to 49 }
1616
- - for_symbols("expression") { shift_to 47 }
1617
- - for_symbols("word_literal") { shift_to 40 }
1618
- - for_symbols("function_name") { shift_to 43 }
1619
- - for_symbols("-") { shift_to 41 }
1620
- - for_symbols("(") { shift_to 37 }
1621
- --- 1072,1073 -----
1622
- + at_state(44) {
1623
- + for_symbols("_End_", "newline") { reduce_with "main_body_while_statement" }