rVM 0.0.6 → 0.0.7
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.
- data/lib/rvm/classes/block.rb +2 -2
- data/lib/rvm/classes/error.rb +1 -1
- data/lib/rvm/classes/list.rb +13 -0
- data/lib/rvm/functions.rb +2 -2
- data/lib/rvm/functions/array/at.rb +22 -0
- data/lib/rvm/functions/array/size.rb +22 -0
- data/lib/rvm/functions/logic/or.rb +2 -2
- data/lib/rvm/interpreter.rb +63 -34
- data/lib/rvm/languages/ecma.rb +389 -343
- data/lib/rvm/plugin.rb +1 -1
- metadata +4 -2
data/lib/rvm/classes/block.rb
CHANGED
@@ -16,8 +16,8 @@ module RVM
|
|
16
16
|
true
|
17
17
|
end
|
18
18
|
|
19
|
-
def call params, env
|
20
|
-
|
19
|
+
def call params, env, pos = nil
|
20
|
+
RVM::debug "Calling Block at #{pos}...(#{env},#{params})" if $DEBUG
|
21
21
|
env = RVM::Interpreter::Enviroment.new({:params => params||[]}, env)
|
22
22
|
begin
|
23
23
|
@code.execute(env)
|
data/lib/rvm/classes/error.rb
CHANGED
data/lib/rvm/classes/list.rb
CHANGED
@@ -11,6 +11,19 @@ module RVM
|
|
11
11
|
:list
|
12
12
|
end
|
13
13
|
|
14
|
+
|
15
|
+
def variables
|
16
|
+
@variables ||= {}
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
def functions
|
21
|
+
@functions ||= {
|
22
|
+
'size' => RVM::Functions[:size],
|
23
|
+
'length' => RVM::Functions[:size]
|
24
|
+
}
|
25
|
+
end
|
26
|
+
|
14
27
|
def initialize source= [], sepperator = ' '
|
15
28
|
super()
|
16
29
|
if source.is_a?(::String) # Okay we've to hack here to get sure we get the /real/ String
|
data/lib/rvm/functions.rb
CHANGED
@@ -28,13 +28,13 @@ module RVM
|
|
28
28
|
true
|
29
29
|
end
|
30
30
|
|
31
|
-
def call params, env
|
31
|
+
def call params, env, pos = nil
|
32
32
|
i = 0
|
33
33
|
sig = :any
|
34
34
|
params.map! do |p|
|
35
35
|
sig = signature[i] || sig
|
36
36
|
if sig != :any and p.class != RVM::Classes[sig]
|
37
|
-
raise "TYPE MISMATCH" if RVM::strict
|
37
|
+
raise "TYPE MISMATCH! expected #{sig} got #{p.class}(#{pos}) at " if RVM::strict
|
38
38
|
p = RVM::Classes[sig].new(p)
|
39
39
|
end
|
40
40
|
i+=1
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module RVM
|
2
|
+
module Functions
|
3
|
+
class At < Function
|
4
|
+
class << self
|
5
|
+
def execute params, env
|
6
|
+
if params.length == 2
|
7
|
+
array = params.shift
|
8
|
+
pos = params.shift
|
9
|
+
array[pos.to_i]
|
10
|
+
else
|
11
|
+
RVM::Classes[:error].new(1,"FUNCTION (#{self.class}) EXPECTS 2 ARGUMENTS BUT GOT #{params.length}")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def signature
|
16
|
+
[:list, :number]
|
17
|
+
end
|
18
|
+
end
|
19
|
+
register_for :at
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module RVM
|
2
|
+
module Functions
|
3
|
+
class Size < Function
|
4
|
+
class << self
|
5
|
+
def execute params, env
|
6
|
+
if (this = env.read_var_val(:self)).is_a?(RVM::Classes[:list]) and params.empty?
|
7
|
+
RVM::Classes[:number].new(this.size)
|
8
|
+
elsif params.length == 1
|
9
|
+
RVM::Classes[:number].new(params[0].size)
|
10
|
+
else
|
11
|
+
RVM::Classes[:error].new(1,"FUNCTION (#{self.class}) EXPECTS 2 ARGUMENTS BUT GOT #{params.length}")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def signature
|
16
|
+
[:any]
|
17
|
+
end
|
18
|
+
end
|
19
|
+
register_for :size
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -3,8 +3,8 @@ module RVM
|
|
3
3
|
class Or < RVM::Functions::Function
|
4
4
|
class << self
|
5
5
|
def execute params, env
|
6
|
-
|
7
|
-
v =
|
6
|
+
params.each do |p|
|
7
|
+
v = p.execute(env)
|
8
8
|
return v if v.is_true?
|
9
9
|
end
|
10
10
|
return RVM::Classes::Boolean.new(false)
|
data/lib/rvm/interpreter.rb
CHANGED
@@ -18,8 +18,8 @@ module RVM
|
|
18
18
|
# This is a helper function that generates a constat of a simple constant,
|
19
19
|
# for example if you've a lot of string constants it is way quickly to call
|
20
20
|
# this then writing it out the whole time.
|
21
|
-
def Interpreter.const type,value
|
22
|
-
RVM::Interpreter::Constant.new(RVM::Classes[type].new(value))
|
21
|
+
def Interpreter.const type, value, pos = nil
|
22
|
+
RVM::Interpreter::Constant.new(RVM::Classes[type].new(value), pos)
|
23
23
|
end
|
24
24
|
|
25
25
|
class VariableStorage
|
@@ -98,13 +98,18 @@ module RVM
|
|
98
98
|
def []= k, v
|
99
99
|
#TODO: add capability to have the privious env variables changed
|
100
100
|
RVM::debug "Setting variable #{k} to #{v}"
|
101
|
-
if (
|
101
|
+
if (r = self[k])
|
102
102
|
r.val = v
|
103
103
|
else
|
104
104
|
@data[:locals][k] = VariableStorage.new(v)
|
105
105
|
end
|
106
106
|
v
|
107
107
|
end
|
108
|
+
# Defines a varialbe in the current scope, priviose variables are not
|
109
|
+
# changed
|
110
|
+
def define k, v
|
111
|
+
@data[:locals][k] = VariableStorage.new(v)
|
112
|
+
end
|
108
113
|
|
109
114
|
# Returns a function for the current enviroment.
|
110
115
|
# The result is to be execpted to be of the +RVM::Classes::Block+ class.
|
@@ -121,7 +126,7 @@ module RVM
|
|
121
126
|
#
|
122
127
|
# It also checks if the given block is truely a +RVM::Classes::Block+ object.
|
123
128
|
def def_function k, b
|
124
|
-
|
129
|
+
raise(ArgumentError, "Function definitions must be of block class.") if not b.is_a?(RVM::Classes::Block)
|
125
130
|
@data[:functions][k] = b
|
126
131
|
RVM::debug "Setting functon #{k} (#{b})"
|
127
132
|
nil
|
@@ -130,9 +135,15 @@ module RVM
|
|
130
135
|
# This functin is closely related to +[]+ with the difference that it returns the value
|
131
136
|
# And not the VariableData object.
|
132
137
|
def read_var_val name
|
138
|
+
|
139
|
+
r = nil
|
133
140
|
if (v = self[name])
|
134
|
-
v.val
|
141
|
+
r = v.val
|
142
|
+
else
|
143
|
+
r = RVM::Classes[:error].new(0, "Variable #{name} is not defined.")
|
135
144
|
end
|
145
|
+
RVM::debug "Getting variable value #{name} (#{r})"
|
146
|
+
r
|
136
147
|
end
|
137
148
|
end
|
138
149
|
|
@@ -144,16 +155,18 @@ module RVM
|
|
144
155
|
#
|
145
156
|
# The class is stred in :class
|
146
157
|
class ObjectContext
|
147
|
-
def initialize object, code
|
158
|
+
def initialize object, code, pos = nil
|
148
159
|
@object = object
|
149
160
|
@code = code
|
161
|
+
@pos = pos
|
150
162
|
end
|
151
163
|
|
152
164
|
def execute env
|
153
165
|
#The new
|
154
166
|
obj = @object.execute(env)
|
155
|
-
|
156
|
-
|
167
|
+
new_env = Interpreter::Enviroment.new({:functions => obj.functions, :locals => obj.variables}, env)
|
168
|
+
new_env.define(:self, obj)
|
169
|
+
@code.execute(new_env)
|
157
170
|
end
|
158
171
|
end
|
159
172
|
|
@@ -162,10 +175,11 @@ module RVM
|
|
162
175
|
#
|
163
176
|
#To define class functions use ObjectContext and define the function normaly, nifty isn't it?
|
164
177
|
class SetClassFunction
|
165
|
-
def initialize obj, name, function
|
178
|
+
def initialize obj, name, function, pos = nil
|
166
179
|
@object = obj
|
167
180
|
@name = name
|
168
181
|
@function = function
|
182
|
+
@pos = pos
|
169
183
|
end
|
170
184
|
|
171
185
|
def execute env
|
@@ -181,8 +195,9 @@ module RVM
|
|
181
195
|
# With outer code.
|
182
196
|
class Block
|
183
197
|
attr_reader :content
|
184
|
-
def initialize content
|
198
|
+
def initialize content, pos = nil
|
185
199
|
@content = content
|
200
|
+
@pos = pos
|
186
201
|
end
|
187
202
|
|
188
203
|
# When executed a temporary enviroment is created with the passed
|
@@ -210,15 +225,16 @@ module RVM
|
|
210
225
|
# override:: when true (default) earlyer definitions are
|
211
226
|
# replaced when it is called a second time.
|
212
227
|
# When false a exception is thrown
|
213
|
-
def initialize name, body, override = true
|
228
|
+
def initialize name, body, override = true, pos = nil
|
214
229
|
@name = name
|
215
230
|
@body = body
|
216
231
|
@override = override
|
232
|
+
@pos = pos
|
217
233
|
end
|
218
234
|
|
219
235
|
def execute env
|
220
236
|
if (not @override) and env.function(@name)
|
221
|
-
raise "Function #{@name} already defined!"
|
237
|
+
raise "Function #{@name} already defined at #{@pos}!"
|
222
238
|
end
|
223
239
|
env.def_function(@name.execute(env),@body)
|
224
240
|
nil
|
@@ -235,9 +251,10 @@ module RVM
|
|
235
251
|
# to true the loop is executed another time otherwise the
|
236
252
|
# exection ends.
|
237
253
|
# body:: For each itteration of the loop this is executed once.
|
238
|
-
def initialize(condition, body)
|
254
|
+
def initialize(condition, body, pos = nil)
|
239
255
|
@condition = condition
|
240
256
|
@body = body
|
257
|
+
@pos = pos
|
241
258
|
end
|
242
259
|
|
243
260
|
def execute env
|
@@ -253,8 +270,9 @@ module RVM
|
|
253
270
|
# value isn't evaluated.
|
254
271
|
class Constant
|
255
272
|
attr_reader :value
|
256
|
-
def initialize value
|
273
|
+
def initialize value, pos = nil
|
257
274
|
@value = value
|
275
|
+
@pos = pos
|
258
276
|
end
|
259
277
|
|
260
278
|
def data_type
|
@@ -270,7 +288,7 @@ module RVM
|
|
270
288
|
end
|
271
289
|
|
272
290
|
def execute env
|
273
|
-
RVM::debug "Executing Constant: #{@value}"
|
291
|
+
RVM::debug "Executing Constant at #{@pos}: #{@value}"
|
274
292
|
@value
|
275
293
|
end
|
276
294
|
end
|
@@ -304,10 +322,11 @@ module RVM
|
|
304
322
|
# false casae s executed.
|
305
323
|
# * true_case - is only executed if value evalutes to true (is_true?)
|
306
324
|
# * false_case - is only executed if value evalutes to false (!is_true?)
|
307
|
-
def initialize value, true_case, false_case = nil
|
325
|
+
def initialize value, true_case, false_case = nil, pos = nil
|
308
326
|
@value = value
|
309
327
|
@true_case = true_case
|
310
328
|
@false_case = false_case
|
329
|
+
@pos = pos
|
311
330
|
end
|
312
331
|
|
313
332
|
def data_type
|
@@ -336,9 +355,10 @@ module RVM
|
|
336
355
|
# Both the *name* and the *value* are evaluated before the assignment
|
337
356
|
# is done.
|
338
357
|
class Assignment
|
339
|
-
def initialize name, value
|
358
|
+
def initialize name, value, pos = nil
|
340
359
|
@name = name
|
341
360
|
@value = value
|
361
|
+
@pos = pos
|
342
362
|
end
|
343
363
|
|
344
364
|
def data_type
|
@@ -346,7 +366,7 @@ module RVM
|
|
346
366
|
end
|
347
367
|
|
348
368
|
def execute env
|
349
|
-
RVM::debug "Executing Assignment..."
|
369
|
+
RVM::debug "Executing Assignment at #{@pos}..."
|
350
370
|
env[@name.execute(env).to_s] = @value.execute env
|
351
371
|
end
|
352
372
|
end
|
@@ -355,9 +375,10 @@ module RVM
|
|
355
375
|
#
|
356
376
|
# The *name* is evaluated before the variable is retrieved.
|
357
377
|
class Variable
|
358
|
-
def initialize name
|
378
|
+
def initialize name, pos = nil
|
359
379
|
@name = name
|
360
380
|
@type = :any
|
381
|
+
@pos = pos
|
361
382
|
end
|
362
383
|
|
363
384
|
# The type can only be tretrieved when the name is aconstant
|
@@ -367,9 +388,13 @@ module RVM
|
|
367
388
|
end
|
368
389
|
|
369
390
|
def execute env
|
370
|
-
RVM::debug "Executing Variable..."
|
371
|
-
|
372
|
-
|
391
|
+
RVM::debug "Executing Variable at #{@pos}..."
|
392
|
+
n = @name
|
393
|
+
if not @name.is_a?(Symbol)
|
394
|
+
n = n.execute(env).to_s
|
395
|
+
end
|
396
|
+
r = env.read_var_val(n)
|
397
|
+
#@type = r.data_type if r
|
373
398
|
r
|
374
399
|
end
|
375
400
|
end
|
@@ -377,9 +402,10 @@ module RVM
|
|
377
402
|
# This evauates to the parameter passed to the function call.
|
378
403
|
# The number of it is evaluated and typecasted to an interger.
|
379
404
|
class Parameter
|
380
|
-
def initialize num
|
405
|
+
def initialize num, pos = nil
|
381
406
|
@num = num
|
382
407
|
@type = :any
|
408
|
+
@pos = pos
|
383
409
|
end
|
384
410
|
|
385
411
|
# The type can only be tretrieved when the num is aconstant
|
@@ -389,7 +415,7 @@ module RVM
|
|
389
415
|
end
|
390
416
|
|
391
417
|
def execute env
|
392
|
-
RVM::debug "Executing Parameter..."
|
418
|
+
RVM::debug "Executing Parameter at #{@pos}..."
|
393
419
|
r = env.param(@num.execute(env).to_i)
|
394
420
|
@type = r.data_type if r
|
395
421
|
r
|
@@ -425,9 +451,10 @@ module RVM
|
|
425
451
|
# The catching is handled bythe +RVM::Classes::Block+ class.
|
426
452
|
class ReturnException < Exception
|
427
453
|
attr_reader :val
|
428
|
-
def initialize val
|
454
|
+
def initialize val, pos = nil
|
429
455
|
super()
|
430
456
|
@val = val
|
457
|
+
@pos = pos
|
431
458
|
end
|
432
459
|
end
|
433
460
|
|
@@ -435,8 +462,9 @@ module RVM
|
|
435
462
|
# +ReturnException+ which can be caught to have the function
|
436
463
|
# or block return what they wish.
|
437
464
|
class Return
|
438
|
-
def initialize val
|
465
|
+
def initialize val, pos = nil
|
439
466
|
@val = val
|
467
|
+
@pos = pos
|
440
468
|
end
|
441
469
|
|
442
470
|
def data_type
|
@@ -461,9 +489,10 @@ module RVM
|
|
461
489
|
# class.
|
462
490
|
#
|
463
491
|
# Arguments is a list of the arguments to the function.
|
464
|
-
def initialize function, arguments
|
492
|
+
def initialize function, arguments, pos = nil
|
465
493
|
@function = function
|
466
494
|
@arguments = arguments
|
495
|
+
@pos = pos
|
467
496
|
end
|
468
497
|
|
469
498
|
def data_type
|
@@ -480,25 +509,25 @@ module RVM
|
|
480
509
|
|
481
510
|
def execute env
|
482
511
|
RVM::debug "Executing FunctionCall..."
|
483
|
-
args = @arguments
|
512
|
+
args = @arguments.dup
|
484
513
|
if @function.is_a? RVM::Classes[:block]
|
485
|
-
|
514
|
+
args.map! do |arg|
|
486
515
|
arg.execute env
|
487
516
|
end
|
488
|
-
@function.call(args, env)
|
517
|
+
@function.call(args, env, @pos)
|
489
518
|
elsif (fun = env.function(@function))
|
490
|
-
args
|
519
|
+
args.map! do |arg|
|
491
520
|
arg.execute env
|
492
521
|
end
|
493
|
-
fun.call(args, env)
|
522
|
+
fun.call(args, env, @pos)
|
494
523
|
else
|
495
524
|
fun = RVM::Functions[@function]
|
496
525
|
if fun.execargs
|
497
|
-
args
|
526
|
+
args.map! do |arg|
|
498
527
|
arg.execute env
|
499
528
|
end
|
500
529
|
end
|
501
|
-
fun.call(args, env)
|
530
|
+
fun.call(args, env, @pos)
|
502
531
|
end
|
503
532
|
end
|
504
533
|
end
|
data/lib/rvm/languages/ecma.rb
CHANGED
@@ -11,13 +11,14 @@ require 'strscan'
|
|
11
11
|
require 'rvm/functions/math'
|
12
12
|
require 'rvm/functions/logic'
|
13
13
|
require 'rvm/functions/array'
|
14
|
+
require 'rvm/functions/general'
|
14
15
|
require 'pp'
|
15
16
|
|
16
17
|
module RVM
|
17
18
|
module Languages
|
18
19
|
class ECMA < Racc::Parser
|
19
20
|
|
20
|
-
module_eval(<<'...end ecma.y/module_eval...', 'ecma.y',
|
21
|
+
module_eval(<<'...end ecma.y/module_eval...', 'ecma.y', 191)
|
21
22
|
extend Plugin
|
22
23
|
plugin_host RVM::Languages
|
23
24
|
register_for :ecma
|
@@ -27,7 +28,7 @@ module_eval(<<'...end ecma.y/module_eval...', 'ecma.y', 194)
|
|
27
28
|
s = StringScanner.new(str)
|
28
29
|
while not s.eos?
|
29
30
|
if s.scan(/\/\/.*?\n/)
|
30
|
-
elsif s.scan(
|
31
|
+
elsif s.scan(/\/\*.*?\*\//m)
|
31
32
|
elsif s.scan(/('(\\.|[^'])*')/)
|
32
33
|
m = s.matched.gsub(/^'/,'').gsub(/'$/,'')
|
33
34
|
@q.push [:STRING, [m, s.pos]]
|
@@ -69,7 +70,7 @@ module_eval(<<'...end ecma.y/module_eval...', 'ecma.y', 194)
|
|
69
70
|
:IDENT
|
70
71
|
end
|
71
72
|
@q.push [type, [m, s.pos]]
|
72
|
-
elsif s.scan(/(([<>]=?)|([!=]=)|[.+*\/()
|
73
|
+
elsif s.scan(/(([<>]=?)|([!=]=)|[.+*\/(),=;\!-]|&&|\|\|)/) # This ones do not get a new line (sepperator added)
|
73
74
|
m = s.matched
|
74
75
|
@q.push [m, [m, s.pos]]
|
75
76
|
elsif s.scan(/\n+/)
|
@@ -90,246 +91,296 @@ module_eval(<<'...end ecma.y/module_eval...', 'ecma.y', 194)
|
|
90
91
|
##### State transition tables begin ###
|
91
92
|
|
92
93
|
racc_action_table = [
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
nil, nil,
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
nil, nil, nil,
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
nil, nil,
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
nil, nil, nil,
|
121
|
-
|
122
|
-
nil,
|
123
|
-
|
124
|
-
|
125
|
-
nil,
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
nil,
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
nil,
|
135
|
-
|
136
|
-
nil,
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
nil, nil, nil,
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
nil,
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
94
|
+
63, 65, 67, 68, 55, 63, 65, 67, 63, 110,
|
95
|
+
63, 65, 67, 68, 55, 56, 57, 58, 59, 60,
|
96
|
+
61, 62, 64, 54, 54, 41, 54, 132, 113, 115,
|
97
|
+
54, 54, 66, 66, 54, 66, 54, 111, -68, 66,
|
98
|
+
66, 63, 103, 66, 112, 66, 63, 65, 67, 68,
|
99
|
+
55, 56, 57, 63, 65, 67, 68, 55, 56, 57,
|
100
|
+
63, 65, 67, 68, 55, 56, 57, 54, 54, 69,
|
101
|
+
76, 54, 54, 77, 73, 10, 66, 66, 70, 54,
|
102
|
+
66, 66, 96, 114, 71, 115, 54, 117, 66, 118,
|
103
|
+
72, 81, 69, 106, 50, 66, 63, 65, 67, 68,
|
104
|
+
55, 56, 57, 58, 59, 60, 61, 62, 64, 63,
|
105
|
+
65, 67, 68, 55, 56, 57, 63, 65, 67, 68,
|
106
|
+
55, 48, 54, 63, 65, 67, 68, 55, 56, 57,
|
107
|
+
46, 66, 10, 41, 129, 54, 130, 131, 108, 109,
|
108
|
+
43, 42, 54, 41, 66, 63, 65, 67, 135, 54,
|
109
|
+
39, 66, nil, nil, nil, nil, 32, 1, 66, 63,
|
110
|
+
65, 67, 68, 55, 56, 57, 28, 36, nil, nil,
|
111
|
+
nil, 54, nil, nil, nil, 22, nil, nil, 31, 2,
|
112
|
+
66, nil, nil, 13, nil, 54, nil, 25, nil, nil,
|
113
|
+
nil, nil, nil, nil, 66, 63, 65, 67, 68, 55,
|
114
|
+
56, 57, 58, 59, 60, 61, 62, 64, 63, 65,
|
115
|
+
67, 68, 55, 56, 57, 58, 59, 60, 61, 62,
|
116
|
+
64, 54, nil, nil, nil, nil, 79, nil, nil, nil,
|
117
|
+
66, nil, nil, nil, 54, nil, nil, nil, nil, nil,
|
118
|
+
nil, nil, nil, 66, 63, 65, 67, 68, 55, 56,
|
119
|
+
57, 58, 59, 60, 61, 62, 64, 63, 65, 67,
|
120
|
+
68, 55, 56, 57, 58, 59, 60, 61, 62, 64,
|
121
|
+
54, nil, nil, nil, nil, nil, nil, nil, nil, 66,
|
122
|
+
nil, nil, nil, 54, nil, nil, nil, nil, nil, nil,
|
123
|
+
nil, nil, 66, 63, 65, 67, 68, 55, 56, 57,
|
124
|
+
58, 59, 60, 61, 62, 64, nil, 32, 1, nil,
|
125
|
+
nil, nil, nil, nil, nil, nil, nil, 28, 34, 54,
|
126
|
+
nil, 7, 11, nil, 16, 19, 22, 26, 66, 31,
|
127
|
+
2, nil, 10, nil, 13, 32, 1, nil, 25, nil,
|
128
|
+
nil, 32, 1, nil, nil, 28, 34, nil, nil, nil,
|
129
|
+
nil, 28, 34, nil, 22, nil, nil, 31, 2, nil,
|
130
|
+
22, nil, 13, 31, 2, nil, 25, nil, 13, 32,
|
131
|
+
1, nil, 25, nil, nil, nil, nil, nil, nil, 28,
|
132
|
+
34, nil, 5, 7, 11, nil, 16, 19, 22, 26,
|
133
|
+
nil, 31, 2, nil, 10, nil, 13, 32, 1, nil,
|
134
|
+
25, nil, nil, 32, 1, nil, nil, 28, 34, nil,
|
135
|
+
nil, nil, nil, 28, 36, nil, 22, nil, nil, 31,
|
136
|
+
2, nil, 22, nil, 13, 31, 2, nil, 25, nil,
|
137
|
+
13, 32, 1, nil, 25, nil, nil, 32, 1, nil,
|
138
|
+
nil, 28, 34, nil, nil, nil, nil, 28, 34, nil,
|
139
|
+
22, nil, nil, 31, 2, nil, 22, nil, 13, 31,
|
140
|
+
2, nil, 25, nil, 13, 32, 1, nil, 25, nil,
|
141
|
+
nil, 32, 1, nil, nil, 28, 34, nil, nil, nil,
|
142
|
+
nil, 28, 36, nil, 22, nil, nil, 31, 2, nil,
|
143
|
+
22, nil, 13, 31, 2, nil, 25, nil, 13, 32,
|
144
|
+
1, nil, 25, nil, nil, 32, 1, nil, nil, 28,
|
145
|
+
34, nil, nil, nil, nil, 28, 36, nil, 22, nil,
|
146
|
+
nil, 31, 2, nil, 22, nil, 13, 31, 2, nil,
|
147
|
+
25, nil, 13, 32, 1, nil, 25, nil, nil, nil,
|
148
|
+
nil, nil, nil, 28, 34, nil, nil, 7, 11, nil,
|
149
|
+
16, 19, 22, 26, nil, 31, 2, nil, 10, nil,
|
150
|
+
13, 32, 1, nil, 25, nil, nil, 32, 1, nil,
|
151
|
+
nil, 28, 36, nil, nil, nil, nil, 28, 36, nil,
|
152
|
+
22, nil, nil, 31, 2, nil, 22, nil, 13, 31,
|
153
|
+
2, nil, 25, nil, 13, 32, 1, nil, 25, nil,
|
154
|
+
nil, 32, 1, nil, nil, 28, 36, nil, nil, nil,
|
155
|
+
nil, 28, 36, nil, 22, nil, nil, 31, 2, nil,
|
156
|
+
22, nil, 13, 31, 2, nil, 25, nil, 13, 32,
|
157
|
+
1, nil, 25, nil, nil, 32, 1, nil, nil, 28,
|
158
|
+
36, nil, nil, nil, nil, 28, 36, nil, 22, nil,
|
159
|
+
nil, 31, 2, nil, 22, nil, 13, 31, 2, nil,
|
160
|
+
25, nil, 13, 32, 1, nil, 25, nil, nil, 32,
|
161
|
+
1, nil, nil, 28, 36, nil, nil, nil, nil, 28,
|
162
|
+
36, nil, 22, nil, nil, 31, 2, nil, 22, nil,
|
163
|
+
13, 31, 2, nil, 25, nil, 13, 32, 1, nil,
|
164
|
+
25, nil, nil, 32, 1, nil, nil, 28, 36, nil,
|
165
|
+
nil, nil, nil, 28, 36, nil, 22, nil, nil, 31,
|
166
|
+
2, nil, 22, nil, 13, 31, 2, nil, 25, nil,
|
167
|
+
13, 32, 1, nil, 25, nil, nil, nil, nil, nil,
|
168
|
+
nil, 28, 36, nil, nil, nil, 32, 1, nil, nil,
|
169
|
+
22, nil, nil, 31, 2, nil, 28, 34, 13, nil,
|
170
|
+
7, 11, 25, 16, 19, 22, 26, nil, 31, 2,
|
171
|
+
nil, 10, nil, 13, 32, 1, nil, 25, nil, nil,
|
172
|
+
nil, 32, 1, nil, 28, 36, nil, nil, 32, 1,
|
173
|
+
nil, 28, 36, 22, nil, nil, 31, 2, 28, 36,
|
174
|
+
22, 13, 125, 31, 2, 25, nil, 22, 13, nil,
|
175
|
+
31, 2, 25, 32, 1, 13, nil, nil, nil, 25,
|
176
|
+
32, 1, nil, 28, 36, nil, nil, 32, 1, nil,
|
177
|
+
28, 36, 22, nil, nil, 31, 2, 28, 36, 22,
|
178
|
+
13, 100, 31, 2, 25, nil, 22, 13, nil, 31,
|
179
|
+
2, 25, 32, 1, 13, nil, nil, nil, 25, nil,
|
180
|
+
nil, nil, 28, 34, nil, nil, 7, 11, nil, 16,
|
181
|
+
19, 22, 26, nil, 31, 2, nil, 10, nil, 13,
|
182
|
+
32, 1, nil, 25, nil, nil, nil, nil, nil, nil,
|
183
|
+
28, 34, nil, nil, 7, 11, nil, 16, 19, 22,
|
184
|
+
26, nil, 31, 2, nil, 10, nil, 13, 32, 1,
|
185
|
+
nil, 25, nil, nil, nil, nil, nil, nil, 28, 34,
|
186
|
+
nil, nil, nil, 32, 1, nil, nil, 22, nil, nil,
|
187
|
+
31, 2, nil, 28, 34, 13, nil, 7, 11, 25,
|
188
|
+
16, 19, 22, 26, nil, 31, 2, nil, 10, nil,
|
189
|
+
13, 32, 1, nil, 25, nil, nil, nil, nil, nil,
|
190
|
+
nil, 28, 34, nil, nil, 7, 11, nil, 16, 19,
|
191
|
+
22, 26, nil, 31, 2, nil, 10, nil, 13, 32,
|
192
|
+
1, nil, 25, nil, nil, 32, 1, nil, nil, 28,
|
193
|
+
36, nil, nil, nil, nil, 28, 36, nil, 22, nil,
|
194
|
+
nil, 31, 2, nil, 22, nil, 13, 31, 2, nil,
|
195
|
+
25, nil, 13, 32, 1, nil, 25, nil, nil, nil,
|
196
|
+
nil, nil, nil, 28, 34, nil, 5, 7, 11, nil,
|
197
|
+
16, 19, 22, 26, nil, 31, 2, nil, 10, nil,
|
198
|
+
13, 32, 1, nil, 25, nil, nil, nil, nil, nil,
|
199
|
+
nil, 28, 36, nil, nil, nil, nil, nil, nil, nil,
|
200
|
+
22, nil, nil, 31, 2, nil, nil, nil, 13, nil,
|
201
|
+
nil, nil, 25 ]
|
168
202
|
|
169
203
|
racc_action_check = [
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
nil, nil,
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
nil, nil, nil,
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
nil, nil,
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
nil, nil, nil,
|
198
|
-
|
199
|
-
nil,
|
200
|
-
|
201
|
-
|
202
|
-
nil,
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
nil, 106, 106, nil,
|
207
|
-
106, nil, nil, nil,
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
nil,
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
nil, nil,
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
nil, nil, nil,
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
nil,
|
230
|
-
|
231
|
-
|
232
|
-
57, nil,
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
204
|
+
85, 85, 85, 85, 85, 84, 84, 84, 94, 81,
|
205
|
+
83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
|
206
|
+
83, 83, 83, 123, 53, 73, 85, 124, 96, 124,
|
207
|
+
35, 84, 123, 53, 94, 85, 83, 83, 34, 35,
|
208
|
+
84, 97, 73, 94, 95, 83, 87, 87, 87, 87,
|
209
|
+
87, 87, 87, 88, 88, 88, 88, 88, 88, 88,
|
210
|
+
89, 89, 89, 89, 89, 89, 89, 97, 51, 34,
|
211
|
+
44, 92, 87, 44, 40, 103, 97, 51, 37, 88,
|
212
|
+
92, 87, 66, 99, 37, 99, 89, 105, 88, 105,
|
213
|
+
39, 49, 36, 75, 23, 89, 126, 126, 126, 126,
|
214
|
+
126, 126, 126, 126, 126, 126, 126, 126, 126, 90,
|
215
|
+
90, 90, 90, 90, 90, 90, 86, 86, 86, 86,
|
216
|
+
86, 16, 126, 91, 91, 91, 91, 91, 91, 91,
|
217
|
+
11, 126, 117, 118, 119, 90, 120, 122, 78, 80,
|
218
|
+
7, 6, 86, 5, 90, 98, 98, 98, 133, 91,
|
219
|
+
4, 86, nil, nil, nil, nil, 65, 65, 91, 93,
|
220
|
+
93, 93, 93, 93, 93, 93, 65, 65, nil, nil,
|
221
|
+
nil, 98, nil, nil, nil, 65, nil, nil, 65, 65,
|
222
|
+
98, nil, nil, 65, nil, 93, nil, 65, nil, nil,
|
223
|
+
nil, nil, nil, nil, 93, 47, 47, 47, 47, 47,
|
224
|
+
47, 47, 47, 47, 47, 47, 47, 47, 101, 101,
|
225
|
+
101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
|
226
|
+
101, 47, nil, nil, nil, nil, 47, nil, nil, nil,
|
227
|
+
47, nil, nil, nil, 101, nil, nil, nil, nil, nil,
|
228
|
+
nil, nil, nil, 101, 33, 33, 33, 33, 33, 33,
|
229
|
+
33, 33, 33, 33, 33, 33, 33, 102, 102, 102,
|
230
|
+
102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
|
231
|
+
33, nil, nil, nil, nil, nil, nil, nil, nil, 33,
|
232
|
+
nil, nil, nil, 102, nil, nil, nil, nil, nil, nil,
|
233
|
+
nil, nil, 102, 38, 38, 38, 38, 38, 38, 38,
|
234
|
+
38, 38, 38, 38, 38, 38, nil, 108, 108, nil,
|
235
|
+
nil, nil, nil, nil, nil, nil, nil, 108, 108, 38,
|
236
|
+
nil, 108, 108, nil, 108, 108, 108, 108, 38, 108,
|
237
|
+
108, nil, 108, nil, 108, 110, 110, nil, 108, nil,
|
238
|
+
nil, 106, 106, nil, nil, 110, 110, nil, nil, nil,
|
239
|
+
nil, 106, 106, nil, 110, nil, nil, 110, 110, nil,
|
240
|
+
106, nil, 110, 106, 106, nil, 110, nil, 106, 42,
|
241
|
+
42, nil, 106, nil, nil, nil, nil, nil, nil, 42,
|
242
|
+
42, nil, 42, 42, 42, nil, 42, 42, 42, 42,
|
243
|
+
nil, 42, 42, nil, 42, nil, 42, 43, 43, nil,
|
244
|
+
42, nil, nil, 32, 32, nil, nil, 43, 43, nil,
|
245
|
+
nil, nil, nil, 32, 32, nil, 43, nil, nil, 43,
|
246
|
+
43, nil, 32, nil, 43, 32, 32, nil, 43, nil,
|
247
|
+
32, 46, 46, nil, 32, nil, nil, 26, 26, nil,
|
248
|
+
nil, 46, 46, nil, nil, nil, nil, 26, 26, nil,
|
249
|
+
46, nil, nil, 46, 46, nil, 26, nil, 46, 26,
|
250
|
+
26, nil, 46, nil, 26, 48, 48, nil, 26, nil,
|
251
|
+
nil, 25, 25, nil, nil, 48, 48, nil, nil, nil,
|
252
|
+
nil, 25, 25, nil, 48, nil, nil, 48, 48, nil,
|
253
|
+
25, nil, 48, 25, 25, nil, 48, nil, 25, 50,
|
254
|
+
50, nil, 25, nil, nil, 112, 112, nil, nil, 50,
|
255
|
+
50, nil, nil, nil, nil, 112, 112, nil, 50, nil,
|
256
|
+
nil, 50, 50, nil, 112, nil, 50, 112, 112, nil,
|
257
|
+
50, nil, 112, 19, 19, nil, 112, nil, nil, nil,
|
258
|
+
nil, nil, nil, 19, 19, nil, nil, 19, 19, nil,
|
259
|
+
19, 19, 19, 19, nil, 19, 19, nil, 19, nil,
|
260
|
+
19, 54, 54, nil, 19, nil, nil, 55, 55, nil,
|
261
|
+
nil, 54, 54, nil, nil, nil, nil, 55, 55, nil,
|
262
|
+
54, nil, nil, 54, 54, nil, 55, nil, 54, 55,
|
263
|
+
55, nil, 54, nil, 55, 56, 56, nil, 55, nil,
|
264
|
+
nil, 57, 57, nil, nil, 56, 56, nil, nil, nil,
|
265
|
+
nil, 57, 57, nil, 56, nil, nil, 56, 56, nil,
|
266
|
+
57, nil, 56, 57, 57, nil, 56, nil, 57, 58,
|
267
|
+
58, nil, 57, nil, nil, 59, 59, nil, nil, 58,
|
268
|
+
58, nil, nil, nil, nil, 59, 59, nil, 58, nil,
|
269
|
+
nil, 58, 58, nil, 59, nil, 58, 59, 59, nil,
|
270
|
+
58, nil, 59, 60, 60, nil, 59, nil, nil, 61,
|
271
|
+
61, nil, nil, 60, 60, nil, nil, nil, nil, 61,
|
272
|
+
61, nil, 60, nil, nil, 60, 60, nil, 61, nil,
|
273
|
+
60, 61, 61, nil, 60, nil, 61, 62, 62, nil,
|
274
|
+
61, nil, nil, 63, 63, nil, nil, 62, 62, nil,
|
275
|
+
nil, nil, nil, 63, 63, nil, 62, nil, nil, 62,
|
276
|
+
62, nil, 63, nil, 62, 63, 63, nil, 62, nil,
|
277
|
+
63, 64, 64, nil, 63, nil, nil, nil, nil, nil,
|
278
|
+
nil, 64, 64, nil, nil, nil, 109, 109, nil, nil,
|
279
|
+
64, nil, nil, 64, 64, nil, 109, 109, 64, nil,
|
280
|
+
109, 109, 64, 109, 109, 109, 109, nil, 109, 109,
|
281
|
+
nil, 109, nil, 109, 113, 113, nil, 109, nil, nil,
|
282
|
+
nil, 67, 67, nil, 113, 113, nil, nil, 13, 13,
|
283
|
+
nil, 67, 67, 113, nil, nil, 113, 113, 13, 13,
|
284
|
+
67, 113, 113, 67, 67, 113, nil, 13, 67, nil,
|
285
|
+
13, 13, 67, 69, 69, 13, nil, nil, nil, 13,
|
286
|
+
71, 71, nil, 69, 69, nil, nil, 115, 115, nil,
|
287
|
+
71, 71, 69, nil, nil, 69, 69, 115, 115, 71,
|
288
|
+
69, 69, 71, 71, 69, nil, 115, 71, nil, 115,
|
289
|
+
115, 71, 10, 10, 115, nil, nil, nil, 115, nil,
|
290
|
+
nil, nil, 10, 10, nil, nil, 10, 10, nil, 10,
|
291
|
+
10, 10, 10, nil, 10, 10, nil, 10, nil, 10,
|
292
|
+
77, 77, nil, 10, nil, nil, nil, nil, nil, nil,
|
293
|
+
77, 77, nil, nil, 77, 77, nil, 77, 77, 77,
|
294
|
+
77, nil, 77, 77, nil, 77, nil, 77, 129, 129,
|
295
|
+
nil, 77, nil, nil, nil, nil, nil, nil, 129, 129,
|
296
|
+
nil, nil, nil, 130, 130, nil, nil, 129, nil, nil,
|
297
|
+
129, 129, nil, 130, 130, 129, nil, 130, 130, 129,
|
298
|
+
130, 130, 130, 130, nil, 130, 130, nil, 130, nil,
|
299
|
+
130, 135, 135, nil, 130, nil, nil, nil, nil, nil,
|
300
|
+
nil, 135, 135, nil, nil, 135, 135, nil, 135, 135,
|
301
|
+
135, 135, nil, 135, 135, nil, 135, nil, 135, 2,
|
302
|
+
2, nil, 135, nil, nil, 1, 1, nil, nil, 2,
|
303
|
+
2, nil, nil, nil, nil, 1, 1, nil, 2, nil,
|
304
|
+
nil, 2, 2, nil, 1, nil, 2, 1, 1, nil,
|
305
|
+
2, nil, 1, 0, 0, nil, 1, nil, nil, nil,
|
306
|
+
nil, nil, nil, 0, 0, nil, 0, 0, 0, nil,
|
307
|
+
0, 0, 0, 0, nil, 0, 0, nil, 0, nil,
|
308
|
+
0, 68, 68, nil, 0, nil, nil, nil, nil, nil,
|
309
|
+
nil, 68, 68, nil, nil, nil, nil, nil, nil, nil,
|
310
|
+
68, nil, nil, 68, 68, nil, nil, nil, 68, nil,
|
311
|
+
nil, nil, 68 ]
|
245
312
|
|
246
313
|
racc_action_pointer = [
|
247
|
-
|
248
|
-
|
249
|
-
nil,
|
250
|
-
nil, nil,
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
nil,
|
258
|
-
|
259
|
-
|
260
|
-
|
314
|
+
1003, 975, 969, nil, 150, 122, 102, 103, nil, nil,
|
315
|
+
842, 93, nil, 778, nil, nil, 84, nil, nil, 523,
|
316
|
+
nil, nil, nil, 88, nil, 461, 427, nil, nil, nil,
|
317
|
+
nil, nil, 393, 237, 32, -3, 55, 44, 286, 90,
|
318
|
+
37, nil, 359, 387, 34, nil, 421, 188, 455, 64,
|
319
|
+
489, 35, nil, -9, 551, 557, 585, 591, 619, 625,
|
320
|
+
653, 659, 687, 693, 721, 146, 61, 771, 1031, 803,
|
321
|
+
nil, 810, nil, 4, nil, 54, nil, 870, 100, nil,
|
322
|
+
101, -28, nil, 3, -2, -7, 109, 39, 46, 53,
|
323
|
+
102, 116, 38, 152, 1, 38, -9, 34, 138, 45,
|
324
|
+
nil, 201, 250, 40, nil, 49, 331, nil, 297, 736,
|
325
|
+
325, nil, 495, 764, nil, 817, nil, 97, 112, 95,
|
326
|
+
110, nil, 99, -10, -11, nil, 89, nil, nil, 898,
|
327
|
+
913, nil, nil, 110, nil, 941, nil ]
|
261
328
|
|
262
329
|
racc_action_default = [
|
263
|
-
-2, -
|
264
|
-
-
|
265
|
-
-
|
266
|
-
-
|
267
|
-
-
|
268
|
-
-
|
269
|
-
-
|
270
|
-
-
|
271
|
-
-
|
272
|
-
-
|
273
|
-
-3, -14, -31, -
|
274
|
-
-
|
275
|
-
-
|
276
|
-
-
|
330
|
+
-2, -69, -69, -22, -69, -69, -1, -69, -45, -24,
|
331
|
+
-69, -69, -25, -69, -26, -7, -69, -27, -5, -69,
|
332
|
+
-62, -6, -61, -69, -43, -69, -69, -23, -60, -44,
|
333
|
+
-49, -47, -69, -16, -46, -39, -46, -69, -30, -69,
|
334
|
+
-69, -68, -9, -69, -69, -18, -69, -69, -69, -69,
|
335
|
+
-69, -38, -28, -40, -69, -69, -69, -69, -69, -69,
|
336
|
+
-69, -69, -69, -69, -69, -69, -69, -69, -69, -69,
|
337
|
+
-29, -69, 137, -69, -8, -69, -21, -20, -69, -48,
|
338
|
+
-69, -69, -17, -69, -33, -41, -42, -51, -50, -54,
|
339
|
+
-55, -52, -36, -53, -34, -56, -68, -35, -32, -69,
|
340
|
+
-3, -14, -31, -69, -12, -69, -69, -19, -69, -69,
|
341
|
+
-69, -37, -69, -69, -4, -69, -10, -69, -69, -69,
|
342
|
+
-64, -66, -69, -57, -69, -59, -15, -11, -13, -69,
|
343
|
+
-69, -67, -58, -69, -63, -69, -65 ]
|
277
344
|
|
278
345
|
racc_goto_table = [
|
279
|
-
|
280
|
-
|
281
|
-
127,
|
282
|
-
nil, nil, nil,
|
283
|
-
nil, nil, nil,
|
284
|
-
nil, nil,
|
285
|
-
|
286
|
-
|
287
|
-
nil, 119, nil, nil, nil, 122, nil, nil, nil,
|
288
|
-
|
289
|
-
nil, nil,
|
290
|
-
|
291
|
-
|
292
|
-
25, nil, nil, nil, nil, 25, nil, nil, 83, nil,
|
293
|
-
nil, 85, 86, 87, 88, 89, nil, nil, 90, 91,
|
294
|
-
92, 93, 94, 95, 96, 97, nil, 101, nil, 102,
|
295
|
-
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
296
|
-
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
297
|
-
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
298
|
-
nil, nil, nil, nil, nil, nil, nil, nil, nil, 101,
|
299
|
-
125, nil, 126 ]
|
346
|
+
45, 52, 35, 38, 99, 15, 116, 4, 105, 49,
|
347
|
+
40, 6, 44, 37, 47, nil, nil, nil, 75, nil,
|
348
|
+
127, 78, nil, 80, nil, 82, 51, nil, nil, nil,
|
349
|
+
nil, nil, nil, 53, nil, nil, nil, nil, nil, nil,
|
350
|
+
nil, nil, nil, nil, nil, nil, nil, 74, 124, nil,
|
351
|
+
nil, nil, nil, nil, nil, 83, 84, 85, 86, 87,
|
352
|
+
88, 89, 90, 91, 92, 93, 94, 107, 97, 98,
|
353
|
+
101, 95, 102, nil, nil, nil, nil, nil, 104, nil,
|
354
|
+
nil, 119, nil, nil, nil, 122, nil, nil, nil, nil,
|
355
|
+
nil, nil, nil, nil, nil, nil, nil, nil, 120, 121,
|
356
|
+
nil, nil, nil, nil, 133, nil, nil, nil, nil, nil,
|
357
|
+
nil, nil, nil, 123, 101, nil, 126, nil, nil, nil,
|
358
|
+
134, nil, nil, 128, nil, 136 ]
|
300
359
|
|
301
360
|
racc_goto_check = [
|
302
|
-
|
303
|
-
|
304
|
-
9,
|
305
|
-
nil, nil, nil,
|
306
|
-
nil, nil, nil,
|
307
|
-
nil, nil,
|
308
|
-
|
309
|
-
|
310
|
-
nil, 12, nil, nil, nil, 12, nil, nil, nil,
|
311
|
-
|
312
|
-
nil, nil,
|
313
|
-
|
314
|
-
|
315
|
-
8, nil, nil, nil, nil, 8, nil, nil, 11, nil,
|
316
|
-
nil, 11, 11, 11, 11, 11, nil, nil, 11, 11,
|
317
|
-
11, 11, 11, 11, 11, 11, nil, 11, nil, 11,
|
318
|
-
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
319
|
-
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
320
|
-
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
321
|
-
nil, nil, nil, nil, nil, nil, nil, nil, nil, 11,
|
322
|
-
11, nil, 11 ]
|
361
|
+
6, 12, 11, 11, 4, 5, 9, 1, 10, 6,
|
362
|
+
8, 2, 13, 19, 11, nil, nil, nil, 12, nil,
|
363
|
+
9, 12, nil, 12, nil, 12, 11, nil, nil, nil,
|
364
|
+
nil, nil, nil, 11, nil, nil, nil, nil, nil, nil,
|
365
|
+
nil, nil, nil, nil, nil, nil, nil, 5, 4, nil,
|
366
|
+
nil, nil, nil, nil, nil, 11, 11, 11, 11, 11,
|
367
|
+
11, 11, 11, 11, 11, 11, 11, 6, 11, 11,
|
368
|
+
11, 8, 11, nil, nil, nil, nil, nil, 8, nil,
|
369
|
+
nil, 12, nil, nil, nil, 12, nil, nil, nil, nil,
|
370
|
+
nil, nil, nil, nil, nil, nil, nil, nil, 6, 6,
|
371
|
+
nil, nil, nil, nil, 12, nil, nil, nil, nil, nil,
|
372
|
+
nil, nil, nil, 11, 11, nil, 11, nil, nil, nil,
|
373
|
+
6, nil, nil, 8, nil, 6 ]
|
323
374
|
|
324
375
|
racc_goto_pointer = [
|
325
|
-
nil,
|
326
|
-
-
|
327
|
-
nil, nil, nil
|
376
|
+
nil, 7, 11, nil, -65, 5, -10, nil, 5, -97,
|
377
|
+
-65, 1, -25, 2, nil, nil, nil, nil, nil, 11,
|
378
|
+
nil, nil, nil ]
|
328
379
|
|
329
380
|
racc_goto_default = [
|
330
|
-
nil, nil, nil,
|
331
|
-
nil,
|
332
|
-
|
381
|
+
nil, nil, nil, 8, nil, nil, 18, 21, 23, 27,
|
382
|
+
nil, 33, 3, nil, 9, 12, 14, 17, 20, nil,
|
383
|
+
24, 29, 30 ]
|
333
384
|
|
334
385
|
racc_reduce_table = [
|
335
386
|
0, 0, :racc_error,
|
@@ -369,41 +420,40 @@ racc_reduce_table = [
|
|
369
420
|
3, 54, :_reduce_34,
|
370
421
|
3, 54, :_reduce_35,
|
371
422
|
3, 54, :_reduce_36,
|
423
|
+
4, 54, :_reduce_37,
|
424
|
+
2, 54, :_reduce_38,
|
425
|
+
2, 54, :_reduce_39,
|
426
|
+
2, 54, :_reduce_none,
|
427
|
+
3, 54, :_reduce_41,
|
428
|
+
3, 54, :_reduce_42,
|
372
429
|
1, 54, :_reduce_none,
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
3,
|
378
|
-
|
379
|
-
3,
|
380
|
-
3,
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
2, 64, :_reduce_49,
|
385
|
-
2, 64, :_reduce_none,
|
386
|
-
1, 64, :_reduce_none,
|
387
|
-
1, 64, :_reduce_none,
|
388
|
-
1, 64, :_reduce_none,
|
389
|
-
1, 63, :_reduce_54,
|
430
|
+
1, 54, :_reduce_none,
|
431
|
+
1, 54, :_reduce_none,
|
432
|
+
1, 54, :_reduce_46,
|
433
|
+
1, 54, :_reduce_47,
|
434
|
+
3, 54, :_reduce_48,
|
435
|
+
1, 54, :_reduce_none,
|
436
|
+
3, 63, :_reduce_50,
|
437
|
+
3, 63, :_reduce_51,
|
438
|
+
3, 63, :_reduce_52,
|
439
|
+
3, 63, :_reduce_53,
|
440
|
+
3, 63, :_reduce_54,
|
390
441
|
3, 63, :_reduce_55,
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
1,
|
397
|
-
1,
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
racc_reduce_n = 70
|
442
|
+
3, 64, :_reduce_56,
|
443
|
+
5, 64, :_reduce_57,
|
444
|
+
6, 64, :_reduce_58,
|
445
|
+
5, 64, :_reduce_59,
|
446
|
+
1, 65, :_reduce_60,
|
447
|
+
1, 65, :_reduce_61,
|
448
|
+
1, 65, :_reduce_none,
|
449
|
+
7, 58, :_reduce_63,
|
450
|
+
5, 58, :_reduce_64,
|
451
|
+
9, 57, :_reduce_65,
|
452
|
+
5, 59, :_reduce_66,
|
453
|
+
6, 59, :_reduce_67,
|
454
|
+
1, 51, :_reduce_68 ]
|
455
|
+
|
456
|
+
racc_reduce_n = 69
|
407
457
|
|
408
458
|
racc_shift_n = 137
|
409
459
|
|
@@ -536,8 +586,6 @@ Racc_token_to_s_table = [
|
|
536
586
|
"return",
|
537
587
|
"ARRAY",
|
538
588
|
"array_content",
|
539
|
-
"atom",
|
540
|
-
"exp0",
|
541
589
|
"comp",
|
542
590
|
"objcall",
|
543
591
|
"const" ]
|
@@ -559,14 +607,14 @@ module_eval(<<'.,.,', 'ecma.y', 31)
|
|
559
607
|
|
560
608
|
module_eval(<<'.,.,', 'ecma.y', 33)
|
561
609
|
def _reduce_3(val, _values, result)
|
562
|
-
result = RVM::Interpreter::FunctionCall.new(val[0], [])
|
610
|
+
result = RVM::Interpreter::FunctionCall.new(val[0][0], [], val[0][1])
|
563
611
|
result
|
564
612
|
end
|
565
613
|
.,.,
|
566
614
|
|
567
615
|
module_eval(<<'.,.,', 'ecma.y', 34)
|
568
616
|
def _reduce_4(val, _values, result)
|
569
|
-
result = RVM::Interpreter::FunctionCall.new(val[0], val[2])
|
617
|
+
result = RVM::Interpreter::FunctionCall.new(val[0][0], val[2], val[0][1])
|
570
618
|
result
|
571
619
|
end
|
572
620
|
.,.,
|
@@ -764,176 +812,174 @@ module_eval(<<'.,.,', 'ecma.y', 106)
|
|
764
812
|
end
|
765
813
|
.,.,
|
766
814
|
|
767
|
-
|
815
|
+
module_eval(<<'.,.,', 'ecma.y', 107)
|
816
|
+
def _reduce_37(val, _values, result)
|
817
|
+
result = RVM::Interpreter::FunctionCall.new(:at, [result, val[2]])
|
818
|
+
result
|
819
|
+
end
|
820
|
+
.,.,
|
768
821
|
|
769
|
-
module_eval(<<'.,.,', 'ecma.y',
|
822
|
+
module_eval(<<'.,.,', 'ecma.y', 108)
|
770
823
|
def _reduce_38(val, _values, result)
|
771
|
-
result = RVM::Interpreter::FunctionCall.new(:
|
824
|
+
result = RVM::Interpreter::FunctionCall.new(:not, [val[1]])
|
772
825
|
result
|
773
826
|
end
|
774
827
|
.,.,
|
775
828
|
|
776
|
-
module_eval(<<'.,.,', 'ecma.y',
|
829
|
+
module_eval(<<'.,.,', 'ecma.y', 109)
|
777
830
|
def _reduce_39(val, _values, result)
|
778
|
-
result = RVM::Interpreter::FunctionCall.new(:
|
831
|
+
result = RVM::Interpreter::FunctionCall.new(:neg, [val[1]])
|
779
832
|
result
|
780
833
|
end
|
781
834
|
.,.,
|
782
835
|
|
836
|
+
# reduce 40 omitted
|
837
|
+
|
783
838
|
module_eval(<<'.,.,', 'ecma.y', 111)
|
784
|
-
def
|
785
|
-
result = RVM::Interpreter::FunctionCall.new(:
|
839
|
+
def _reduce_41(val, _values, result)
|
840
|
+
result = RVM::Interpreter::FunctionCall.new(:and, [result, val[2]])
|
786
841
|
result
|
787
842
|
end
|
788
843
|
.,.,
|
789
844
|
|
790
845
|
module_eval(<<'.,.,', 'ecma.y', 112)
|
791
|
-
def
|
792
|
-
result = RVM::Interpreter::FunctionCall.new(:
|
846
|
+
def _reduce_42(val, _values, result)
|
847
|
+
result = RVM::Interpreter::FunctionCall.new(:or, [result, val[2]])
|
793
848
|
result
|
794
849
|
end
|
795
850
|
.,.,
|
796
851
|
|
797
|
-
|
798
|
-
|
799
|
-
|
852
|
+
# reduce 43 omitted
|
853
|
+
|
854
|
+
# reduce 44 omitted
|
855
|
+
|
856
|
+
# reduce 45 omitted
|
857
|
+
|
858
|
+
module_eval(<<'.,.,', 'ecma.y', 116)
|
859
|
+
def _reduce_46(val, _values, result)
|
860
|
+
result = RVM::Interpreter::Variable.new(RVM::Interpreter.const(:string,result[0], result[1][1]))
|
800
861
|
result
|
801
862
|
end
|
802
863
|
.,.,
|
803
864
|
|
804
|
-
module_eval(<<'.,.,', 'ecma.y',
|
805
|
-
def
|
806
|
-
result = RVM::Interpreter::
|
865
|
+
module_eval(<<'.,.,', 'ecma.y', 117)
|
866
|
+
def _reduce_47(val, _values, result)
|
867
|
+
result = RVM::Interpreter::Variable.new(:self)
|
807
868
|
result
|
808
869
|
end
|
809
870
|
.,.,
|
810
871
|
|
811
|
-
module_eval(<<'.,.,', 'ecma.y',
|
812
|
-
def
|
813
|
-
result =
|
872
|
+
module_eval(<<'.,.,', 'ecma.y', 118)
|
873
|
+
def _reduce_48(val, _values, result)
|
874
|
+
result = val[1]
|
814
875
|
result
|
815
876
|
end
|
816
877
|
.,.,
|
817
878
|
|
818
|
-
|
819
|
-
|
820
|
-
|
879
|
+
# reduce 49 omitted
|
880
|
+
|
881
|
+
module_eval(<<'.,.,', 'ecma.y', 121)
|
882
|
+
def _reduce_50(val, _values, result)
|
883
|
+
result = RVM::Interpreter::FunctionCall.new(:lt, [result, val[2]])
|
821
884
|
result
|
822
885
|
end
|
823
886
|
.,.,
|
824
887
|
|
825
|
-
|
826
|
-
|
827
|
-
|
828
|
-
def _reduce_47(val, _values, result)
|
829
|
-
result = RVM::Interpreter::FunctionCall.new(:at, val[0])
|
888
|
+
module_eval(<<'.,.,', 'ecma.y', 122)
|
889
|
+
def _reduce_51(val, _values, result)
|
890
|
+
result = RVM::Interpreter::FunctionCall.new(:gt, [result, val[2]])
|
830
891
|
result
|
831
892
|
end
|
832
893
|
.,.,
|
833
894
|
|
834
|
-
module_eval(<<'.,.,', 'ecma.y',
|
835
|
-
def
|
836
|
-
result = RVM::Interpreter::FunctionCall.new(:
|
895
|
+
module_eval(<<'.,.,', 'ecma.y', 123)
|
896
|
+
def _reduce_52(val, _values, result)
|
897
|
+
result = RVM::Interpreter::FunctionCall.new(:eq, [result, val[2]])
|
837
898
|
result
|
838
899
|
end
|
839
900
|
.,.,
|
840
901
|
|
841
|
-
module_eval(<<'.,.,', 'ecma.y',
|
842
|
-
def
|
843
|
-
result = RVM::Interpreter::FunctionCall.new(:
|
902
|
+
module_eval(<<'.,.,', 'ecma.y', 124)
|
903
|
+
def _reduce_53(val, _values, result)
|
904
|
+
result = RVM::Interpreter::FunctionCall.new(:neq, [result, val[2]])
|
844
905
|
result
|
845
906
|
end
|
846
907
|
.,.,
|
847
908
|
|
848
|
-
|
849
|
-
|
850
|
-
# reduce 51 omitted
|
851
|
-
|
852
|
-
# reduce 52 omitted
|
853
|
-
|
854
|
-
# reduce 53 omitted
|
855
|
-
|
856
|
-
module_eval(<<'.,.,', 'ecma.y', 128)
|
909
|
+
module_eval(<<'.,.,', 'ecma.y', 125)
|
857
910
|
def _reduce_54(val, _values, result)
|
858
|
-
result = RVM::Interpreter::
|
911
|
+
result = RVM::Interpreter::FunctionCall.new(:gte, [result, val[2]])
|
859
912
|
result
|
860
913
|
end
|
861
914
|
.,.,
|
862
915
|
|
863
|
-
module_eval(<<'.,.,', 'ecma.y',
|
916
|
+
module_eval(<<'.,.,', 'ecma.y', 126)
|
864
917
|
def _reduce_55(val, _values, result)
|
865
|
-
result = val[
|
918
|
+
result = RVM::Interpreter::FunctionCall.new(:lte, [result, val[2]])
|
866
919
|
result
|
867
920
|
end
|
868
921
|
.,.,
|
869
922
|
|
870
|
-
module_eval(<<'.,.,', 'ecma.y',
|
923
|
+
module_eval(<<'.,.,', 'ecma.y', 128)
|
871
924
|
def _reduce_56(val, _values, result)
|
872
|
-
result
|
925
|
+
result = RVM::Interpreter::ObjectContext.new(val[0], RVM::Interpreter::Variable.new(val[2]))
|
873
926
|
result
|
874
927
|
end
|
875
928
|
.,.,
|
876
929
|
|
877
|
-
module_eval(<<'.,.,', 'ecma.y',
|
930
|
+
module_eval(<<'.,.,', 'ecma.y', 129)
|
878
931
|
def _reduce_57(val, _values, result)
|
879
|
-
result = RVM::Interpreter::ObjectContext.new(val[0], RVM::Interpreter::
|
932
|
+
result = RVM::Interpreter::ObjectContext.new(val[0], RVM::Interpreter::Assignment.new(val[2], val[4]))
|
880
933
|
result
|
881
934
|
end
|
882
935
|
.,.,
|
883
936
|
|
884
|
-
module_eval(<<'.,.,', 'ecma.y',
|
937
|
+
module_eval(<<'.,.,', 'ecma.y', 130)
|
885
938
|
def _reduce_58(val, _values, result)
|
886
|
-
result = RVM::Interpreter::ObjectContext.new(val[0],
|
939
|
+
result = RVM::Interpreter::ObjectContext.new(val[0],RVM::Interpreter::FunctionCall.new(val[2][0], val[4]))
|
887
940
|
result
|
888
941
|
end
|
889
942
|
.,.,
|
890
943
|
|
891
|
-
module_eval(<<'.,.,', 'ecma.y',
|
944
|
+
module_eval(<<'.,.,', 'ecma.y', 131)
|
892
945
|
def _reduce_59(val, _values, result)
|
893
|
-
result = RVM::Interpreter::ObjectContext.new(val[0],RVM::Interpreter::FunctionCall.new(val[2],
|
946
|
+
result = RVM::Interpreter::ObjectContext.new(val[0],RVM::Interpreter::FunctionCall.new(val[2][0], []))
|
894
947
|
result
|
895
948
|
end
|
896
949
|
.,.,
|
897
950
|
|
898
|
-
module_eval(<<'.,.,', 'ecma.y',
|
951
|
+
module_eval(<<'.,.,', 'ecma.y', 133)
|
899
952
|
def _reduce_60(val, _values, result)
|
900
|
-
result = RVM::Interpreter
|
953
|
+
result = RVM::Interpreter.const(:number, val[0][0], val[0][1])
|
901
954
|
result
|
902
955
|
end
|
903
956
|
.,.,
|
904
957
|
|
905
|
-
module_eval(<<'.,.,', 'ecma.y',
|
958
|
+
module_eval(<<'.,.,', 'ecma.y', 134)
|
906
959
|
def _reduce_61(val, _values, result)
|
907
|
-
result = RVM::Interpreter.const(:
|
960
|
+
result = RVM::Interpreter.const(:string, val[0][0], val[0][1])
|
908
961
|
result
|
909
962
|
end
|
910
963
|
.,.,
|
911
964
|
|
912
|
-
|
913
|
-
def _reduce_62(val, _values, result)
|
914
|
-
result = RVM::Interpreter.const(:string, val[0][0])
|
915
|
-
result
|
916
|
-
end
|
917
|
-
.,.,
|
965
|
+
# reduce 62 omitted
|
918
966
|
|
919
|
-
|
920
|
-
|
921
|
-
module_eval(<<'.,.,', 'ecma.y', 141)
|
922
|
-
def _reduce_64(val, _values, result)
|
967
|
+
module_eval(<<'.,.,', 'ecma.y', 137)
|
968
|
+
def _reduce_63(val, _values, result)
|
923
969
|
result = RVM::Interpreter::Condition.new(val[2], val[4], val[6])
|
924
970
|
result
|
925
971
|
end
|
926
972
|
.,.,
|
927
973
|
|
928
|
-
module_eval(<<'.,.,', 'ecma.y',
|
929
|
-
def
|
974
|
+
module_eval(<<'.,.,', 'ecma.y', 138)
|
975
|
+
def _reduce_64(val, _values, result)
|
930
976
|
result = RVM::Interpreter::Condition.new(val[2], val[4])
|
931
977
|
result
|
932
978
|
end
|
933
979
|
.,.,
|
934
980
|
|
935
|
-
module_eval(<<'.,.,', 'ecma.y',
|
936
|
-
def
|
981
|
+
module_eval(<<'.,.,', 'ecma.y', 141)
|
982
|
+
def _reduce_65(val, _values, result)
|
937
983
|
init = val[2]
|
938
984
|
cond = val[4]
|
939
985
|
event = val[6]
|
@@ -955,8 +1001,8 @@ module_eval(<<'.,.,', 'ecma.y', 145)
|
|
955
1001
|
end
|
956
1002
|
.,.,
|
957
1003
|
|
958
|
-
module_eval(<<'.,.,', 'ecma.y',
|
959
|
-
def
|
1004
|
+
module_eval(<<'.,.,', 'ecma.y', 160)
|
1005
|
+
def _reduce_66(val, _values, result)
|
960
1006
|
cond = val[2]
|
961
1007
|
body = val[4]
|
962
1008
|
result = RVM::Interpreter::Block.new(
|
@@ -967,8 +1013,8 @@ module_eval(<<'.,.,', 'ecma.y', 164)
|
|
967
1013
|
end
|
968
1014
|
.,.,
|
969
1015
|
|
970
|
-
module_eval(<<'.,.,', 'ecma.y',
|
971
|
-
def
|
1016
|
+
module_eval(<<'.,.,', 'ecma.y', 167)
|
1017
|
+
def _reduce_67(val, _values, result)
|
972
1018
|
cond = val[4]
|
973
1019
|
body = val[1]
|
974
1020
|
result = RVM::Interpreter::Block.new(
|
@@ -981,9 +1027,9 @@ module_eval(<<'.,.,', 'ecma.y', 171)
|
|
981
1027
|
end
|
982
1028
|
.,.,
|
983
1029
|
|
984
|
-
module_eval(<<'.,.,', 'ecma.y',
|
985
|
-
def
|
986
|
-
result = RVM::Interpreter.const(:string,result[0])
|
1030
|
+
module_eval(<<'.,.,', 'ecma.y', 176)
|
1031
|
+
def _reduce_68(val, _values, result)
|
1032
|
+
result = RVM::Interpreter.const(:string,result[0], result[1][1])
|
987
1033
|
result
|
988
1034
|
end
|
989
1035
|
.,.,
|