mvinl 0.1.4 → 0.1.6
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.
- checksums.yaml +4 -4
- data/bin/imvnl +30 -9
- data/lib/mvinl/context.rb +54 -0
- data/lib/mvinl/info.rb +2 -2
- data/lib/mvinl/lexer.rb +28 -19
- data/lib/mvinl/parser.rb +16 -7
- data/lib/mvinl.rb +16 -3
- data/rakelib/build.rake +4 -25
- data/spec/complex_vars.mvnl +5 -0
- data/spec/multiline_string.mvnl +5 -0
- data/spec/program_spec.rb +87 -34
- data/spec/spec_helper.rb +2 -0
- data/spec/vars.mvnl +4 -0
- data/syntax/mvinl.tab.rb +322 -208
- metadata +6 -2
data/syntax/mvinl.tab.rb
CHANGED
@@ -8,22 +8,13 @@ require 'racc/parser.rb'
|
|
8
8
|
module MVinl
|
9
9
|
class Program < Racc::Parser
|
10
10
|
|
11
|
-
module_eval(<<'...end mvinl.y/module_eval...', 'mvinl.y',
|
12
|
-
|
13
|
-
FUNCTIONS = {}
|
14
|
-
STATE = {
|
15
|
-
in_prop: false,
|
16
|
-
in_keyword_arg: false,
|
17
|
-
keyword_arg_depth: 0,
|
18
|
-
depth: 0
|
19
|
-
}
|
20
|
-
|
11
|
+
module_eval(<<'...end mvinl.y/module_eval...', 'mvinl.y', 144)
|
21
12
|
class MVinl::ParserError < StandardError; end
|
22
13
|
|
23
14
|
private
|
24
15
|
|
25
16
|
def create_property(id, positional_args = [], keyword_args = {})
|
26
|
-
|
17
|
+
@context.state[:in_prop] = false
|
27
18
|
{id => [positional_args, keyword_args]}
|
28
19
|
end
|
29
20
|
|
@@ -31,9 +22,12 @@ module_eval(<<'...end mvinl.y/module_eval...', 'mvinl.y', 112)
|
|
31
22
|
properties || Hash.new
|
32
23
|
end
|
33
24
|
|
34
|
-
def
|
35
|
-
|
36
|
-
|
25
|
+
def evaluate_const(const_name)
|
26
|
+
MVinl::Context::CONSTANTS[const_name]
|
27
|
+
end
|
28
|
+
|
29
|
+
def evaluate_var(var_name)
|
30
|
+
@context.variables[var_name]
|
37
31
|
end
|
38
32
|
|
39
33
|
def evaluate_pn(operator, operands, context = {})
|
@@ -47,14 +41,22 @@ module_eval(<<'...end mvinl.y/module_eval...', 'mvinl.y', 112)
|
|
47
41
|
end
|
48
42
|
end
|
49
43
|
|
50
|
-
if
|
51
|
-
function =
|
44
|
+
if @context.functions.key?(operator)
|
45
|
+
function = @context.functions[operator]
|
52
46
|
raise MVinl::ParserError, "Argument mismatch for #{operator}" if operands.size != function[:args].size
|
53
47
|
|
54
48
|
# Map arguments to operands
|
55
49
|
new_context = function[:args].zip(operands).to_h
|
56
50
|
# Replace symbols in body with context values
|
57
51
|
function = replace_symbols(function[:body], new_context)
|
52
|
+
# Evaluate variables
|
53
|
+
function.map! do |e|
|
54
|
+
if e.is_a? Hash
|
55
|
+
e[:var] ? evaluate_var(e[:var]) : evaluate_const(e[:con])
|
56
|
+
else
|
57
|
+
e
|
58
|
+
end
|
59
|
+
end
|
58
60
|
# Recursive evaluation
|
59
61
|
evaluate_pn(function[0], function[1..], new_context)
|
60
62
|
else
|
@@ -81,137 +83,166 @@ module_eval(<<'...end mvinl.y/module_eval...', 'mvinl.y', 112)
|
|
81
83
|
##### State transition tables begin ###
|
82
84
|
|
83
85
|
racc_action_table = [
|
84
|
-
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
nil,
|
91
|
-
nil, nil,
|
92
|
-
|
86
|
+
-16, 15, -16, -16, -16, -16, -16, 2, 19, 8,
|
87
|
+
10, 12, 13, 29, 30, -16, 41, 19, 41, 19,
|
88
|
+
-16, 32, 14, 23, 24, 25, 26, 28, 29, 30,
|
89
|
+
36, 32, 52, 55, 19, 19, 23, 24, 25, 26,
|
90
|
+
28, 29, 30, 19, 32, 52, 55, 50, 19, 61,
|
91
|
+
62, 25, 26, 28, 29, 30, 52, 32, nil, nil,
|
92
|
+
nil, 19, 61, 62, 25, 26, 28, 29, 30, nil,
|
93
|
+
32, 52, nil, nil, 19, 61, 62, 25, 26, 28,
|
94
|
+
29, 30, nil, 32, 52, nil, nil, 19, -22, 23,
|
95
|
+
24, 25, 26, 28, 29, 30, nil, 32, 23, 24,
|
96
|
+
25, 26, 28, 29, 30, nil, 32, 23, 24, 25,
|
97
|
+
26, 28, 29, 30, nil, 32, 23, 24, 25, 26,
|
98
|
+
28, 29, 30, nil, 32 ]
|
93
99
|
|
94
100
|
racc_action_check = [
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
nil,
|
102
|
-
nil, nil,
|
103
|
-
|
101
|
+
17, 2, 17, 17, 17, 17, 17, 1, 4, 1,
|
102
|
+
1, 1, 1, 30, 30, 17, 31, 31, 58, 58,
|
103
|
+
17, 14, 1, 45, 45, 45, 45, 45, 45, 45,
|
104
|
+
16, 45, 45, 45, 34, 45, 46, 46, 46, 46,
|
105
|
+
46, 46, 46, 35, 46, 46, 46, 43, 46, 47,
|
106
|
+
47, 47, 47, 47, 47, 47, 57, 47, nil, nil,
|
107
|
+
nil, 47, 67, 67, 67, 67, 67, 67, 67, nil,
|
108
|
+
67, 67, nil, nil, 67, 68, 68, 68, 68, 68,
|
109
|
+
68, 68, nil, 68, 68, nil, nil, 68, 37, 37,
|
110
|
+
37, 37, 37, 37, 37, 37, nil, 37, 9, 9,
|
111
|
+
9, 9, 9, 9, 9, nil, 9, 11, 11, 11,
|
112
|
+
11, 11, 11, 11, nil, 11, 49, 49, 49, 49,
|
113
|
+
49, 49, 49, nil, 49 ]
|
104
114
|
|
105
115
|
racc_action_pointer = [
|
106
|
-
nil,
|
107
|
-
|
108
|
-
|
109
|
-
-
|
110
|
-
nil, nil, nil,
|
111
|
-
|
116
|
+
nil, 7, 1, nil, -12, nil, nil, nil, nil, 90,
|
117
|
+
nil, 99, nil, nil, 5, nil, 24, 0, nil, nil,
|
118
|
+
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
119
|
+
0, -3, nil, nil, 14, 23, nil, 81, nil, nil,
|
120
|
+
nil, nil, nil, 40, nil, 15, 28, 41, nil, 108,
|
121
|
+
nil, nil, nil, nil, nil, nil, nil, 39, -1, nil,
|
122
|
+
nil, nil, nil, nil, nil, nil, nil, 54, 67, nil,
|
123
|
+
nil, nil ]
|
112
124
|
|
113
125
|
racc_action_default = [
|
114
|
-
-1, -
|
115
|
-
|
116
|
-
|
117
|
-
-
|
118
|
-
-
|
119
|
-
-
|
126
|
+
-1, -13, -55, -2, -3, -4, -5, -6, -7, -55,
|
127
|
+
-9, -55, -11, -13, -55, 72, -14, -20, -19, -54,
|
128
|
+
-8, -26, -27, -28, -29, -30, -31, -32, -33, -34,
|
129
|
+
-55, -55, -41, -10, -12, -55, -15, -17, -35, -49,
|
130
|
+
-49, -53, -43, -18, -21, -55, -55, -55, -23, -55,
|
131
|
+
-25, -39, -42, -50, -51, -52, -40, -48, -55, -44,
|
132
|
+
-45, -46, -47, -24, -36, -43, -43, -55, -55, -37,
|
133
|
+
-48, -38 ]
|
120
134
|
|
121
135
|
racc_goto_table = [
|
122
|
-
|
123
|
-
47,
|
124
|
-
|
125
|
-
|
126
|
-
|
136
|
+
18, 40, 35, 60, 20, 4, 33, 45, 46, 1,
|
137
|
+
47, 3, 5, 6, 51, 56, 7, 34, 9, 11,
|
138
|
+
37, 43, 48, 60, 60, 49, 64, 39, 66, 38,
|
139
|
+
18, 42, 44, 67, 68, 58, 69, 71, 57, nil,
|
140
|
+
nil, 54, 54, nil, 63, nil, nil, nil, nil, nil,
|
141
|
+
nil, nil, nil, nil, 65, 58, 58 ]
|
127
142
|
|
128
143
|
racc_goto_check = [
|
129
|
-
|
130
|
-
21,
|
131
|
-
|
132
|
-
|
133
|
-
|
144
|
+
14, 24, 20, 17, 8, 3, 8, 25, 25, 1,
|
145
|
+
21, 2, 4, 5, 23, 23, 6, 3, 7, 9,
|
146
|
+
12, 13, 15, 17, 17, 16, 23, 14, 24, 19,
|
147
|
+
14, 14, 8, 21, 21, 20, 23, 23, 22, nil,
|
148
|
+
nil, 14, 14, nil, 8, nil, nil, nil, nil, nil,
|
149
|
+
nil, nil, nil, nil, 14, 20, 20 ]
|
134
150
|
|
135
151
|
racc_goto_pointer = [
|
136
|
-
nil,
|
137
|
-
|
138
|
-
-
|
152
|
+
nil, 9, 10, 4, 11, 12, 15, 17, -5, 18,
|
153
|
+
nil, nil, 3, -16, -4, -21, -18, -44, nil, -1,
|
154
|
+
-12, -32, -9, -31, -30, -32 ]
|
139
155
|
|
140
156
|
racc_goto_default = [
|
141
|
-
nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
142
|
-
|
143
|
-
nil, nil ]
|
157
|
+
nil, nil, nil, nil, nil, nil, nil, nil, 53, nil,
|
158
|
+
16, 17, nil, nil, 59, nil, nil, 21, 22, 27,
|
159
|
+
31, nil, 70, nil, nil, nil ]
|
144
160
|
|
145
161
|
racc_reduce_table = [
|
146
162
|
0, 0, :racc_error,
|
147
|
-
0,
|
148
|
-
2,
|
149
|
-
2,
|
150
|
-
2,
|
151
|
-
2,
|
152
|
-
|
153
|
-
2,
|
154
|
-
|
155
|
-
1,
|
156
|
-
2,
|
157
|
-
|
158
|
-
|
163
|
+
0, 22, :_reduce_1,
|
164
|
+
2, 22, :_reduce_2,
|
165
|
+
2, 22, :_reduce_3,
|
166
|
+
2, 22, :_reduce_4,
|
167
|
+
2, 22, :_reduce_5,
|
168
|
+
2, 22, :_reduce_6,
|
169
|
+
2, 22, :_reduce_7,
|
170
|
+
2, 26, :_reduce_8,
|
171
|
+
1, 28, :_reduce_9,
|
172
|
+
2, 25, :_reduce_10,
|
173
|
+
1, 30, :_reduce_11,
|
174
|
+
2, 23, :_reduce_12,
|
159
175
|
0, 24, :_reduce_13,
|
160
176
|
2, 24, :_reduce_14,
|
161
|
-
|
162
|
-
|
163
|
-
2,
|
164
|
-
|
165
|
-
1,
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
1,
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
1,
|
179
|
-
1,
|
180
|
-
|
181
|
-
2,
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
1,
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
177
|
+
3, 24, :_reduce_15,
|
178
|
+
1, 31, :_reduce_16,
|
179
|
+
2, 31, :_reduce_17,
|
180
|
+
3, 31, :_reduce_18,
|
181
|
+
1, 32, :_reduce_19,
|
182
|
+
0, 33, :_reduce_20,
|
183
|
+
2, 33, :_reduce_21,
|
184
|
+
0, 34, :_reduce_22,
|
185
|
+
2, 34, :_reduce_23,
|
186
|
+
2, 36, :_reduce_24,
|
187
|
+
1, 37, :_reduce_25,
|
188
|
+
1, 29, :_reduce_26,
|
189
|
+
1, 29, :_reduce_27,
|
190
|
+
1, 29, :_reduce_28,
|
191
|
+
1, 29, :_reduce_29,
|
192
|
+
1, 38, :_reduce_30,
|
193
|
+
1, 38, :_reduce_31,
|
194
|
+
1, 38, :_reduce_32,
|
195
|
+
1, 38, :_reduce_33,
|
196
|
+
1, 40, :_reduce_34,
|
197
|
+
2, 40, :_reduce_35,
|
198
|
+
6, 27, :_reduce_36,
|
199
|
+
4, 43, :_reduce_37,
|
200
|
+
4, 43, :_reduce_38,
|
201
|
+
4, 39, :_reduce_39,
|
202
|
+
4, 39, :_reduce_40,
|
203
|
+
1, 41, :_reduce_41,
|
204
|
+
1, 44, :_reduce_42,
|
205
|
+
0, 42, :_reduce_43,
|
206
|
+
2, 42, :_reduce_44,
|
207
|
+
2, 42, :_reduce_45,
|
208
|
+
2, 42, :_reduce_46,
|
209
|
+
2, 42, :_reduce_47,
|
210
|
+
2, 42, :_reduce_48,
|
211
|
+
0, 46, :_reduce_49,
|
212
|
+
2, 46, :_reduce_50,
|
213
|
+
2, 46, :_reduce_51,
|
214
|
+
2, 46, :_reduce_52,
|
215
|
+
1, 45, :_reduce_53,
|
216
|
+
1, 35, :_reduce_54 ]
|
217
|
+
|
218
|
+
racc_reduce_n = 55
|
219
|
+
|
220
|
+
racc_shift_n = 72
|
194
221
|
|
195
222
|
racc_token_table = {
|
196
223
|
false => 0,
|
197
224
|
:error => 1,
|
198
225
|
:EOS => 2,
|
199
|
-
:
|
200
|
-
:
|
201
|
-
:
|
202
|
-
:
|
203
|
-
:
|
204
|
-
:
|
205
|
-
:
|
206
|
-
:
|
207
|
-
:
|
208
|
-
:
|
209
|
-
:
|
210
|
-
:
|
211
|
-
:
|
212
|
-
:
|
213
|
-
|
214
|
-
|
226
|
+
:VARIABLE => 3,
|
227
|
+
:CONSTANT => 4,
|
228
|
+
:GROUP => 5,
|
229
|
+
:END_TAG => 6,
|
230
|
+
:KEYWORD_ARG => 7,
|
231
|
+
:CONSTANT_CALL => 8,
|
232
|
+
:VARIABLE_CALL => 9,
|
233
|
+
:NUMBER => 10,
|
234
|
+
:FLOAT => 11,
|
235
|
+
:SYMBOL => 12,
|
236
|
+
:STRING => 13,
|
237
|
+
:MULTILINE_STRING => 14,
|
238
|
+
:DEF => 15,
|
239
|
+
:OPEN_PAREN => 16,
|
240
|
+
:CLOSE_PAREN => 17,
|
241
|
+
:polish_notation => 18,
|
242
|
+
:OPER => 19,
|
243
|
+
:ID => 20 }
|
244
|
+
|
245
|
+
racc_nt_base = 21
|
215
246
|
|
216
247
|
racc_use_result_var = false
|
217
248
|
|
@@ -236,9 +267,13 @@ Racc_token_to_s_table = [
|
|
236
267
|
"$end",
|
237
268
|
"error",
|
238
269
|
"EOS",
|
270
|
+
"VARIABLE",
|
271
|
+
"CONSTANT",
|
239
272
|
"GROUP",
|
240
273
|
"END_TAG",
|
241
274
|
"KEYWORD_ARG",
|
275
|
+
"CONSTANT_CALL",
|
276
|
+
"VARIABLE_CALL",
|
242
277
|
"NUMBER",
|
243
278
|
"FLOAT",
|
244
279
|
"SYMBOL",
|
@@ -253,14 +288,18 @@ Racc_token_to_s_table = [
|
|
253
288
|
"$start",
|
254
289
|
"program",
|
255
290
|
"group",
|
256
|
-
"function_def",
|
257
291
|
"properties",
|
292
|
+
"constant_def",
|
293
|
+
"variable_def",
|
294
|
+
"function_def",
|
295
|
+
"var_def_name",
|
296
|
+
"super_value",
|
297
|
+
"const_def_name",
|
258
298
|
"property",
|
259
299
|
"prop_id",
|
260
300
|
"positional_args",
|
261
301
|
"keyword_args",
|
262
302
|
"identifier",
|
263
|
-
"super_value",
|
264
303
|
"keyword_arg",
|
265
304
|
"keyword_arg_id",
|
266
305
|
"value",
|
@@ -294,7 +333,7 @@ module_eval(<<'.,.,', 'mvinl.y', 13)
|
|
294
333
|
|
295
334
|
module_eval(<<'.,.,', 'mvinl.y', 14)
|
296
335
|
def _reduce_3(val, _values)
|
297
|
-
val[0]
|
336
|
+
val[0].merge(val[1])
|
298
337
|
end
|
299
338
|
.,.,
|
300
339
|
|
@@ -304,242 +343,317 @@ module_eval(<<'.,.,', 'mvinl.y', 15)
|
|
304
343
|
end
|
305
344
|
.,.,
|
306
345
|
|
307
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
346
|
+
module_eval(<<'.,.,', 'mvinl.y', 16)
|
308
347
|
def _reduce_5(val, _values)
|
309
|
-
|
348
|
+
val[0]
|
310
349
|
end
|
311
350
|
.,.,
|
312
351
|
|
313
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
352
|
+
module_eval(<<'.,.,', 'mvinl.y', 17)
|
314
353
|
def _reduce_6(val, _values)
|
315
|
-
|
354
|
+
val[0]
|
316
355
|
end
|
317
356
|
.,.,
|
318
357
|
|
319
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
358
|
+
module_eval(<<'.,.,', 'mvinl.y', 18)
|
320
359
|
def _reduce_7(val, _values)
|
321
|
-
val[0]
|
360
|
+
val[0]
|
322
361
|
end
|
323
362
|
.,.,
|
324
363
|
|
325
364
|
module_eval(<<'.,.,', 'mvinl.y', 23)
|
326
365
|
def _reduce_8(val, _values)
|
327
|
-
|
366
|
+
@context.define_variable(val[0], val[1]) ||
|
367
|
+
raise(MVinl::ParserError, "Trying to define a reserved word '#{val[0]}' as a variable")
|
368
|
+
|
328
369
|
end
|
329
370
|
.,.,
|
330
371
|
|
331
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
372
|
+
module_eval(<<'.,.,', 'mvinl.y', 28)
|
332
373
|
def _reduce_9(val, _values)
|
333
|
-
|
374
|
+
@context.state[:in_var] = true; val[0].to_sym
|
334
375
|
end
|
335
376
|
.,.,
|
336
377
|
|
337
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
378
|
+
module_eval(<<'.,.,', 'mvinl.y', 33)
|
338
379
|
def _reduce_10(val, _values)
|
339
|
-
|
380
|
+
if (res = @context.define_constant(val[0], val[1])) == nil
|
381
|
+
raise(MVinl::ParserError, "Trying to define a reserved word '#{val[0]}' as a constant")
|
382
|
+
elsif (res == false)
|
383
|
+
raise(MVinl::ParserError, "Can't overwrite a constant #{val[0]}")
|
384
|
+
else
|
385
|
+
res
|
386
|
+
end
|
387
|
+
|
340
388
|
end
|
341
389
|
.,.,
|
342
390
|
|
343
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
391
|
+
module_eval(<<'.,.,', 'mvinl.y', 43)
|
344
392
|
def _reduce_11(val, _values)
|
345
|
-
|
393
|
+
@context.state[:in_var] = true; val[0].to_sym
|
346
394
|
end
|
347
395
|
.,.,
|
348
396
|
|
349
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
397
|
+
module_eval(<<'.,.,', 'mvinl.y', 46)
|
350
398
|
def _reduce_12(val, _values)
|
351
|
-
|
399
|
+
{val[0].to_sym => create_group(val[1])}
|
352
400
|
end
|
353
401
|
.,.,
|
354
402
|
|
355
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
403
|
+
module_eval(<<'.,.,', 'mvinl.y', 49)
|
356
404
|
def _reduce_13(val, _values)
|
357
|
-
|
405
|
+
Hash.new
|
358
406
|
end
|
359
407
|
.,.,
|
360
408
|
|
361
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
409
|
+
module_eval(<<'.,.,', 'mvinl.y', 50)
|
362
410
|
def _reduce_14(val, _values)
|
363
|
-
val[0]
|
411
|
+
val[0].merge(val[1])
|
364
412
|
end
|
365
413
|
.,.,
|
366
414
|
|
367
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
415
|
+
module_eval(<<'.,.,', 'mvinl.y', 51)
|
368
416
|
def _reduce_15(val, _values)
|
369
|
-
|
417
|
+
val[0].merge(val[1])
|
370
418
|
end
|
371
419
|
.,.,
|
372
420
|
|
373
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
421
|
+
module_eval(<<'.,.,', 'mvinl.y', 54)
|
374
422
|
def _reduce_16(val, _values)
|
375
|
-
|
376
|
-
val[0].merge(val[1])
|
377
|
-
|
423
|
+
create_property(val[0])
|
378
424
|
end
|
379
425
|
.,.,
|
380
426
|
|
381
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
427
|
+
module_eval(<<'.,.,', 'mvinl.y', 55)
|
382
428
|
def _reduce_17(val, _values)
|
383
|
-
|
384
|
-
STATE[:keyword_arg_depth] += 1
|
385
|
-
{val[0].to_sym => val[1]}
|
386
|
-
|
429
|
+
create_property(val[0], val[1])
|
387
430
|
end
|
388
431
|
.,.,
|
389
432
|
|
390
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
433
|
+
module_eval(<<'.,.,', 'mvinl.y', 56)
|
391
434
|
def _reduce_18(val, _values)
|
392
|
-
|
435
|
+
create_property(val[0], val[1], val[2])
|
393
436
|
end
|
394
437
|
.,.,
|
395
438
|
|
396
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
439
|
+
module_eval(<<'.,.,', 'mvinl.y', 59)
|
397
440
|
def _reduce_19(val, _values)
|
398
|
-
val[0]
|
441
|
+
@context.state[:in_prop] = true; val[0]
|
399
442
|
end
|
400
443
|
.,.,
|
401
444
|
|
402
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
445
|
+
module_eval(<<'.,.,', 'mvinl.y', 62)
|
403
446
|
def _reduce_20(val, _values)
|
404
|
-
|
447
|
+
Array.new
|
405
448
|
end
|
406
449
|
.,.,
|
407
450
|
|
408
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
451
|
+
module_eval(<<'.,.,', 'mvinl.y', 63)
|
409
452
|
def _reduce_21(val, _values)
|
410
|
-
val[0]
|
453
|
+
val[0] << val[1]
|
411
454
|
end
|
412
455
|
.,.,
|
413
456
|
|
414
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
457
|
+
module_eval(<<'.,.,', 'mvinl.y', 66)
|
415
458
|
def _reduce_22(val, _values)
|
416
|
-
|
459
|
+
Hash.new
|
417
460
|
end
|
418
461
|
.,.,
|
419
462
|
|
420
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
463
|
+
module_eval(<<'.,.,', 'mvinl.y', 69)
|
421
464
|
def _reduce_23(val, _values)
|
422
|
-
|
465
|
+
@context.state[:keyword_arg_depth] = 0
|
466
|
+
val[0].merge(val[1])
|
467
|
+
|
423
468
|
end
|
424
469
|
.,.,
|
425
470
|
|
426
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
471
|
+
module_eval(<<'.,.,', 'mvinl.y', 76)
|
427
472
|
def _reduce_24(val, _values)
|
428
|
-
|
473
|
+
@context.state[:in_keyword_arg] = false
|
474
|
+
@context.state[:keyword_arg_depth] += 1
|
475
|
+
{val[0].to_sym => val[1]}
|
476
|
+
|
429
477
|
end
|
430
478
|
.,.,
|
431
479
|
|
432
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
480
|
+
module_eval(<<'.,.,', 'mvinl.y', 82)
|
433
481
|
def _reduce_25(val, _values)
|
434
|
-
val[0]
|
482
|
+
@context.state[:in_keyword_arg] = true; val[0]
|
435
483
|
end
|
436
484
|
.,.,
|
437
485
|
|
438
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
486
|
+
module_eval(<<'.,.,', 'mvinl.y', 85)
|
439
487
|
def _reduce_26(val, _values)
|
440
|
-
|
488
|
+
val[0]
|
441
489
|
end
|
442
490
|
.,.,
|
443
491
|
|
444
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
492
|
+
module_eval(<<'.,.,', 'mvinl.y', 86)
|
445
493
|
def _reduce_27(val, _values)
|
446
|
-
|
447
|
-
|
494
|
+
val[0]
|
448
495
|
end
|
449
496
|
.,.,
|
450
497
|
|
451
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
498
|
+
module_eval(<<'.,.,', 'mvinl.y', 87)
|
452
499
|
def _reduce_28(val, _values)
|
453
|
-
[val[
|
500
|
+
MVinl::Context::CONSTANTS[val[0]]
|
454
501
|
end
|
455
502
|
.,.,
|
456
503
|
|
457
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
504
|
+
module_eval(<<'.,.,', 'mvinl.y', 88)
|
458
505
|
def _reduce_29(val, _values)
|
459
|
-
[val[
|
506
|
+
@context.variables[val[0]]
|
460
507
|
end
|
461
508
|
.,.,
|
462
509
|
|
463
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
510
|
+
module_eval(<<'.,.,', 'mvinl.y', 91)
|
464
511
|
def _reduce_30(val, _values)
|
465
|
-
|
512
|
+
val[0].to_i
|
466
513
|
end
|
467
514
|
.,.,
|
468
515
|
|
469
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
516
|
+
module_eval(<<'.,.,', 'mvinl.y', 92)
|
470
517
|
def _reduce_31(val, _values)
|
471
|
-
|
518
|
+
val[0].to_f
|
472
519
|
end
|
473
520
|
.,.,
|
474
521
|
|
475
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
522
|
+
module_eval(<<'.,.,', 'mvinl.y', 93)
|
476
523
|
def _reduce_32(val, _values)
|
477
|
-
|
524
|
+
val[0]
|
478
525
|
end
|
479
526
|
.,.,
|
480
527
|
|
481
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
528
|
+
module_eval(<<'.,.,', 'mvinl.y', 94)
|
482
529
|
def _reduce_33(val, _values)
|
483
|
-
|
530
|
+
val[0].to_sym
|
484
531
|
end
|
485
532
|
.,.,
|
486
533
|
|
487
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
534
|
+
module_eval(<<'.,.,', 'mvinl.y', 97)
|
488
535
|
def _reduce_34(val, _values)
|
489
|
-
|
536
|
+
val[0]
|
490
537
|
end
|
491
538
|
.,.,
|
492
539
|
|
493
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
540
|
+
module_eval(<<'.,.,', 'mvinl.y', 98)
|
494
541
|
def _reduce_35(val, _values)
|
495
|
-
val[0]
|
542
|
+
"#{val[0]} #{val[1]}"
|
496
543
|
end
|
497
544
|
.,.,
|
498
545
|
|
499
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
546
|
+
module_eval(<<'.,.,', 'mvinl.y', 103)
|
500
547
|
def _reduce_36(val, _values)
|
501
|
-
|
548
|
+
@context.define_function(val[2], val[3], val[4])
|
549
|
+
|
502
550
|
end
|
503
551
|
.,.,
|
504
552
|
|
505
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
553
|
+
module_eval(<<'.,.,', 'mvinl.y', 107)
|
506
554
|
def _reduce_37(val, _values)
|
507
|
-
val[
|
555
|
+
[val[1], *val[2]]
|
508
556
|
end
|
509
557
|
.,.,
|
510
558
|
|
511
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
559
|
+
module_eval(<<'.,.,', 'mvinl.y', 108)
|
512
560
|
def _reduce_38(val, _values)
|
513
|
-
|
561
|
+
[val[1], *val[2]]
|
514
562
|
end
|
515
563
|
.,.,
|
516
564
|
|
517
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
565
|
+
module_eval(<<'.,.,', 'mvinl.y', 111)
|
518
566
|
def _reduce_39(val, _values)
|
519
|
-
val[
|
567
|
+
evaluate_pn(val[1], val[2])
|
520
568
|
end
|
521
569
|
.,.,
|
522
570
|
|
523
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
571
|
+
module_eval(<<'.,.,', 'mvinl.y', 112)
|
524
572
|
def _reduce_40(val, _values)
|
525
|
-
val[
|
573
|
+
evaluate_pn(val[1], val[2])
|
526
574
|
end
|
527
575
|
.,.,
|
528
576
|
|
529
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
577
|
+
module_eval(<<'.,.,', 'mvinl.y', 115)
|
530
578
|
def _reduce_41(val, _values)
|
531
|
-
|
579
|
+
@context.state[:depth] += 1
|
532
580
|
end
|
533
581
|
.,.,
|
534
582
|
|
535
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
583
|
+
module_eval(<<'.,.,', 'mvinl.y', 118)
|
536
584
|
def _reduce_42(val, _values)
|
537
|
-
|
585
|
+
@context.state[:depth] -= 1
|
538
586
|
end
|
539
587
|
.,.,
|
540
588
|
|
541
|
-
module_eval(<<'.,.,', 'mvinl.y',
|
589
|
+
module_eval(<<'.,.,', 'mvinl.y', 121)
|
542
590
|
def _reduce_43(val, _values)
|
591
|
+
Array.new
|
592
|
+
end
|
593
|
+
.,.,
|
594
|
+
|
595
|
+
module_eval(<<'.,.,', 'mvinl.y', 122)
|
596
|
+
def _reduce_44(val, _values)
|
597
|
+
val[0] << val[1]
|
598
|
+
end
|
599
|
+
.,.,
|
600
|
+
|
601
|
+
module_eval(<<'.,.,', 'mvinl.y', 123)
|
602
|
+
def _reduce_45(val, _values)
|
603
|
+
val[0] << val[1]
|
604
|
+
end
|
605
|
+
.,.,
|
606
|
+
|
607
|
+
module_eval(<<'.,.,', 'mvinl.y', 124)
|
608
|
+
def _reduce_46(val, _values)
|
609
|
+
val[0] << { con: val[1] }
|
610
|
+
end
|
611
|
+
.,.,
|
612
|
+
|
613
|
+
module_eval(<<'.,.,', 'mvinl.y', 125)
|
614
|
+
def _reduce_47(val, _values)
|
615
|
+
val[0] << { var: val[1] }
|
616
|
+
end
|
617
|
+
.,.,
|
618
|
+
|
619
|
+
module_eval(<<'.,.,', 'mvinl.y', 126)
|
620
|
+
def _reduce_48(val, _values)
|
621
|
+
val[0] << val[1]
|
622
|
+
end
|
623
|
+
.,.,
|
624
|
+
|
625
|
+
module_eval(<<'.,.,', 'mvinl.y', 129)
|
626
|
+
def _reduce_49(val, _values)
|
627
|
+
Array.new
|
628
|
+
end
|
629
|
+
.,.,
|
630
|
+
|
631
|
+
module_eval(<<'.,.,', 'mvinl.y', 130)
|
632
|
+
def _reduce_50(val, _values)
|
633
|
+
val[0] << val[1]
|
634
|
+
end
|
635
|
+
.,.,
|
636
|
+
|
637
|
+
module_eval(<<'.,.,', 'mvinl.y', 131)
|
638
|
+
def _reduce_51(val, _values)
|
639
|
+
val[0] << val[1]
|
640
|
+
end
|
641
|
+
.,.,
|
642
|
+
|
643
|
+
module_eval(<<'.,.,', 'mvinl.y', 132)
|
644
|
+
def _reduce_52(val, _values)
|
645
|
+
val[0] << val[1]
|
646
|
+
end
|
647
|
+
.,.,
|
648
|
+
|
649
|
+
module_eval(<<'.,.,', 'mvinl.y', 135)
|
650
|
+
def _reduce_53(val, _values)
|
651
|
+
val[0].to_sym
|
652
|
+
end
|
653
|
+
.,.,
|
654
|
+
|
655
|
+
module_eval(<<'.,.,', 'mvinl.y', 138)
|
656
|
+
def _reduce_54(val, _values)
|
543
657
|
val[0].to_sym
|
544
658
|
end
|
545
659
|
.,.,
|