toylang 0.2.0

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.
@@ -0,0 +1,922 @@
1
+ #
2
+ # DO NOT MODIFY!!!!
3
+ # This file is automatically generated by Racc 1.6.0
4
+ # from Racc grammar file "".
5
+ #
6
+
7
+ require 'racc/parser.rb'
8
+
9
+ require_relative '../lexer/lexer'
10
+ require_relative '../ast/nodes'
11
+
12
+ class Parser < Racc::Parser
13
+
14
+ module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 163)
15
+ def parse(code, show_tokens=false)
16
+ @tokens = Lexer.new.tokenize(code)
17
+ puts @tokens.inspect if show_tokens
18
+ do_parse
19
+ end
20
+
21
+ def next_token
22
+ @tokens.shift
23
+ end
24
+ ...end grammar.y/module_eval...
25
+ ##### State transition tables begin ###
26
+
27
+ racc_action_table = [
28
+ 30, 31, 28, 27, 29, 15, 17, 18, 19, 20,
29
+ 21, 22, 26, 55, 15, 54, 25, 23, 24, 30,
30
+ 93, 28, 27, 29, 15, 17, 18, 19, 20, 21,
31
+ 22, 26, 100, 15, 99, 25, 23, 24, 59, 14,
32
+ 33, 16, 110, 43, 93, 30, 92, 28, 27, 29,
33
+ 16, 17, 18, 19, 20, 21, 22, 26, 14, 96,
34
+ 16, 25, 23, 24, 30, 60, 28, 27, 29, 16,
35
+ 17, 18, 19, 20, 21, 22, 26, 109, 62, 108,
36
+ 25, 23, 24, 30, 14, 28, 27, 29, 64, 17,
37
+ 18, 19, 20, 21, 22, 26, 100, 66, 113, 25,
38
+ 23, 24, 30, 14, 28, 27, 29, 33, 17, 18,
39
+ 19, 20, 21, 22, 26, 98, 102, 104, 25, 23,
40
+ 24, 30, 14, 28, 27, 29, 105, 17, 18, 19,
41
+ 20, 21, 22, 26, 93, 112, 93, 25, 23, 24,
42
+ 30, 14, 28, 27, 29, 115, 17, 18, 19, 20,
43
+ 21, 22, 26, 93, nil, nil, 25, 23, 24, 30,
44
+ 14, 28, 27, 29, nil, 17, 18, 19, 20, 21,
45
+ 22, 26, nil, nil, nil, 25, 23, 24, 30, 14,
46
+ 28, 27, 29, nil, 17, 18, 19, 20, 21, 22,
47
+ 26, nil, nil, nil, 25, 23, 24, 30, 14, 28,
48
+ 27, 29, nil, 17, 18, 19, 20, 21, 22, 26,
49
+ nil, nil, nil, 25, 23, 24, 30, 14, 28, 27,
50
+ 29, nil, 17, 18, 19, 20, 21, 22, 26, nil,
51
+ nil, nil, 25, 23, 24, 30, 14, 28, 27, 29,
52
+ nil, 17, 18, 19, 20, 21, 22, 26, nil, nil,
53
+ nil, 25, 23, 24, 30, 14, 28, 27, 29, nil,
54
+ 17, 18, 19, 20, 21, 22, 26, nil, nil, nil,
55
+ 25, 23, 24, 30, 14, 28, 27, 29, nil, 17,
56
+ 18, 19, 20, 21, 22, 26, nil, nil, nil, 25,
57
+ 23, 24, 30, 14, 28, 27, 29, nil, 17, 18,
58
+ 19, 20, 21, 22, 26, nil, nil, nil, 25, 23,
59
+ 24, 30, 14, 28, 27, 29, nil, 17, 18, 19,
60
+ 20, 21, 22, 26, nil, nil, nil, 25, 23, 24,
61
+ 30, 14, 28, 27, 29, nil, 17, 18, 19, 20,
62
+ 21, 22, 26, nil, nil, nil, 25, 23, 24, 30,
63
+ 14, 28, 27, 29, nil, 17, 18, 19, 20, 21,
64
+ 22, 26, nil, nil, nil, 25, 23, 24, 30, 14,
65
+ 28, 27, 29, nil, 17, 18, 19, 20, 21, 22,
66
+ 26, nil, nil, nil, 25, 23, 24, 30, 14, 28,
67
+ 27, 29, nil, 17, 18, 19, 20, 21, 22, 26,
68
+ nil, nil, nil, 25, 23, 24, 30, 14, 28, 27,
69
+ 29, nil, 17, 18, 19, 20, 21, 22, 26, nil,
70
+ nil, nil, 25, 23, 24, 30, 14, 28, 27, 29,
71
+ nil, 17, 18, 19, 20, 21, 22, 26, nil, nil,
72
+ nil, 25, 23, 24, 30, 14, 28, 27, 29, nil,
73
+ 17, 18, 19, 20, 21, 22, 26, nil, nil, nil,
74
+ 25, 23, 24, 30, 14, 28, 27, 29, nil, 17,
75
+ 18, 19, 20, 21, 22, 26, nil, nil, nil, 25,
76
+ 23, 24, 30, 14, 28, 27, 29, nil, 17, 18,
77
+ 19, 20, 21, 22, 26, nil, nil, nil, 25, 23,
78
+ 24, 30, 14, 28, 27, 29, nil, 17, 18, 19,
79
+ 20, 21, 22, 26, nil, nil, nil, 25, 23, 24,
80
+ 30, 14, 28, 27, 29, nil, 17, 18, 19, 20,
81
+ 21, 22, 26, nil, nil, nil, 25, 23, 24, 30,
82
+ 14, 28, 27, 29, nil, 17, 18, 19, 20, 21,
83
+ 22, 26, nil, nil, nil, 25, 23, 24, 30, 14,
84
+ 28, 27, 29, nil, 17, 18, 19, 20, 21, 22,
85
+ 26, nil, nil, nil, 25, 23, 24, 30, 14, 28,
86
+ 27, 29, nil, 17, 18, 19, 20, 21, 22, 26,
87
+ nil, nil, nil, 25, 23, 24, 30, 14, 28, 27,
88
+ 29, nil, 17, 18, 19, 20, 21, 22, 26, nil,
89
+ nil, nil, 25, 23, 24, 30, 14, 28, 27, 29,
90
+ nil, 17, 18, 19, 20, 21, 22, 26, nil, nil,
91
+ nil, 25, 23, 24, 33, 14, nil, 43, 49, 44,
92
+ 45, 46, 42, 47, 48, 38, 39, 40, 41, 36,
93
+ 37, 50, 33, nil, 14, 43, 49, 44, 45, 46,
94
+ 42, 47, 48, 38, 39, 40, 41, 36, 37, 50,
95
+ 52, 51, 35, 34, 93, 33, 33, 86, 43, 43,
96
+ 49, 44, 45, 46, 42, 47, 48, 38, 39, 40,
97
+ 41, 36, 37, 50, 52, 51, 35, 34, 93, 33,
98
+ 33, nil, 43, 43, 49, 44, 45, 46, 42, 47,
99
+ 48, 38, 39, 40, 41, 36, 37, 50, 52, 51,
100
+ 35, 34, 33, nil, nil, 43, 49, 44, 45, 46,
101
+ 42, 47, 48, 38, 39, 40, 41, 36, 37, 50,
102
+ 52, 51, 35, 34, 33, nil, nil, 43, 49, 44,
103
+ 45, 46, 42, 47, 48, 38, 39, 40, 41, 36,
104
+ 37, 50, 52, 51, 35, 34, 33, nil, nil, 43,
105
+ 49, 44, 45, 46, 42, 47, 48, 38, 39, 40,
106
+ 41, 36, 37, 50, 52, 51, 35, 34, 33, nil,
107
+ nil, 43, 49, 44, 45, 46, 42, 47, 48, 38,
108
+ 39, 40, 41, 36, 37, 50, 52, 51, 35, 34,
109
+ 33, nil, nil, 43, 49, 44, 45, 46, 42, 47,
110
+ 48, 38, 39, 40, 41, 36, 37, 50, 52, 51,
111
+ 35, 34, 33, nil, nil, 43, 49, 44, 45, 46,
112
+ 42, 47, 48, 38, 39, 40, 41, 36, 37, 50,
113
+ 52, 51, 35, 34, 33, nil, nil, 43, 49, 44,
114
+ 45, 46, 42, 47, 48, 38, 39, 40, 41, 36,
115
+ 37, 50, 52, 51, 35, 33, nil, nil, 43, 49,
116
+ 44, 45, 46, 42, 47, 48, 38, 39, 40, 41,
117
+ 36, 37, 50, 52, 51, 33, nil, nil, 43, 49,
118
+ 44, 45, 46, 42, 47, 48, 38, 39, 40, 41,
119
+ 36, 37, 50, 52, 33, nil, nil, 43, 49, 44,
120
+ 45, 46, 42, 47, 48, 38, 39, 40, 41, 36,
121
+ 37, 33, nil, nil, 43, 49, 44, 45, 46, 42,
122
+ 47, 48, 38, 39, 40, 41, 33, nil, nil, 43,
123
+ 49, 44, 45, 46, 42, 47, 48, 38, 39, 40,
124
+ 41, 33, nil, nil, 43, 49, 44, 45, 46, 42,
125
+ 47, 48, 33, nil, nil, 43, 49, 44, 45, 46,
126
+ 42, 47, 48, 33, nil, nil, 43, 49, 44, 45,
127
+ 46, 42, 47, 48, 33, nil, nil, 43, 49, 44,
128
+ 45, 46, 42, 47, 48, 33, nil, nil, 43, 49,
129
+ 44, 45, 46, 42, 33, nil, nil, 43, 49, 44,
130
+ 45, 46, 42, 33, nil, nil, 43, 49, 44, 45,
131
+ 46, 33, nil, 33, 43, 49, 43, 49, 33, nil,
132
+ 33, 43, 49, 43 ]
133
+
134
+ racc_action_check = [
135
+ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
136
+ 0, 0, 0, 22, 2, 22, 0, 0, 0, 93,
137
+ 60, 93, 93, 93, 93, 93, 93, 93, 93, 93,
138
+ 93, 93, 87, 103, 87, 93, 93, 93, 26, 0,
139
+ 56, 0, 103, 56, 62, 14, 60, 14, 14, 14,
140
+ 2, 14, 14, 14, 14, 14, 14, 14, 93, 62,
141
+ 93, 14, 14, 14, 23, 27, 23, 23, 23, 103,
142
+ 23, 23, 23, 23, 23, 23, 23, 101, 29, 101,
143
+ 23, 23, 23, 24, 14, 24, 24, 24, 31, 24,
144
+ 24, 24, 24, 24, 24, 24, 106, 33, 106, 24,
145
+ 24, 24, 25, 23, 25, 25, 25, 58, 25, 25,
146
+ 25, 25, 25, 25, 25, 66, 92, 96, 25, 25,
147
+ 25, 28, 24, 28, 28, 28, 97, 28, 28, 28,
148
+ 28, 28, 28, 28, 104, 105, 108, 28, 28, 28,
149
+ 30, 25, 30, 30, 30, 109, 30, 30, 30, 30,
150
+ 30, 30, 30, 112, nil, nil, 30, 30, 30, 32,
151
+ 28, 32, 32, 32, nil, 32, 32, 32, 32, 32,
152
+ 32, 32, nil, nil, nil, 32, 32, 32, 34, 30,
153
+ 34, 34, 34, nil, 34, 34, 34, 34, 34, 34,
154
+ 34, nil, nil, nil, 34, 34, 34, 35, 32, 35,
155
+ 35, 35, nil, 35, 35, 35, 35, 35, 35, 35,
156
+ nil, nil, nil, 35, 35, 35, 36, 34, 36, 36,
157
+ 36, nil, 36, 36, 36, 36, 36, 36, 36, nil,
158
+ nil, nil, 36, 36, 36, 37, 35, 37, 37, 37,
159
+ nil, 37, 37, 37, 37, 37, 37, 37, nil, nil,
160
+ nil, 37, 37, 37, 38, 36, 38, 38, 38, nil,
161
+ 38, 38, 38, 38, 38, 38, 38, nil, nil, nil,
162
+ 38, 38, 38, 39, 37, 39, 39, 39, nil, 39,
163
+ 39, 39, 39, 39, 39, 39, nil, nil, nil, 39,
164
+ 39, 39, 40, 38, 40, 40, 40, nil, 40, 40,
165
+ 40, 40, 40, 40, 40, nil, nil, nil, 40, 40,
166
+ 40, 41, 39, 41, 41, 41, nil, 41, 41, 41,
167
+ 41, 41, 41, 41, nil, nil, nil, 41, 41, 41,
168
+ 42, 40, 42, 42, 42, nil, 42, 42, 42, 42,
169
+ 42, 42, 42, nil, nil, nil, 42, 42, 42, 43,
170
+ 41, 43, 43, 43, nil, 43, 43, 43, 43, 43,
171
+ 43, 43, nil, nil, nil, 43, 43, 43, 44, 42,
172
+ 44, 44, 44, nil, 44, 44, 44, 44, 44, 44,
173
+ 44, nil, nil, nil, 44, 44, 44, 45, 43, 45,
174
+ 45, 45, nil, 45, 45, 45, 45, 45, 45, 45,
175
+ nil, nil, nil, 45, 45, 45, 46, 44, 46, 46,
176
+ 46, nil, 46, 46, 46, 46, 46, 46, 46, nil,
177
+ nil, nil, 46, 46, 46, 47, 45, 47, 47, 47,
178
+ nil, 47, 47, 47, 47, 47, 47, 47, nil, nil,
179
+ nil, 47, 47, 47, 48, 46, 48, 48, 48, nil,
180
+ 48, 48, 48, 48, 48, 48, 48, nil, nil, nil,
181
+ 48, 48, 48, 49, 47, 49, 49, 49, nil, 49,
182
+ 49, 49, 49, 49, 49, 49, nil, nil, nil, 49,
183
+ 49, 49, 50, 48, 50, 50, 50, nil, 50, 50,
184
+ 50, 50, 50, 50, 50, nil, nil, nil, 50, 50,
185
+ 50, 51, 49, 51, 51, 51, nil, 51, 51, 51,
186
+ 51, 51, 51, 51, nil, nil, nil, 51, 51, 51,
187
+ 52, 50, 52, 52, 52, nil, 52, 52, 52, 52,
188
+ 52, 52, 52, nil, nil, nil, 52, 52, 52, 54,
189
+ 51, 54, 54, 54, nil, 54, 54, 54, 54, 54,
190
+ 54, 54, nil, nil, nil, 54, 54, 54, 55, 52,
191
+ 55, 55, 55, nil, 55, 55, 55, 55, 55, 55,
192
+ 55, nil, nil, nil, 55, 55, 55, 59, 54, 59,
193
+ 59, 59, nil, 59, 59, 59, 59, 59, 59, 59,
194
+ nil, nil, nil, 59, 59, 59, 98, 55, 98, 98,
195
+ 98, nil, 98, 98, 98, 98, 98, 98, 98, nil,
196
+ nil, nil, 98, 98, 98, 100, 59, 100, 100, 100,
197
+ nil, 100, 100, 100, 100, 100, 100, 100, nil, nil,
198
+ nil, 100, 100, 100, 85, 98, nil, 85, 85, 85,
199
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
200
+ 85, 85, 53, nil, 100, 53, 53, 53, 53, 53,
201
+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
202
+ 53, 53, 53, 53, 61, 57, 61, 53, 57, 61,
203
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
204
+ 61, 61, 61, 61, 61, 61, 61, 61, 63, 76,
205
+ 63, nil, 76, 63, 63, 63, 63, 63, 63, 63,
206
+ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
207
+ 63, 63, 3, nil, nil, 3, 3, 3, 3, 3,
208
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
209
+ 3, 3, 3, 3, 65, nil, nil, 65, 65, 65,
210
+ 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
211
+ 65, 65, 65, 65, 65, 65, 88, nil, nil, 88,
212
+ 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
213
+ 88, 88, 88, 88, 88, 88, 88, 88, 89, nil,
214
+ nil, 89, 89, 89, 89, 89, 89, 89, 89, 89,
215
+ 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
216
+ 90, nil, nil, 90, 90, 90, 90, 90, 90, 90,
217
+ 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
218
+ 90, 90, 107, nil, nil, 107, 107, 107, 107, 107,
219
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
220
+ 107, 107, 107, 107, 67, nil, nil, 67, 67, 67,
221
+ 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
222
+ 67, 67, 67, 67, 67, 68, nil, nil, 68, 68,
223
+ 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
224
+ 68, 68, 68, 68, 68, 84, nil, nil, 84, 84,
225
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
226
+ 84, 84, 84, 84, 83, nil, nil, 83, 83, 83,
227
+ 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
228
+ 83, 69, nil, nil, 69, 69, 69, 69, 69, 69,
229
+ 69, 69, 69, 69, 69, 69, 70, nil, nil, 70,
230
+ 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
231
+ 70, 71, nil, nil, 71, 71, 71, 71, 71, 71,
232
+ 71, 71, 72, nil, nil, 72, 72, 72, 72, 72,
233
+ 72, 72, 72, 73, nil, nil, 73, 73, 73, 73,
234
+ 73, 73, 73, 73, 74, nil, nil, 74, 74, 74,
235
+ 74, 74, 74, 74, 74, 80, nil, nil, 80, 80,
236
+ 80, 80, 80, 80, 81, nil, nil, 81, 81, 81,
237
+ 81, 81, 81, 75, nil, nil, 75, 75, 75, 75,
238
+ 75, 77, nil, 78, 77, 77, 78, 78, 79, nil,
239
+ 82, 79, 79, 82 ]
240
+
241
+ racc_action_pointer = [
242
+ -2, 1, 7, 705, nil, nil, nil, nil, nil, nil,
243
+ nil, nil, nil, nil, 43, nil, nil, nil, nil, nil,
244
+ nil, nil, -26, 62, 81, 100, -1, 52, 119, 64,
245
+ 138, 88, 157, 84, 176, 195, 214, 233, 252, 271,
246
+ 290, 309, 328, 347, 366, 385, 404, 423, 442, 461,
247
+ 480, 499, 518, 635, 537, 556, 23, 658, 90, 575,
248
+ 5, 659, 29, 683, nil, 727, 74, 837, 858, 914,
249
+ 929, 944, 955, 966, 977, 1006, 682, 1014, 1016, 1021,
250
+ 988, 997, 1023, 897, 878, 617, nil, -8, 749, 771,
251
+ 793, nil, 103, 17, nil, nil, 103, 119, 594, nil,
252
+ 613, 37, nil, 26, 119, 132, 56, 815, 121, 132,
253
+ nil, nil, 138, nil, nil, nil, nil ]
254
+
255
+ racc_action_default = [
256
+ -1, -67, -2, -3, -6, -7, -8, -9, -10, -11,
257
+ -12, -13, -14, -15, -67, -17, -18, -19, -20, -21,
258
+ -22, -23, -24, -67, -67, -67, -53, -67, -67, -67,
259
+ -67, -67, -5, -67, -67, -67, -67, -67, -67, -67,
260
+ -67, -67, -67, -67, -67, -67, -67, -67, -67, -67,
261
+ -67, -67, -67, -67, -28, -67, -50, -51, -52, -67,
262
+ -67, -67, -67, -67, 117, -4, -26, -31, -32, -33,
263
+ -34, -35, -36, -37, -38, -39, -40, -41, -42, -43,
264
+ -44, -45, -46, -47, -48, -49, -16, -67, -29, -54,
265
+ -55, -56, -58, -67, -61, -62, -67, -64, -28, -25,
266
+ -67, -67, -59, -67, -67, -67, -67, -30, -67, -67,
267
+ -66, -63, -67, -27, -57, -60, -65 ]
268
+
269
+ racc_goto_table = [
270
+ 32, 2, 53, 1, 91, 94, 95, 97, 101, 87,
271
+ nil, 56, 57, 58, nil, nil, 61, nil, 63, nil,
272
+ 65, nil, 67, 68, 69, 70, 71, 72, 73, 74,
273
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
274
+ 85, nil, 88, 89, nil, nil, nil, 90, 111, nil,
275
+ nil, nil, 114, 106, nil, nil, 116, nil, nil, nil,
276
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
277
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
278
+ nil, nil, nil, nil, nil, nil, 88, nil, 107, nil,
279
+ nil, nil, nil, nil, 103, nil, nil, nil, nil, nil,
280
+ nil, 32 ]
281
+
282
+ racc_goto_check = [
283
+ 4, 2, 3, 1, 15, 15, 15, 15, 16, 14,
284
+ nil, 3, 3, 3, nil, nil, 3, nil, 3, nil,
285
+ 3, nil, 3, 3, 3, 3, 3, 3, 3, 3,
286
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
287
+ 3, nil, 3, 3, nil, nil, nil, 3, 15, nil,
288
+ nil, nil, 15, 14, nil, nil, 15, nil, nil, nil,
289
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
290
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
291
+ nil, nil, nil, nil, nil, nil, 3, nil, 3, nil,
292
+ nil, nil, nil, nil, 2, nil, nil, nil, nil, nil,
293
+ nil, 4 ]
294
+
295
+ racc_goto_pointer = [
296
+ nil, 3, 1, -12, -2, nil, nil, nil, nil, nil,
297
+ nil, nil, nil, nil, -45, -56, -84 ]
298
+
299
+ racc_goto_default = [
300
+ nil, nil, nil, 3, 4, 5, 6, 7, 8, 9,
301
+ 10, 11, 12, 13, nil, nil, nil ]
302
+
303
+ racc_reduce_table = [
304
+ 0, 0, :racc_error,
305
+ 0, 45, :_reduce_1,
306
+ 1, 45, :_reduce_2,
307
+ 1, 46, :_reduce_3,
308
+ 3, 46, :_reduce_4,
309
+ 2, 46, :_reduce_5,
310
+ 1, 46, :_reduce_6,
311
+ 1, 47, :_reduce_none,
312
+ 1, 47, :_reduce_none,
313
+ 1, 47, :_reduce_none,
314
+ 1, 47, :_reduce_none,
315
+ 1, 47, :_reduce_none,
316
+ 1, 47, :_reduce_none,
317
+ 1, 47, :_reduce_none,
318
+ 1, 47, :_reduce_none,
319
+ 1, 47, :_reduce_none,
320
+ 3, 47, :_reduce_16,
321
+ 1, 48, :_reduce_none,
322
+ 1, 48, :_reduce_none,
323
+ 1, 49, :_reduce_19,
324
+ 1, 49, :_reduce_20,
325
+ 1, 49, :_reduce_21,
326
+ 1, 49, :_reduce_22,
327
+ 1, 49, :_reduce_23,
328
+ 1, 50, :_reduce_24,
329
+ 4, 50, :_reduce_25,
330
+ 3, 50, :_reduce_26,
331
+ 6, 50, :_reduce_27,
332
+ 0, 58, :_reduce_28,
333
+ 1, 58, :_reduce_29,
334
+ 3, 58, :_reduce_30,
335
+ 3, 51, :_reduce_31,
336
+ 3, 51, :_reduce_32,
337
+ 3, 51, :_reduce_33,
338
+ 3, 51, :_reduce_34,
339
+ 3, 51, :_reduce_35,
340
+ 3, 51, :_reduce_36,
341
+ 3, 51, :_reduce_37,
342
+ 3, 51, :_reduce_38,
343
+ 3, 51, :_reduce_39,
344
+ 3, 51, :_reduce_40,
345
+ 3, 51, :_reduce_41,
346
+ 3, 51, :_reduce_42,
347
+ 3, 51, :_reduce_43,
348
+ 3, 51, :_reduce_44,
349
+ 3, 51, :_reduce_45,
350
+ 3, 51, :_reduce_46,
351
+ 3, 51, :_reduce_47,
352
+ 3, 51, :_reduce_48,
353
+ 3, 51, :_reduce_49,
354
+ 2, 51, :_reduce_50,
355
+ 2, 51, :_reduce_51,
356
+ 2, 51, :_reduce_52,
357
+ 1, 52, :_reduce_53,
358
+ 3, 53, :_reduce_54,
359
+ 3, 53, :_reduce_55,
360
+ 3, 54, :_reduce_56,
361
+ 6, 54, :_reduce_57,
362
+ 0, 60, :_reduce_58,
363
+ 1, 60, :_reduce_59,
364
+ 3, 60, :_reduce_60,
365
+ 3, 57, :_reduce_61,
366
+ 3, 55, :_reduce_62,
367
+ 5, 55, :_reduce_63,
368
+ 3, 56, :_reduce_64,
369
+ 6, 56, :_reduce_65,
370
+ 3, 59, :_reduce_66 ]
371
+
372
+ racc_reduce_n = 67
373
+
374
+ racc_shift_n = 117
375
+
376
+ racc_token_table = {
377
+ false => 0,
378
+ :error => 1,
379
+ :IF => 2,
380
+ :ELSE => 3,
381
+ :WHILE => 4,
382
+ :DEF => 5,
383
+ :CLASS => 6,
384
+ :NEWLINE => 7,
385
+ :NUMBER => 8,
386
+ :STRING => 9,
387
+ :TRUE => 10,
388
+ :FALSE => 11,
389
+ :NIL => 12,
390
+ :IDENTIFIER => 13,
391
+ :CONSTANT => 14,
392
+ :INDENT => 15,
393
+ :DEDENT => 16,
394
+ "." => 17,
395
+ "~" => 18,
396
+ "!" => 19,
397
+ "-" => 20,
398
+ "**" => 21,
399
+ "*" => 22,
400
+ "/" => 23,
401
+ "%" => 24,
402
+ "+" => 25,
403
+ "<<" => 26,
404
+ ">>" => 27,
405
+ ">" => 28,
406
+ ">=" => 29,
407
+ "<" => 30,
408
+ "<=" => 31,
409
+ "==" => 32,
410
+ "!=" => 33,
411
+ "&" => 34,
412
+ "^" => 35,
413
+ "|" => 36,
414
+ "&&" => 37,
415
+ "||" => 38,
416
+ "=" => 39,
417
+ "," => 40,
418
+ "(" => 41,
419
+ ")" => 42,
420
+ ";" => 43 }
421
+
422
+ racc_nt_base = 44
423
+
424
+ racc_use_result_var = true
425
+
426
+ Racc_arg = [
427
+ racc_action_table,
428
+ racc_action_check,
429
+ racc_action_default,
430
+ racc_action_pointer,
431
+ racc_goto_table,
432
+ racc_goto_check,
433
+ racc_goto_default,
434
+ racc_goto_pointer,
435
+ racc_nt_base,
436
+ racc_reduce_table,
437
+ racc_token_table,
438
+ racc_shift_n,
439
+ racc_reduce_n,
440
+ racc_use_result_var ]
441
+
442
+ Racc_token_to_s_table = [
443
+ "$end",
444
+ "error",
445
+ "IF",
446
+ "ELSE",
447
+ "WHILE",
448
+ "DEF",
449
+ "CLASS",
450
+ "NEWLINE",
451
+ "NUMBER",
452
+ "STRING",
453
+ "TRUE",
454
+ "FALSE",
455
+ "NIL",
456
+ "IDENTIFIER",
457
+ "CONSTANT",
458
+ "INDENT",
459
+ "DEDENT",
460
+ "\".\"",
461
+ "\"~\"",
462
+ "\"!\"",
463
+ "\"-\"",
464
+ "\"**\"",
465
+ "\"*\"",
466
+ "\"/\"",
467
+ "\"%\"",
468
+ "\"+\"",
469
+ "\"<<\"",
470
+ "\">>\"",
471
+ "\">\"",
472
+ "\">=\"",
473
+ "\"<\"",
474
+ "\"<=\"",
475
+ "\"==\"",
476
+ "\"!=\"",
477
+ "\"&\"",
478
+ "\"^\"",
479
+ "\"|\"",
480
+ "\"&&\"",
481
+ "\"||\"",
482
+ "\"=\"",
483
+ "\",\"",
484
+ "\"(\"",
485
+ "\")\"",
486
+ "\";\"",
487
+ "$start",
488
+ "Root",
489
+ "Expressions",
490
+ "Expression",
491
+ "Terminator",
492
+ "Literal",
493
+ "Call",
494
+ "Operator",
495
+ "Constant",
496
+ "Assign",
497
+ "Def",
498
+ "Class",
499
+ "IfElse",
500
+ "While",
501
+ "ArgList",
502
+ "Block",
503
+ "ParamList" ]
504
+
505
+ Racc_debug_parser = false
506
+
507
+ ##### State transition tables end #####
508
+
509
+ # reduce 0 omitted
510
+
511
+ module_eval(<<'.,.,', 'grammar.y', 36)
512
+ def _reduce_1(val, _values, result)
513
+ result = Nodes.new([])
514
+ result
515
+ end
516
+ .,.,
517
+
518
+ module_eval(<<'.,.,', 'grammar.y', 37)
519
+ def _reduce_2(val, _values, result)
520
+ result = val[0]
521
+ result
522
+ end
523
+ .,.,
524
+
525
+ module_eval(<<'.,.,', 'grammar.y', 41)
526
+ def _reduce_3(val, _values, result)
527
+ result = Nodes.new(val)
528
+ result
529
+ end
530
+ .,.,
531
+
532
+ module_eval(<<'.,.,', 'grammar.y', 42)
533
+ def _reduce_4(val, _values, result)
534
+ result = val[0] << val[2]
535
+ result
536
+ end
537
+ .,.,
538
+
539
+ module_eval(<<'.,.,', 'grammar.y', 43)
540
+ def _reduce_5(val, _values, result)
541
+ result = val[0]
542
+ result
543
+ end
544
+ .,.,
545
+
546
+ module_eval(<<'.,.,', 'grammar.y', 44)
547
+ def _reduce_6(val, _values, result)
548
+ result = Nodes.new([])
549
+ result
550
+ end
551
+ .,.,
552
+
553
+ # reduce 7 omitted
554
+
555
+ # reduce 8 omitted
556
+
557
+ # reduce 9 omitted
558
+
559
+ # reduce 10 omitted
560
+
561
+ # reduce 11 omitted
562
+
563
+ # reduce 12 omitted
564
+
565
+ # reduce 13 omitted
566
+
567
+ # reduce 14 omitted
568
+
569
+ # reduce 15 omitted
570
+
571
+ module_eval(<<'.,.,', 'grammar.y', 57)
572
+ def _reduce_16(val, _values, result)
573
+ result = val[1]
574
+ result
575
+ end
576
+ .,.,
577
+
578
+ # reduce 17 omitted
579
+
580
+ # reduce 18 omitted
581
+
582
+ module_eval(<<'.,.,', 'grammar.y', 66)
583
+ def _reduce_19(val, _values, result)
584
+ result = NumberNode.new(val[0])
585
+ result
586
+ end
587
+ .,.,
588
+
589
+ module_eval(<<'.,.,', 'grammar.y', 67)
590
+ def _reduce_20(val, _values, result)
591
+ result = StringNode.new(val[0])
592
+ result
593
+ end
594
+ .,.,
595
+
596
+ module_eval(<<'.,.,', 'grammar.y', 68)
597
+ def _reduce_21(val, _values, result)
598
+ result = TrueNode.new
599
+ result
600
+ end
601
+ .,.,
602
+
603
+ module_eval(<<'.,.,', 'grammar.y', 69)
604
+ def _reduce_22(val, _values, result)
605
+ result = FalseNode.new
606
+ result
607
+ end
608
+ .,.,
609
+
610
+ module_eval(<<'.,.,', 'grammar.y', 70)
611
+ def _reduce_23(val, _values, result)
612
+ result = NilNode.new
613
+ result
614
+ end
615
+ .,.,
616
+
617
+ module_eval(<<'.,.,', 'grammar.y', 75)
618
+ def _reduce_24(val, _values, result)
619
+ result = CallNode.new(nil, val[0], [])
620
+ result
621
+ end
622
+ .,.,
623
+
624
+ module_eval(<<'.,.,', 'grammar.y', 77)
625
+ def _reduce_25(val, _values, result)
626
+ result = CallNode.new(nil, val[0], val[2])
627
+ result
628
+ end
629
+ .,.,
630
+
631
+ module_eval(<<'.,.,', 'grammar.y', 79)
632
+ def _reduce_26(val, _values, result)
633
+ result = CallNode.new(val[0], val[2], [])
634
+ result
635
+ end
636
+ .,.,
637
+
638
+ module_eval(<<'.,.,', 'grammar.y', 82)
639
+ def _reduce_27(val, _values, result)
640
+ result = CallNode.new(val[0], val[2], val[4])
641
+ result
642
+ end
643
+ .,.,
644
+
645
+ module_eval(<<'.,.,', 'grammar.y', 86)
646
+ def _reduce_28(val, _values, result)
647
+ result = []
648
+ result
649
+ end
650
+ .,.,
651
+
652
+ module_eval(<<'.,.,', 'grammar.y', 87)
653
+ def _reduce_29(val, _values, result)
654
+ result = val
655
+ result
656
+ end
657
+ .,.,
658
+
659
+ module_eval(<<'.,.,', 'grammar.y', 88)
660
+ def _reduce_30(val, _values, result)
661
+ result = val[0] << val[2]
662
+ result
663
+ end
664
+ .,.,
665
+
666
+ module_eval(<<'.,.,', 'grammar.y', 92)
667
+ def _reduce_31(val, _values, result)
668
+ result = CallNode.new(val[0], val[1], [val[2]])
669
+ result
670
+ end
671
+ .,.,
672
+
673
+ module_eval(<<'.,.,', 'grammar.y', 93)
674
+ def _reduce_32(val, _values, result)
675
+ result = CallNode.new(val[0], val[1], [val[2]])
676
+ result
677
+ end
678
+ .,.,
679
+
680
+ module_eval(<<'.,.,', 'grammar.y', 94)
681
+ def _reduce_33(val, _values, result)
682
+ result = CallNode.new(val[0], val[1], [val[2]])
683
+ result
684
+ end
685
+ .,.,
686
+
687
+ module_eval(<<'.,.,', 'grammar.y', 95)
688
+ def _reduce_34(val, _values, result)
689
+ result = CallNode.new(val[0], val[1], [val[2]])
690
+ result
691
+ end
692
+ .,.,
693
+
694
+ module_eval(<<'.,.,', 'grammar.y', 96)
695
+ def _reduce_35(val, _values, result)
696
+ result = CallNode.new(val[0], val[1], [val[2]])
697
+ result
698
+ end
699
+ .,.,
700
+
701
+ module_eval(<<'.,.,', 'grammar.y', 97)
702
+ def _reduce_36(val, _values, result)
703
+ result = CallNode.new(val[0], val[1], [val[2]])
704
+ result
705
+ end
706
+ .,.,
707
+
708
+ module_eval(<<'.,.,', 'grammar.y', 98)
709
+ def _reduce_37(val, _values, result)
710
+ result = CallNode.new(val[0], val[1], [val[2]])
711
+ result
712
+ end
713
+ .,.,
714
+
715
+ module_eval(<<'.,.,', 'grammar.y', 99)
716
+ def _reduce_38(val, _values, result)
717
+ result = CallNode.new(val[0], val[1], [val[2]])
718
+ result
719
+ end
720
+ .,.,
721
+
722
+ module_eval(<<'.,.,', 'grammar.y', 100)
723
+ def _reduce_39(val, _values, result)
724
+ result = CallNode.new(val[0], val[1], [val[2]])
725
+ result
726
+ end
727
+ .,.,
728
+
729
+ module_eval(<<'.,.,', 'grammar.y', 101)
730
+ def _reduce_40(val, _values, result)
731
+ result = CallNode.new(val[0], val[1], [val[2]])
732
+ result
733
+ end
734
+ .,.,
735
+
736
+ module_eval(<<'.,.,', 'grammar.y', 102)
737
+ def _reduce_41(val, _values, result)
738
+ result = CallNode.new(val[0], val[1], [val[2]])
739
+ result
740
+ end
741
+ .,.,
742
+
743
+ module_eval(<<'.,.,', 'grammar.y', 103)
744
+ def _reduce_42(val, _values, result)
745
+ result = CallNode.new(val[0], val[1], [val[2]])
746
+ result
747
+ end
748
+ .,.,
749
+
750
+ module_eval(<<'.,.,', 'grammar.y', 104)
751
+ def _reduce_43(val, _values, result)
752
+ result = CallNode.new(val[0], val[1], [val[2]])
753
+ result
754
+ end
755
+ .,.,
756
+
757
+ module_eval(<<'.,.,', 'grammar.y', 105)
758
+ def _reduce_44(val, _values, result)
759
+ result = CallNode.new(val[0], val[1], [val[2]])
760
+ result
761
+ end
762
+ .,.,
763
+
764
+ module_eval(<<'.,.,', 'grammar.y', 106)
765
+ def _reduce_45(val, _values, result)
766
+ result = CallNode.new(val[0], val[1], [val[2]])
767
+ result
768
+ end
769
+ .,.,
770
+
771
+ module_eval(<<'.,.,', 'grammar.y', 107)
772
+ def _reduce_46(val, _values, result)
773
+ result = CallNode.new(val[0], val[1], [val[2]])
774
+ result
775
+ end
776
+ .,.,
777
+
778
+ module_eval(<<'.,.,', 'grammar.y', 108)
779
+ def _reduce_47(val, _values, result)
780
+ result = CallNode.new(val[0], val[1], [val[2]])
781
+ result
782
+ end
783
+ .,.,
784
+
785
+ module_eval(<<'.,.,', 'grammar.y', 109)
786
+ def _reduce_48(val, _values, result)
787
+ result = CallNode.new(val[0], val[1], [val[2]])
788
+ result
789
+ end
790
+ .,.,
791
+
792
+ module_eval(<<'.,.,', 'grammar.y', 110)
793
+ def _reduce_49(val, _values, result)
794
+ result = CallNode.new(val[0], val[1], [val[2]])
795
+ result
796
+ end
797
+ .,.,
798
+
799
+ module_eval(<<'.,.,', 'grammar.y', 111)
800
+ def _reduce_50(val, _values, result)
801
+ result = CallNode.new(val[1], val[0], [])
802
+ result
803
+ end
804
+ .,.,
805
+
806
+ module_eval(<<'.,.,', 'grammar.y', 112)
807
+ def _reduce_51(val, _values, result)
808
+ result = CallNode.new(val[1], val[0], [])
809
+ result
810
+ end
811
+ .,.,
812
+
813
+ module_eval(<<'.,.,', 'grammar.y', 113)
814
+ def _reduce_52(val, _values, result)
815
+ result = CallNode.new(val[1], val[0], [])
816
+ result
817
+ end
818
+ .,.,
819
+
820
+ module_eval(<<'.,.,', 'grammar.y', 117)
821
+ def _reduce_53(val, _values, result)
822
+ result = GetConstantNode.new(val[0])
823
+ result
824
+ end
825
+ .,.,
826
+
827
+ module_eval(<<'.,.,', 'grammar.y', 121)
828
+ def _reduce_54(val, _values, result)
829
+ result = SetLocalNode.new(val[0], val[2])
830
+ result
831
+ end
832
+ .,.,
833
+
834
+ module_eval(<<'.,.,', 'grammar.y', 122)
835
+ def _reduce_55(val, _values, result)
836
+ result = SetConstantNode.new(val[0], val[2])
837
+ result
838
+ end
839
+ .,.,
840
+
841
+ module_eval(<<'.,.,', 'grammar.y', 126)
842
+ def _reduce_56(val, _values, result)
843
+ result = DefNode.new(val[1], [], val[2])
844
+ result
845
+ end
846
+ .,.,
847
+
848
+ module_eval(<<'.,.,', 'grammar.y', 128)
849
+ def _reduce_57(val, _values, result)
850
+ result = DefNode.new(val[1], val[3], val[5])
851
+ result
852
+ end
853
+ .,.,
854
+
855
+ module_eval(<<'.,.,', 'grammar.y', 132)
856
+ def _reduce_58(val, _values, result)
857
+ result = []
858
+ result
859
+ end
860
+ .,.,
861
+
862
+ module_eval(<<'.,.,', 'grammar.y', 133)
863
+ def _reduce_59(val, _values, result)
864
+ result = val
865
+ result
866
+ end
867
+ .,.,
868
+
869
+ module_eval(<<'.,.,', 'grammar.y', 134)
870
+ def _reduce_60(val, _values, result)
871
+ result = val[0] << val[2]
872
+ result
873
+ end
874
+ .,.,
875
+
876
+ module_eval(<<'.,.,', 'grammar.y', 138)
877
+ def _reduce_61(val, _values, result)
878
+ result = WhileNode.new(val[1], val[2])
879
+ result
880
+ end
881
+ .,.,
882
+
883
+ module_eval(<<'.,.,', 'grammar.y', 142)
884
+ def _reduce_62(val, _values, result)
885
+ result = ClassNode.new(val[1], val[2], nil)
886
+ result
887
+ end
888
+ .,.,
889
+
890
+ module_eval(<<'.,.,', 'grammar.y', 143)
891
+ def _reduce_63(val, _values, result)
892
+ result = ClassNode.new(val[1], val[4], val[3])
893
+ result
894
+ end
895
+ .,.,
896
+
897
+ module_eval(<<'.,.,', 'grammar.y', 147)
898
+ def _reduce_64(val, _values, result)
899
+ result = IfElseNode.new(val[1], val[2], nil)
900
+ result
901
+ end
902
+ .,.,
903
+
904
+ module_eval(<<'.,.,', 'grammar.y', 148)
905
+ def _reduce_65(val, _values, result)
906
+ result = IfElseNode.new(val[1], val[2], val[5])
907
+ result
908
+ end
909
+ .,.,
910
+
911
+ module_eval(<<'.,.,', 'grammar.y', 152)
912
+ def _reduce_66(val, _values, result)
913
+ result = val[1]
914
+ result
915
+ end
916
+ .,.,
917
+
918
+ def _reduce_none(val, _values, result)
919
+ val[0]
920
+ end
921
+
922
+ end # class Parser