rVM 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
.,.,
|