sol 0.0.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.
@@ -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