sol 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,79 @@
1
+ module Sol
2
+
3
+ # Collection of nodes each one representing an expression.
4
+ class Nodes < Struct.new(:nodes)
5
+
6
+ def <<(node)
7
+
8
+ nodes << node
9
+
10
+ return self
11
+
12
+ end
13
+
14
+ end
15
+
16
+ # Literals are static values that have a Ruby representation, eg.: a string, a number,
17
+ # true, false, nil, etc.
18
+ class LiteralNode < Struct.new(:value); end
19
+
20
+ class NumberNode < LiteralNode; end
21
+
22
+ class StringNode < LiteralNode; end
23
+
24
+ class TrueNode < LiteralNode
25
+
26
+ def initialize
27
+
28
+ super(true)
29
+
30
+ end
31
+
32
+ end
33
+
34
+ class FalseNode < LiteralNode
35
+
36
+ def initialize
37
+
38
+ super(false)
39
+
40
+ end
41
+
42
+ end
43
+
44
+ class NullNode < LiteralNode
45
+
46
+ def initialize
47
+
48
+ super(nil)
49
+
50
+ end
51
+
52
+ end
53
+
54
+ # Node of a method call or local variable access, can take any of these forms:
55
+ #
56
+ # method # this form can also be a local variable
57
+ # method(argument1, argument2)
58
+ # receiver.method
59
+ # receiver.method(argument1, argument2)
60
+ #
61
+ class CallNode < Struct.new(:receiver, :method, :arguments); end
62
+
63
+ # Retrieving the value of a constant.
64
+ class GetConstantNode < Struct.new(:name); end
65
+
66
+ # Setting the value of a constant.
67
+ class SetConstantNode < Struct.new(:name, :value); end
68
+
69
+ # Setting the value of a local variable.
70
+ class SetLocalNode < Struct.new(:name, :value); end
71
+
72
+ # Method definition.
73
+ class FuncNode < Struct.new(:name, :params, :body); end
74
+
75
+ # "if" control structure. Look at this node if you want to implement other control
76
+ # structures like while, for, loop, etc.
77
+ class IfNode < Struct.new(:condition, :body); end
78
+
79
+ end
@@ -0,0 +1,639 @@
1
+ #
2
+ # DO NOT MODIFY!!!!
3
+ # This file is automatically generated by Racc 1.4.9
4
+ # from Racc grammer file "".
5
+ #
6
+
7
+ require 'racc/parser.rb'
8
+
9
+
10
+ require_relative "lexer"
11
+
12
+ require_relative "nodes"
13
+
14
+ module Sol
15
+
16
+ class Parser < Racc::Parser
17
+
18
+ module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 158)
19
+
20
+ # This code will be puts as-is in the Parser class
21
+ def parse(input, show_tokens=true)
22
+
23
+ @tokens = Sol::Lexer.new.tokenise(input) # Tokenise the code using our lexer
24
+
25
+ puts @tokens.inspect if show_tokens
26
+
27
+ do_parse # Kickoff the parsing process
28
+
29
+ end
30
+
31
+ def next_token
32
+
33
+ @tokens.shift
34
+
35
+ end
36
+
37
+ ...end grammar.y/module_eval...
38
+ ##### State transition tables begin ###
39
+
40
+ racc_action_table = [
41
+ 23, 22, 13, 15, 16, 17, 18, 19, 20, 21,
42
+ 23, 22, 13, 15, 16, 17, 18, 19, 20, 21,
43
+ 27, 65, 38, 39, 36, 37, 12, 27, 14, 27,
44
+ 78, 38, 39, 36, 37, 70, 12, 79, 14, 23,
45
+ 22, 13, 15, 16, 17, 18, 19, 20, 21, 23,
46
+ 22, 13, 15, 16, 17, 18, 19, 20, 21, 27,
47
+ 72, 38, 39, 36, 37, 12, 27, 14, 38, 39,
48
+ 36, 37, 42, 68, 41, 12, 27, 14, 23, 22,
49
+ 47, 15, 16, 17, 18, 19, 20, 21, 23, 22,
50
+ 46, 15, 16, 17, 18, 19, 20, 21, 27, 44,
51
+ 38, 39, 23, 22, 12, 15, 16, 17, 18, 19,
52
+ 20, 21, 23, 22, 12, 15, 16, 17, 18, 19,
53
+ 20, 21, 27, 43, 38, 39, 23, 22, 12, 15,
54
+ 16, 17, 18, 19, 20, 21, 23, 22, 12, 15,
55
+ 16, 17, 18, 19, 20, 21, 70, 77, 69, 76,
56
+ 23, 22, 12, 15, 16, 17, 18, 19, 20, 21,
57
+ 23, 22, 12, 15, 16, 17, 18, 19, 20, 21,
58
+ 24, 67, 81, nil, 23, 22, 12, 15, 16, 17,
59
+ 18, 19, 20, 21, 23, 22, 12, 15, 16, 17,
60
+ 18, 19, 20, 21, nil, nil, nil, nil, 23, 22,
61
+ 12, 15, 16, 17, 18, 19, 20, 21, 23, 22,
62
+ 12, 15, 16, 17, 18, 19, 20, 21, nil, nil,
63
+ nil, nil, 23, 22, 12, 15, 16, 17, 18, 19,
64
+ 20, 21, 23, 22, 12, 15, 16, 17, 18, 19,
65
+ 20, 21, nil, nil, nil, nil, 23, 22, 12, 15,
66
+ 16, 17, 18, 19, 20, 21, 23, 22, 12, 15,
67
+ 16, 17, 18, 19, 20, 21, nil, nil, nil, nil,
68
+ 23, 22, 12, 15, 16, 17, 18, 19, 20, 21,
69
+ 23, 22, 12, 15, 16, 17, 18, 19, 20, 21,
70
+ nil, nil, nil, nil, 23, 22, 12, 15, 16, 17,
71
+ 18, 19, 20, 21, nil, 27, 12, 38, 39, 36,
72
+ 37, 32, 33, 34, 35, 30, 31, 29, 28, nil,
73
+ 12, nil, nil, 27, 67, 38, 39, 36, 37, 32,
74
+ 33, 34, 35, 30, 31, 29, 28, nil, nil, 27,
75
+ 60, 38, 39, 36, 37, 32, 33, 34, 35, 30,
76
+ 31, 29, 28, 27, nil, 38, 39, 36, 37, 32,
77
+ 33, 34, 35, 30, 31, 29, 28, 27, nil, 38,
78
+ 39, 36, 37, 32, 33, 34, 35, 30, 31, 29,
79
+ 28, 27, nil, 38, 39, 36, 37, 32, 33, 34,
80
+ 35, 30, 31, 29, 28, 27, nil, 38, 39, 36,
81
+ 37, 32, 33, 34, 35, 30, 31, 29, 28, 27,
82
+ nil, 38, 39, 36, 37, 32, 33, 34, 35, 30,
83
+ 31, 29, 28, 27, nil, 38, 39, 36, 37, 32,
84
+ 33, 34, 35, 30, 31, 29, 27, nil, 38, 39,
85
+ 36, 37, 32, 33, 34, 35, 30, 31, 27, nil,
86
+ 38, 39, 36, 37, 32, 33, 34, 35, 27, nil,
87
+ 38, 39, 36, 37, 32, 33, 34, 35 ]
88
+
89
+ racc_action_check = [
90
+ 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
91
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
92
+ 52, 44, 52, 52, 52, 52, 73, 58, 73, 53,
93
+ 73, 53, 53, 53, 53, 74, 2, 74, 2, 67,
94
+ 67, 67, 67, 67, 67, 67, 67, 67, 67, 0,
95
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 54,
96
+ 65, 54, 54, 54, 54, 67, 55, 67, 55, 55,
97
+ 55, 55, 20, 47, 20, 0, 59, 0, 70, 70,
98
+ 27, 70, 70, 70, 70, 70, 70, 70, 43, 43,
99
+ 24, 43, 43, 43, 43, 43, 43, 43, 56, 22,
100
+ 56, 56, 42, 42, 70, 42, 42, 42, 42, 42,
101
+ 42, 42, 68, 68, 43, 68, 68, 68, 68, 68,
102
+ 68, 68, 57, 21, 57, 57, 23, 23, 42, 23,
103
+ 23, 23, 23, 23, 23, 23, 41, 41, 68, 41,
104
+ 41, 41, 41, 41, 41, 41, 61, 71, 61, 71,
105
+ 39, 39, 23, 39, 39, 39, 39, 39, 39, 39,
106
+ 12, 12, 41, 12, 12, 12, 12, 12, 12, 12,
107
+ 1, 76, 77, nil, 28, 28, 39, 28, 28, 28,
108
+ 28, 28, 28, 28, 29, 29, 12, 29, 29, 29,
109
+ 29, 29, 29, 29, nil, nil, nil, nil, 30, 30,
110
+ 28, 30, 30, 30, 30, 30, 30, 30, 31, 31,
111
+ 29, 31, 31, 31, 31, 31, 31, 31, nil, nil,
112
+ nil, nil, 32, 32, 30, 32, 32, 32, 32, 32,
113
+ 32, 32, 33, 33, 31, 33, 33, 33, 33, 33,
114
+ 33, 33, nil, nil, nil, nil, 34, 34, 32, 34,
115
+ 34, 34, 34, 34, 34, 34, 35, 35, 33, 35,
116
+ 35, 35, 35, 35, 35, 35, nil, nil, nil, nil,
117
+ 36, 36, 34, 36, 36, 36, 36, 36, 36, 36,
118
+ 37, 37, 35, 37, 37, 37, 37, 37, 37, 37,
119
+ nil, nil, nil, nil, 38, 38, 36, 38, 38, 38,
120
+ 38, 38, 38, 38, nil, 45, 37, 45, 45, 45,
121
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, nil,
122
+ 38, nil, nil, 40, 45, 40, 40, 40, 40, 40,
123
+ 40, 40, 40, 40, 40, 40, 40, nil, nil, 64,
124
+ 40, 64, 64, 64, 64, 64, 64, 64, 64, 64,
125
+ 64, 64, 64, 63, nil, 63, 63, 63, 63, 63,
126
+ 63, 63, 63, 63, 63, 63, 63, 75, nil, 75,
127
+ 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
128
+ 75, 3, nil, 3, 3, 3, 3, 3, 3, 3,
129
+ 3, 3, 3, 3, 3, 25, nil, 25, 25, 25,
130
+ 25, 25, 25, 25, 25, 25, 25, 25, 25, 62,
131
+ nil, 62, 62, 62, 62, 62, 62, 62, 62, 62,
132
+ 62, 62, 62, 48, nil, 48, 48, 48, 48, 48,
133
+ 48, 48, 48, 48, 48, 48, 49, nil, 49, 49,
134
+ 49, 49, 49, 49, 49, 49, 49, 49, 50, nil,
135
+ 50, 50, 50, 50, 50, 50, 50, 50, 51, nil,
136
+ 51, 51, 51, 51, 51, 51, 51, 51 ]
137
+
138
+ racc_action_pointer = [
139
+ 47, 170, 8, 369, nil, nil, nil, nil, nil, nil,
140
+ nil, nil, 158, nil, nil, nil, nil, nil, nil, nil,
141
+ 46, 97, 89, 124, 90, 383, nil, 70, 172, 182,
142
+ 196, 206, 220, 230, 244, 254, 268, 278, 292, 148,
143
+ 311, 134, 100, 86, -7, 293, nil, 45, 411, 424,
144
+ 436, 446, 8, 17, 47, 54, 86, 110, 15, 64,
145
+ nil, 119, 397, 341, 327, 50, nil, 37, 110, nil,
146
+ 76, 120, nil, -2, 8, 355, 140, 162, nil, nil,
147
+ nil, nil ]
148
+
149
+ racc_action_default = [
150
+ -1, -48, -2, -3, -6, -7, -8, -9, -10, -11,
151
+ -12, -13, -48, -15, -16, -17, -18, -19, -20, -21,
152
+ -48, -39, -48, -48, -48, -4, -5, -48, -48, -48,
153
+ -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
154
+ -48, -24, -48, -48, -48, -48, 82, -48, -27, -28,
155
+ -29, -30, -31, -32, -33, -34, -35, -36, -37, -38,
156
+ -14, -48, -25, -40, -41, -43, -46, -48, -24, -22,
157
+ -48, -48, -44, -48, -48, -26, -48, -48, -47, -23,
158
+ -42, -45 ]
159
+
160
+ racc_goto_table = [
161
+ 26, 25, 71, 2, 1, nil, nil, nil, 66, nil,
162
+ nil, 40, nil, nil, nil, nil, 61, nil, nil, nil,
163
+ nil, nil, 45, nil, nil, nil, nil, 48, 49, 50,
164
+ 51, 52, 53, 54, 55, 56, 57, 58, 59, 80,
165
+ 62, 63, 64, 74, nil, nil, nil, nil, nil, nil,
166
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
167
+ nil, nil, nil, nil, nil, nil, nil, 62, nil, 75,
168
+ 73, 26, 25 ]
169
+
170
+ racc_goto_check = [
171
+ 4, 3, 13, 2, 1, nil, nil, nil, 14, nil,
172
+ nil, 3, nil, nil, nil, nil, 12, nil, nil, nil,
173
+ nil, nil, 3, nil, nil, nil, nil, 3, 3, 3,
174
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 14,
175
+ 3, 3, 3, 12, nil, nil, nil, nil, nil, nil,
176
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
177
+ nil, nil, nil, nil, nil, nil, nil, 3, nil, 3,
178
+ 2, 4, 3 ]
179
+
180
+ racc_goto_pointer = [
181
+ nil, 4, 3, -1, -2, nil, nil, nil, nil, nil,
182
+ nil, nil, -25, -63, -37 ]
183
+
184
+ racc_goto_default = [
185
+ nil, nil, nil, 3, 4, 5, 6, 7, 8, 9,
186
+ 10, 11, nil, nil, nil ]
187
+
188
+ racc_reduce_table = [
189
+ 0, 0, :racc_error,
190
+ 0, 34, :_reduce_1,
191
+ 1, 34, :_reduce_2,
192
+ 1, 35, :_reduce_3,
193
+ 2, 35, :_reduce_4,
194
+ 2, 35, :_reduce_5,
195
+ 1, 35, :_reduce_6,
196
+ 1, 36, :_reduce_none,
197
+ 1, 36, :_reduce_none,
198
+ 1, 36, :_reduce_none,
199
+ 1, 36, :_reduce_none,
200
+ 1, 36, :_reduce_none,
201
+ 1, 36, :_reduce_none,
202
+ 1, 36, :_reduce_none,
203
+ 3, 36, :_reduce_14,
204
+ 1, 37, :_reduce_none,
205
+ 1, 37, :_reduce_none,
206
+ 1, 38, :_reduce_17,
207
+ 1, 38, :_reduce_18,
208
+ 1, 38, :_reduce_19,
209
+ 1, 38, :_reduce_20,
210
+ 1, 38, :_reduce_21,
211
+ 4, 39, :_reduce_22,
212
+ 6, 39, :_reduce_23,
213
+ 0, 45, :_reduce_24,
214
+ 1, 45, :_reduce_25,
215
+ 3, 45, :_reduce_26,
216
+ 3, 40, :_reduce_27,
217
+ 3, 40, :_reduce_28,
218
+ 3, 40, :_reduce_29,
219
+ 3, 40, :_reduce_30,
220
+ 3, 40, :_reduce_31,
221
+ 3, 40, :_reduce_32,
222
+ 3, 40, :_reduce_33,
223
+ 3, 40, :_reduce_34,
224
+ 3, 40, :_reduce_35,
225
+ 3, 40, :_reduce_36,
226
+ 3, 40, :_reduce_37,
227
+ 3, 40, :_reduce_38,
228
+ 1, 41, :_reduce_39,
229
+ 3, 42, :_reduce_40,
230
+ 3, 42, :_reduce_41,
231
+ 6, 43, :_reduce_42,
232
+ 0, 46, :_reduce_none,
233
+ 1, 46, :_reduce_44,
234
+ 3, 46, :_reduce_45,
235
+ 3, 44, :_reduce_46,
236
+ 3, 47, :_reduce_47 ]
237
+
238
+ racc_reduce_n = 48
239
+
240
+ racc_shift_n = 82
241
+
242
+ racc_token_table = {
243
+ false => 0,
244
+ :error => 1,
245
+ :IF => 2,
246
+ :FUNC => 3,
247
+ :NEWLINE => 4,
248
+ :NUMBER => 5,
249
+ :STRING => 6,
250
+ :TRUE => 7,
251
+ :FALSE => 8,
252
+ :NULL => 9,
253
+ :IDENTIFIER => 10,
254
+ :CONSTANT => 11,
255
+ "." => 12,
256
+ "!" => 13,
257
+ "*" => 14,
258
+ "/" => 15,
259
+ "+" => 16,
260
+ "-" => 17,
261
+ ">" => 18,
262
+ ">=" => 19,
263
+ "<" => 20,
264
+ "<=" => 21,
265
+ "==" => 22,
266
+ "!=" => 23,
267
+ "&&" => 24,
268
+ "||" => 25,
269
+ "=" => 26,
270
+ "," => 27,
271
+ "(" => 28,
272
+ ")" => 29,
273
+ ";" => 30,
274
+ "{" => 31,
275
+ "}" => 32 }
276
+
277
+ racc_nt_base = 33
278
+
279
+ racc_use_result_var = true
280
+
281
+ Racc_arg = [
282
+ racc_action_table,
283
+ racc_action_check,
284
+ racc_action_default,
285
+ racc_action_pointer,
286
+ racc_goto_table,
287
+ racc_goto_check,
288
+ racc_goto_default,
289
+ racc_goto_pointer,
290
+ racc_nt_base,
291
+ racc_reduce_table,
292
+ racc_token_table,
293
+ racc_shift_n,
294
+ racc_reduce_n,
295
+ racc_use_result_var ]
296
+
297
+ Racc_token_to_s_table = [
298
+ "$end",
299
+ "error",
300
+ "IF",
301
+ "FUNC",
302
+ "NEWLINE",
303
+ "NUMBER",
304
+ "STRING",
305
+ "TRUE",
306
+ "FALSE",
307
+ "NULL",
308
+ "IDENTIFIER",
309
+ "CONSTANT",
310
+ "\".\"",
311
+ "\"!\"",
312
+ "\"*\"",
313
+ "\"/\"",
314
+ "\"+\"",
315
+ "\"-\"",
316
+ "\">\"",
317
+ "\">=\"",
318
+ "\"<\"",
319
+ "\"<=\"",
320
+ "\"==\"",
321
+ "\"!=\"",
322
+ "\"&&\"",
323
+ "\"||\"",
324
+ "\"=\"",
325
+ "\",\"",
326
+ "\"(\"",
327
+ "\")\"",
328
+ "\";\"",
329
+ "\"{\"",
330
+ "\"}\"",
331
+ "$start",
332
+ "Root",
333
+ "Expressions",
334
+ "Expression",
335
+ "Terminator",
336
+ "Literal",
337
+ "Call",
338
+ "Operator",
339
+ "Constant",
340
+ "Assign",
341
+ "Func",
342
+ "If",
343
+ "ArgList",
344
+ "ParamList",
345
+ "Block" ]
346
+
347
+ Racc_debug_parser = false
348
+
349
+ ##### State transition tables end #####
350
+
351
+ # reduce 0 omitted
352
+
353
+ module_eval(<<'.,.,', 'grammar.y', 40)
354
+ def _reduce_1(val, _values, result)
355
+ result = Nodes.new([])
356
+ result
357
+ end
358
+ .,.,
359
+
360
+ module_eval(<<'.,.,', 'grammar.y', 41)
361
+ def _reduce_2(val, _values, result)
362
+ result = val[0]
363
+ result
364
+ end
365
+ .,.,
366
+
367
+ module_eval(<<'.,.,', 'grammar.y', 46)
368
+ def _reduce_3(val, _values, result)
369
+ result = Nodes.new(val)
370
+ result
371
+ end
372
+ .,.,
373
+
374
+ module_eval(<<'.,.,', 'grammar.y', 47)
375
+ def _reduce_4(val, _values, result)
376
+ result = val[0] << val[1]
377
+ result
378
+ end
379
+ .,.,
380
+
381
+ module_eval(<<'.,.,', 'grammar.y', 49)
382
+ def _reduce_5(val, _values, result)
383
+ result = val[0]
384
+ result
385
+ end
386
+ .,.,
387
+
388
+ module_eval(<<'.,.,', 'grammar.y', 50)
389
+ def _reduce_6(val, _values, result)
390
+ result = Nodes.new([])
391
+ result
392
+ end
393
+ .,.,
394
+
395
+ # reduce 7 omitted
396
+
397
+ # reduce 8 omitted
398
+
399
+ # reduce 9 omitted
400
+
401
+ # reduce 10 omitted
402
+
403
+ # reduce 11 omitted
404
+
405
+ # reduce 12 omitted
406
+
407
+ # reduce 13 omitted
408
+
409
+ module_eval(<<'.,.,', 'grammar.y', 62)
410
+ def _reduce_14(val, _values, result)
411
+ result = val[1]
412
+ result
413
+ end
414
+ .,.,
415
+
416
+ # reduce 15 omitted
417
+
418
+ # reduce 16 omitted
419
+
420
+ module_eval(<<'.,.,', 'grammar.y', 73)
421
+ def _reduce_17(val, _values, result)
422
+ result = NumberNode.new(val[0])
423
+ result
424
+ end
425
+ .,.,
426
+
427
+ module_eval(<<'.,.,', 'grammar.y', 74)
428
+ def _reduce_18(val, _values, result)
429
+ result = StringNode.new(val[0])
430
+ result
431
+ end
432
+ .,.,
433
+
434
+ module_eval(<<'.,.,', 'grammar.y', 75)
435
+ def _reduce_19(val, _values, result)
436
+ result = TrueNode.new
437
+ result
438
+ end
439
+ .,.,
440
+
441
+ module_eval(<<'.,.,', 'grammar.y', 76)
442
+ def _reduce_20(val, _values, result)
443
+ result = FalseNode.new
444
+ result
445
+ end
446
+ .,.,
447
+
448
+ module_eval(<<'.,.,', 'grammar.y', 77)
449
+ def _reduce_21(val, _values, result)
450
+ result = NullNode.new
451
+ result
452
+ end
453
+ .,.,
454
+
455
+ module_eval(<<'.,.,', 'grammar.y', 85)
456
+ def _reduce_22(val, _values, result)
457
+ result = CallNode.new(nil, val[0], val[2])
458
+ result
459
+ end
460
+ .,.,
461
+
462
+ module_eval(<<'.,.,', 'grammar.y', 89)
463
+ def _reduce_23(val, _values, result)
464
+ result = CallNode.new(val[0], val[2], val[4])
465
+ result
466
+ end
467
+ .,.,
468
+
469
+ module_eval(<<'.,.,', 'grammar.y', 93)
470
+ def _reduce_24(val, _values, result)
471
+ result = []
472
+ result
473
+ end
474
+ .,.,
475
+
476
+ module_eval(<<'.,.,', 'grammar.y', 94)
477
+ def _reduce_25(val, _values, result)
478
+ result = val
479
+ result
480
+ end
481
+ .,.,
482
+
483
+ module_eval(<<'.,.,', 'grammar.y', 95)
484
+ def _reduce_26(val, _values, result)
485
+ result = val[0] << val[2]
486
+ result
487
+ end
488
+ .,.,
489
+
490
+ module_eval(<<'.,.,', 'grammar.y', 100)
491
+ def _reduce_27(val, _values, result)
492
+ result = CallNode.new(val[0], val[1], [val[2]])
493
+ result
494
+ end
495
+ .,.,
496
+
497
+ module_eval(<<'.,.,', 'grammar.y', 101)
498
+ def _reduce_28(val, _values, result)
499
+ result = CallNode.new(val[0], val[1], [val[2]])
500
+ result
501
+ end
502
+ .,.,
503
+
504
+ module_eval(<<'.,.,', 'grammar.y', 102)
505
+ def _reduce_29(val, _values, result)
506
+ result = CallNode.new(val[0], val[1], [val[2]])
507
+ result
508
+ end
509
+ .,.,
510
+
511
+ module_eval(<<'.,.,', 'grammar.y', 103)
512
+ def _reduce_30(val, _values, result)
513
+ result = CallNode.new(val[0], val[1], [val[2]])
514
+ result
515
+ end
516
+ .,.,
517
+
518
+ module_eval(<<'.,.,', 'grammar.y', 104)
519
+ def _reduce_31(val, _values, result)
520
+ result = CallNode.new(val[0], val[1], [val[2]])
521
+ result
522
+ end
523
+ .,.,
524
+
525
+ module_eval(<<'.,.,', 'grammar.y', 105)
526
+ def _reduce_32(val, _values, result)
527
+ result = CallNode.new(val[0], val[1], [val[2]])
528
+ result
529
+ end
530
+ .,.,
531
+
532
+ module_eval(<<'.,.,', 'grammar.y', 106)
533
+ def _reduce_33(val, _values, result)
534
+ result = CallNode.new(val[0], val[1], [val[2]])
535
+ result
536
+ end
537
+ .,.,
538
+
539
+ module_eval(<<'.,.,', 'grammar.y', 107)
540
+ def _reduce_34(val, _values, result)
541
+ result = CallNode.new(val[0], val[1], [val[2]])
542
+ result
543
+ end
544
+ .,.,
545
+
546
+ module_eval(<<'.,.,', 'grammar.y', 108)
547
+ def _reduce_35(val, _values, result)
548
+ result = CallNode.new(val[0], val[1], [val[2]])
549
+ result
550
+ end
551
+ .,.,
552
+
553
+ module_eval(<<'.,.,', 'grammar.y', 109)
554
+ def _reduce_36(val, _values, result)
555
+ result = CallNode.new(val[0], val[1], [val[2]])
556
+ result
557
+ end
558
+ .,.,
559
+
560
+ module_eval(<<'.,.,', 'grammar.y', 110)
561
+ def _reduce_37(val, _values, result)
562
+ result = CallNode.new(val[0], val[1], [val[2]])
563
+ result
564
+ end
565
+ .,.,
566
+
567
+ module_eval(<<'.,.,', 'grammar.y', 111)
568
+ def _reduce_38(val, _values, result)
569
+ result = CallNode.new(val[0], val[1], [val[2]])
570
+ result
571
+ end
572
+ .,.,
573
+
574
+ module_eval(<<'.,.,', 'grammar.y', 115)
575
+ def _reduce_39(val, _values, result)
576
+ result = GetConstantNode.new(val[0])
577
+ result
578
+ end
579
+ .,.,
580
+
581
+ module_eval(<<'.,.,', 'grammar.y', 120)
582
+ def _reduce_40(val, _values, result)
583
+ result = SetLocalNode.new(val[0], val[2])
584
+ result
585
+ end
586
+ .,.,
587
+
588
+ module_eval(<<'.,.,', 'grammar.y', 121)
589
+ def _reduce_41(val, _values, result)
590
+ result = SetLocalNode.new(val[0], val[2])
591
+ result
592
+ end
593
+ .,.,
594
+
595
+ module_eval(<<'.,.,', 'grammar.y', 127)
596
+ def _reduce_42(val, _values, result)
597
+ result = FuncNode.new(val[1], val[3], val[5])
598
+ result
599
+ end
600
+ .,.,
601
+
602
+ # reduce 43 omitted
603
+
604
+ module_eval(<<'.,.,', 'grammar.y', 132)
605
+ def _reduce_44(val, _values, result)
606
+ result = []
607
+ result
608
+ end
609
+ .,.,
610
+
611
+ module_eval(<<'.,.,', 'grammar.y', 133)
612
+ def _reduce_45(val, _values, result)
613
+ result = val
614
+ result
615
+ end
616
+ .,.,
617
+
618
+ module_eval(<<'.,.,', 'grammar.y', 138)
619
+ def _reduce_46(val, _values, result)
620
+ result = IfNode.new(val[1], val[2])
621
+ result
622
+ end
623
+ .,.,
624
+
625
+ module_eval(<<'.,.,', 'grammar.y', 143)
626
+ def _reduce_47(val, _values, result)
627
+ result = val[1]
628
+ result
629
+ end
630
+ .,.,
631
+
632
+ def _reduce_none(val, _values, result)
633
+ val[0]
634
+ end
635
+
636
+ end # class Parser
637
+
638
+
639
+ end # End the module