rVM 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. data/lib/rake/helpers/code_statistics.rb +167 -0
  2. data/lib/rvm/classes.rb +4 -0
  3. data/lib/rvm/classes/string.rb +1 -0
  4. data/lib/rvm/functions/array.rb +3 -0
  5. data/lib/rvm/functions/array/set_at.rb +0 -4
  6. data/lib/rvm/functions/collection/size.rb +2 -2
  7. data/lib/rvm/functions/logic/and.rb +1 -1
  8. data/lib/rvm/functions/logic/or.rb +2 -2
  9. data/lib/rvm/interpreter.rb +84 -44
  10. data/lib/rvm/languages/ecma.rb +581 -501
  11. data/spec/base/class_spec.rb +27 -0
  12. data/spec/base/function_spec.rb +25 -0
  13. data/spec/base/interpreter/assignment_spec.rb +22 -0
  14. data/spec/base/interpreter/condition_spec.rb +47 -0
  15. data/spec/base/interpreter/constant_spec.rb +31 -0
  16. data/spec/base/interpreter/enviroment_spec.rb +51 -0
  17. data/spec/base/interpreter/function_call_spec.rb +72 -0
  18. data/spec/base/interpreter/interpreter_spec.rb +11 -0
  19. data/spec/base/interpreter/parameter_spec.rb +24 -0
  20. data/spec/base/interpreter/sequence_spec.rb +20 -0
  21. data/spec/base/interpreter/variable_spec.rb +24 -0
  22. data/spec/base/plugin_spec.rb +10 -0
  23. data/spec/classes/atom/association_spec.rb +39 -0
  24. data/spec/classes/atom/block_spec.rb +27 -0
  25. data/spec/classes/atom/boolean_spec.rb +67 -0
  26. data/spec/classes/atom/error_spec.rb +43 -0
  27. data/spec/classes/atom/list_spec.rb +68 -0
  28. data/spec/classes/atom/number_spec.rb +132 -0
  29. data/spec/classes/atom/string_spec.rb +175 -0
  30. data/spec/functions/association/assoc_get_spec.rb +41 -0
  31. data/spec/functions/association/assoc_set_spec.rb +43 -0
  32. data/spec/functions/collection/get_spec.rb +12 -0
  33. data/spec/functions/collection/set_spec.rb +10 -0
  34. data/spec/functions/collection/size_spec.rb +10 -0
  35. data/spec/functions/list/split_spec.rb +47 -0
  36. data/spec/functions/string/ansi_spec.rb +44 -0
  37. data/spec/functions/string/capstr_spec.rb +42 -0
  38. data/spec/functions/string/center_spec.rb +49 -0
  39. data/spec/functions/string/ljust_spec.rb +49 -0
  40. data/spec/functions/string/regmatch_spec.rb +52 -0
  41. data/spec/functions/string/rjust_spec.rb +49 -0
  42. data/spec/languages/ecma_spec.rb +337 -0
  43. data/spec/languages/math/compiler_spec.rb +49 -0
  44. data/spec/languages/math/tokenizer_spec.rb +73 -0
  45. data/spec/languages/math/tree_spec.rb +153 -0
  46. metadata +42 -5
@@ -8,17 +8,20 @@ require 'racc/parser.rb'
8
8
 
9
9
 
10
10
  require 'strscan'
11
- require 'rvm/functions/math'
12
- require 'rvm/functions/logic'
13
- require 'rvm/functions/array'
14
- require 'rvm/functions/general'
11
+ require File.dirname(__FILE__) + '/../functions/math'
12
+ require File.dirname(__FILE__) + '/../functions/logic'
13
+ require File.dirname(__FILE__) + '/../functions/array'
14
+ require File.dirname(__FILE__) + '/../functions/general'
15
+ require File.dirname(__FILE__) + '/../classes/string'
16
+ require File.dirname(__FILE__) + '/../classes/list'
17
+ require File.dirname(__FILE__) + '/../classes/number'
15
18
  require 'pp'
16
19
 
17
20
  module RVM
18
21
  module Languages
19
22
  class ECMA < Racc::Parser
20
23
 
21
- module_eval(<<'...end ecma.y/module_eval...', 'ecma.y', 191)
24
+ module_eval(<<'...end ecma.y/module_eval...', 'ecma.y', 201)
22
25
  extend Plugin
23
26
  plugin_host RVM::Languages
24
27
  register_for :ecma
@@ -26,25 +29,30 @@ module_eval(<<'...end ecma.y/module_eval...', 'ecma.y', 191)
26
29
  def compile(str)
27
30
  @q = []
28
31
  s = StringScanner.new(str)
32
+ pos = 0
33
+ line = 1
29
34
  while not s.eos?
30
35
  if s.scan(/\/\/.*?\n/)
36
+ elsif s.scan(/\n/)
37
+ line += 1
38
+ pos = s.pos
31
39
  elsif s.scan(/\/\*.*?\*\//m)
32
40
  elsif s.scan(/('(\\.|[^'])*')/)
33
41
  m = s.matched.gsub(/^'/,'').gsub(/'$/,'')
34
- @q.push [:STRING, [m, s.pos]]
42
+ @q.push [:STRING, [m, [line, s.pos - pos]]]
35
43
  elsif s.scan(/("(\\.|[^"])*")/)
36
- m = s.matched.gsub('\n',"\n").gsub(/^"/,'').gsub(/"$/,'')
37
- @q.push [:STRING, [m, s.pos]]
44
+ m = s.matched.gsub('\n',"\n").gsub('\t',"\t").gsub(/^"/,'').gsub(/"$/,'')
45
+ @q.push [:STRING, [m, [line, s.pos - pos]]]
38
46
  elsif s.scan(/((\d+(\.\d+)?)|(\.\d+))(e-?\d+)?/)
39
- @q.push [:NUMBER, [s.matched, s.pos]]
47
+ @q.push [:NUMBER, [s.matched, [line, s.pos - pos]]]
40
48
  elsif s.scan(/\[/)
41
- @q.push [:SBRACKET_OPEN, [s.matched, s.pos]]
49
+ @q.push [:SBRACKET_OPEN, [s.matched, [line, s.pos - pos]]]
42
50
  elsif s.scan(/\]/)
43
- @q.push [:SBRACKET_CLOSE, [s.matched, s.pos]]
51
+ @q.push [:SBRACKET_CLOSE, [s.matched, [line, s.pos - pos]]]
44
52
  elsif s.scan(/\{/)
45
- @q.push [:CBRACKET_OPEN, [s.matched, s.pos]]
53
+ @q.push [:CBRACKET_OPEN, [s.matched, [line, s.pos - pos]]]
46
54
  elsif s.scan(/\}/)
47
- @q.push [:CBRACKET_CLOSE, [s.matched, s.pos]]
55
+ @q.push [:CBRACKET_CLOSE, [s.matched, [line, s.pos - pos]]]
48
56
  elsif s.scan(/[a-z_][a-z_0-9]*/i)
49
57
  m = s.matched
50
58
  type = case m
@@ -55,7 +63,7 @@ module_eval(<<'...end ecma.y/module_eval...', 'ecma.y', 191)
55
63
  when 'while'
56
64
  :KW_WHILE
57
65
  when 'do'
58
- :KW_WHILE
66
+ :KW_DO
59
67
  when 'if'
60
68
  :KW_IF
61
69
  when 'return'
@@ -66,17 +74,22 @@ module_eval(<<'...end ecma.y/module_eval...', 'ecma.y', 191)
66
74
  :KW_NEW
67
75
  when 'this'
68
76
  :KW_THIS
77
+ when 'var'
78
+ :KW_VAR
79
+ when 'true'
80
+ :KW_TRUE
81
+ when 'false'
82
+ :KW_FALSE
69
83
  else
70
84
  :IDENT
71
85
  end
72
- @q.push [type, [m, s.pos]]
86
+ @q.push [type, [m, [line, s.pos - pos]]]
73
87
  elsif s.scan(/(([<>]=?)|([!=]=)|[.+*\/(),=;\!-]|&&|\|\|)/) # This ones do not get a new line (sepperator added)
74
88
  m = s.matched
75
- @q.push [m, [m, s.pos]]
76
- elsif s.scan(/\n+/)
89
+ @q.push [m, [m, [line, s.pos - pos]]]
77
90
  elsif s.scan(/\s+/)
78
91
  else
79
- raise "Woops! I can daeal with char at #{s.pos}: #{s.pre_match} #{s.post_match}"
92
+ raise "Woops! I can daeal with char at #{line}:{s.pos - pos}: #{s.pre_match} #{s.post_match}"
80
93
  end
81
94
  end
82
95
  @q.push([false, '$end'])
@@ -91,371 +104,410 @@ module_eval(<<'...end ecma.y/module_eval...', 'ecma.y', 191)
91
104
  ##### State transition tables begin ###
92
105
 
93
106
  racc_action_table = [
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 ]
107
+ 55, 57, 58, 59, 45, 47, 48, 49, 51, 52,
108
+ 53, 54, 56, 55, 57, 58, 59, 45, 47, 48,
109
+ 55, 57, 58, 59, 45, -71, 42, 50, 50, 50,
110
+ 113, 55, 57, 58, 59, 45, 46, 46, 46, 50,
111
+ 112, 55, 50, 50, 93, 120, 108, 121, 46, 50,
112
+ 94, 46, 46, 55, 57, 58, 55, 118, 46, 73,
113
+ 50, 55, 57, 58, 59, 45, 47, 48, 116, 46,
114
+ 50, 55, 57, 58, 59, 45, 47, 48, 50, 46,
115
+ 98, 77, 50, 99, 122, 50, 123, 46, 114, 100,
116
+ 50, 46, 20, 74, 46, 55, 57, 58, 95, 46,
117
+ 50, 73, 55, 57, 58, 59, 45, 47, 48, 46,
118
+ 55, 57, 58, 59, 45, 47, 48, 49, 51, 52,
119
+ 53, 54, 56, 136, 50, 121, 102, 72, 42, 65,
120
+ 64, 50, 20, 46, 42, 135, 110, 111, 137, 50,
121
+ 46, 55, 57, 58, 59, 45, 47, 48, 46, 55,
122
+ 57, 58, 59, 45, 47, 48, 49, 51, 52, 53,
123
+ 54, 56, 138, 63, 60, 44, 141, 42, nil, nil,
124
+ 50, nil, nil, nil, nil, nil, nil, nil, 50, 46,
125
+ 55, 57, 58, 59, 45, 47, 48, 46, 55, 57,
126
+ 58, 59, 45, 47, 48, 49, 51, 52, 53, 54,
127
+ 56, nil, nil, nil, nil, nil, nil, nil, nil, 50,
128
+ nil, nil, nil, nil, nil, nil, nil, 50, 46, nil,
129
+ nil, nil, 101, nil, nil, nil, 46, 55, 57, 58,
130
+ 59, 45, 47, 48, 49, 51, 52, 53, 54, 56,
131
+ 55, 57, 58, 59, 45, 47, 48, 49, 51, 52,
132
+ 53, 54, 56, nil, nil, nil, 50, nil, nil, nil,
133
+ nil, nil, nil, nil, nil, 46, nil, nil, nil, 50,
134
+ nil, nil, nil, nil, nil, nil, nil, nil, 46, 55,
135
+ 57, 58, 59, 45, 47, 48, 49, 51, 52, 53,
136
+ 54, 56, nil, 35, 2, nil, nil, nil, nil, nil,
137
+ 35, 2, nil, 32, 39, nil, nil, nil, 50, nil,
138
+ 32, 39, nil, 27, 30, 34, nil, 46, 10, 13,
139
+ 27, 30, 34, 23, nil, 10, 13, 3, 35, 2,
140
+ 23, nil, nil, nil, 3, nil, nil, nil, 32, 39,
141
+ nil, nil, nil, nil, nil, 35, 2, nil, 27, 30,
142
+ 34, nil, nil, 10, 13, 32, 37, nil, 23, 127,
143
+ nil, nil, 3, nil, 25, 27, 30, 34, nil, nil,
144
+ 10, 13, 35, 2, nil, 23, nil, nil, nil, 3,
145
+ nil, nil, 32, 37, nil, nil, nil, nil, nil, 35,
146
+ 2, 25, 27, 30, 34, nil, nil, 10, 13, 32,
147
+ 39, nil, 23, nil, nil, nil, 3, 35, 2, 27,
148
+ 30, 34, nil, nil, 10, 13, nil, 32, 39, 23,
149
+ nil, nil, nil, 3, 35, 2, nil, 27, 30, 34,
150
+ nil, nil, 10, 13, 32, 39, nil, 23, nil, nil,
151
+ nil, 3, 35, 2, 27, 30, 34, nil, nil, 10,
152
+ 13, nil, 32, 39, 23, nil, nil, nil, 3, 35,
153
+ 2, nil, 27, 30, 34, nil, nil, 10, 13, 32,
154
+ 39, nil, 23, nil, nil, nil, 3, 35, 2, 27,
155
+ 30, 34, nil, nil, 10, 13, nil, 32, 39, 23,
156
+ nil, nil, nil, 3, 35, 2, nil, 27, 30, 34,
157
+ nil, nil, 10, 13, 32, 39, nil, 23, nil, nil,
158
+ nil, 3, 35, 2, 27, 30, 34, nil, nil, 10,
159
+ 13, nil, 32, 39, 23, nil, nil, nil, 3, 35,
160
+ 2, nil, 27, 30, 34, nil, nil, 10, 13, 32,
161
+ 39, nil, 23, nil, nil, nil, 3, 35, 2, 27,
162
+ 30, 34, nil, nil, 10, 13, nil, 32, 39, 23,
163
+ nil, nil, nil, 3, 35, 2, nil, 27, 30, 34,
164
+ nil, nil, 10, 13, 32, 39, nil, 23, nil, nil,
165
+ nil, 3, 35, 2, 27, 30, 34, nil, nil, 10,
166
+ 13, nil, 32, 39, 23, nil, nil, nil, 3, 35,
167
+ 2, nil, 27, 30, 34, nil, nil, 10, 13, 32,
168
+ 39, nil, 23, nil, nil, nil, 3, 35, 2, 27,
169
+ 30, 34, nil, nil, 10, 13, nil, 32, 39, 23,
170
+ nil, nil, nil, 3, 35, 2, nil, 27, 30, 34,
171
+ nil, nil, 10, 13, 32, 37, nil, 23, nil, nil,
172
+ nil, 3, nil, 25, 27, 30, 34, nil, nil, 10,
173
+ 13, 35, 2, nil, 23, nil, nil, nil, 3, nil,
174
+ nil, 32, 39, nil, nil, nil, nil, nil, nil, 35,
175
+ 2, 27, 30, 34, nil, nil, 10, 13, nil, 32,
176
+ 37, 23, nil, 8, 12, 3, 17, 21, 25, 27,
177
+ 30, 34, 4, nil, 10, 13, nil, 20, nil, 23,
178
+ 35, 2, nil, 3, nil, nil, nil, nil, nil, nil,
179
+ 32, 37, nil, nil, 8, 12, nil, 17, 21, 25,
180
+ 27, 30, 34, 4, nil, 10, 13, nil, 20, nil,
181
+ 23, 35, 2, nil, 3, nil, nil, nil, nil, nil,
182
+ nil, 32, 37, nil, 7, 8, 12, nil, 17, 21,
183
+ 25, 27, 30, 34, 4, nil, 10, 13, nil, 20,
184
+ nil, 23, 35, 2, nil, 3, nil, nil, nil, nil,
185
+ nil, nil, 32, 37, nil, nil, nil, nil, nil, nil,
186
+ nil, 25, 27, 30, 34, nil, nil, 10, 13, 35,
187
+ 2, nil, 23, nil, nil, nil, 3, nil, nil, 32,
188
+ 37, nil, nil, 8, 12, nil, 17, 21, 25, 27,
189
+ 30, 34, 4, nil, 10, 13, nil, 20, nil, 23,
190
+ 35, 2, nil, 3, nil, nil, nil, nil, nil, nil,
191
+ 32, 39, nil, nil, nil, nil, nil, nil, 35, 2,
192
+ 27, 30, 34, nil, nil, 10, 13, nil, 32, 37,
193
+ 23, nil, 8, 12, 3, 17, 21, 25, 27, 30,
194
+ 34, 4, nil, 10, 13, nil, 20, nil, 23, 35,
195
+ 2, nil, 3, nil, nil, nil, nil, nil, nil, 32,
196
+ 37, nil, nil, 8, 12, nil, 17, 21, 25, 27,
197
+ 30, 34, 4, nil, 10, 13, nil, 20, nil, 23,
198
+ 35, 2, nil, 3, nil, nil, nil, nil, nil, nil,
199
+ 32, 37, nil, nil, nil, nil, nil, 35, 2, 25,
200
+ 27, 30, 34, nil, nil, 10, 13, 32, 37, nil,
201
+ 23, nil, nil, nil, 3, nil, 25, 27, 30, 34,
202
+ nil, nil, 10, 13, 35, 2, nil, 23, nil, nil,
203
+ nil, 3, nil, nil, 32, 39, nil, nil, nil, nil,
204
+ nil, 35, 2, nil, 27, 30, 34, nil, nil, 10,
205
+ 13, 32, 39, nil, 23, 106, nil, nil, 3, 35,
206
+ 2, 27, 30, 34, nil, nil, 10, 13, nil, 32,
207
+ 39, 23, nil, nil, nil, 3, 35, 2, nil, 27,
208
+ 30, 34, nil, nil, 10, 13, 32, 37, nil, 23,
209
+ nil, nil, nil, 3, nil, 25, 27, 30, 34, nil,
210
+ nil, 10, 13, 35, 2, nil, 23, nil, nil, nil,
211
+ 3, nil, nil, 32, 37, nil, nil, 8, 12, nil,
212
+ 17, 21, 25, 27, 30, 34, 4, nil, 10, 13,
213
+ nil, 20, nil, 23, 35, 2, nil, 3, nil, nil,
214
+ nil, nil, nil, nil, 32, 37, nil, nil, 8, 12,
215
+ nil, 17, 21, 25, 27, 30, 34, 4, nil, 10,
216
+ 13, nil, 20, nil, 23, 35, 2, nil, 3, nil,
217
+ nil, nil, 35, 2, nil, 32, 37, nil, nil, nil,
218
+ nil, nil, 32, 39, 25, 27, 30, 34, nil, nil,
219
+ 10, 13, 27, 30, 34, 23, nil, 10, 13, 3,
220
+ 35, 2, 23, nil, nil, nil, 3, nil, nil, nil,
221
+ 32, 39, nil, nil, nil, nil, nil, nil, 35, 2,
222
+ 27, 30, 34, nil, nil, 10, 13, nil, 32, 37,
223
+ 23, 7, 8, 12, 3, 17, 21, 25, 27, 30,
224
+ 34, 4, nil, 10, 13, nil, 20, nil, 23, 35,
225
+ 2, nil, 3, nil, nil, nil, nil, nil, nil, 32,
226
+ 37, nil, nil, nil, nil, nil, nil, nil, 25, 27,
227
+ 30, 34, nil, nil, 10, 13, nil, nil, nil, 23,
228
+ nil, nil, nil, 3 ]
202
229
 
203
230
  racc_action_check = [
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 ]
231
+ 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
232
+ 82, 82, 82, 81, 81, 81, 81, 81, 81, 81,
233
+ 80, 80, 80, 80, 80, 37, 74, 38, 128, 82,
234
+ 82, 79, 79, 79, 79, 79, 38, 128, 82, 87,
235
+ 78, 89, 81, 40, 62, 105, 74, 105, 87, 80,
236
+ 62, 81, 40, 76, 76, 76, 90, 100, 80, 37,
237
+ 79, 84, 84, 84, 84, 84, 84, 84, 97, 79,
238
+ 89, 85, 85, 85, 85, 85, 85, 85, 71, 89,
239
+ 66, 46, 76, 66, 107, 90, 107, 71, 92, 68,
240
+ 84, 76, 108, 43, 90, 91, 91, 91, 63, 84,
241
+ 85, 39, 86, 86, 86, 86, 86, 86, 86, 85,
242
+ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
243
+ 11, 11, 11, 126, 91, 126, 70, 36, 25, 17,
244
+ 16, 86, 122, 91, 123, 125, 75, 77, 129, 11,
245
+ 86, 88, 88, 88, 88, 88, 88, 88, 11, 132,
246
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
247
+ 132, 132, 131, 15, 12, 8, 139, 7, nil, nil,
248
+ 88, nil, nil, nil, nil, nil, nil, nil, 132, 88,
249
+ 83, 83, 83, 83, 83, 83, 83, 132, 69, 69,
250
+ 69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
251
+ 69, nil, nil, nil, nil, nil, nil, nil, nil, 83,
252
+ nil, nil, nil, nil, nil, nil, nil, 69, 83, nil,
253
+ nil, nil, 69, nil, nil, nil, 69, 61, 61, 61,
254
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
255
+ 115, 115, 115, 115, 115, 115, 115, 115, 115, 115,
256
+ 115, 115, 115, nil, nil, nil, 61, nil, nil, nil,
257
+ nil, nil, nil, nil, nil, 61, nil, nil, nil, 115,
258
+ nil, nil, nil, nil, nil, nil, nil, nil, 115, 104,
259
+ 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
260
+ 104, 104, nil, 94, 94, nil, nil, nil, nil, nil,
261
+ 112, 112, nil, 94, 94, nil, nil, nil, 104, nil,
262
+ 112, 112, nil, 94, 94, 94, nil, 104, 94, 94,
263
+ 112, 112, 112, 94, nil, 112, 112, 94, 111, 111,
264
+ 112, nil, nil, nil, 112, nil, nil, nil, 111, 111,
265
+ nil, nil, nil, nil, nil, 110, 110, nil, 111, 111,
266
+ 111, nil, nil, 111, 111, 110, 110, nil, 111, 111,
267
+ nil, nil, 111, nil, 110, 110, 110, 110, nil, nil,
268
+ 110, 110, 44, 44, nil, 110, nil, nil, nil, 110,
269
+ nil, nil, 44, 44, nil, nil, nil, nil, nil, 45,
270
+ 45, 44, 44, 44, 44, nil, nil, 44, 44, 45,
271
+ 45, nil, 44, nil, nil, nil, 44, 47, 47, 45,
272
+ 45, 45, nil, nil, 45, 45, nil, 47, 47, 45,
273
+ nil, nil, nil, 45, 48, 48, nil, 47, 47, 47,
274
+ nil, nil, 47, 47, 48, 48, nil, 47, nil, nil,
275
+ nil, 47, 49, 49, 48, 48, 48, nil, nil, 48,
276
+ 48, nil, 49, 49, 48, nil, nil, nil, 48, 50,
277
+ 50, nil, 49, 49, 49, nil, nil, 49, 49, 50,
278
+ 50, nil, 49, nil, nil, nil, 49, 51, 51, 50,
279
+ 50, 50, nil, nil, 50, 50, nil, 51, 51, 50,
280
+ nil, nil, nil, 50, 52, 52, nil, 51, 51, 51,
281
+ nil, nil, 51, 51, 52, 52, nil, 51, nil, nil,
282
+ nil, 51, 53, 53, 52, 52, 52, nil, nil, 52,
283
+ 52, nil, 53, 53, 52, nil, nil, nil, 52, 54,
284
+ 54, nil, 53, 53, 53, nil, nil, 53, 53, 54,
285
+ 54, nil, 53, nil, nil, nil, 53, 55, 55, 54,
286
+ 54, 54, nil, nil, 54, 54, nil, 55, 55, 54,
287
+ nil, nil, nil, 54, 56, 56, nil, 55, 55, 55,
288
+ nil, nil, 55, 55, 56, 56, nil, 55, nil, nil,
289
+ nil, 55, 57, 57, 56, 56, 56, nil, nil, 56,
290
+ 56, nil, 57, 57, 56, nil, nil, nil, 56, 58,
291
+ 58, nil, 57, 57, 57, nil, nil, 57, 57, 58,
292
+ 58, nil, 57, nil, nil, nil, 57, 59, 59, 58,
293
+ 58, 58, nil, nil, 58, 58, nil, 59, 59, 58,
294
+ nil, nil, nil, 58, 60, 60, nil, 59, 59, 59,
295
+ nil, nil, 59, 59, 60, 60, nil, 59, nil, nil,
296
+ nil, 59, nil, 60, 60, 60, 60, nil, nil, 60,
297
+ 60, 35, 35, nil, 60, nil, nil, nil, 60, nil,
298
+ nil, 35, 35, nil, nil, nil, nil, nil, nil, 116,
299
+ 116, 35, 35, 35, nil, nil, 35, 35, nil, 116,
300
+ 116, 35, nil, 116, 116, 35, 116, 116, 116, 116,
301
+ 116, 116, 116, nil, 116, 116, nil, 116, nil, 116,
302
+ 99, 99, nil, 116, nil, nil, nil, nil, nil, nil,
303
+ 99, 99, nil, nil, 99, 99, nil, 99, 99, 99,
304
+ 99, 99, 99, 99, nil, 99, 99, nil, 99, nil,
305
+ 99, 64, 64, nil, 99, nil, nil, nil, nil, nil,
306
+ nil, 64, 64, nil, 64, 64, 64, nil, 64, 64,
307
+ 64, 64, 64, 64, 64, nil, 64, 64, nil, 64,
308
+ nil, 64, 65, 65, nil, 64, nil, nil, nil, nil,
309
+ nil, nil, 65, 65, nil, nil, nil, nil, nil, nil,
310
+ nil, 65, 65, 65, 65, nil, nil, 65, 65, 114,
311
+ 114, nil, 65, nil, nil, nil, 65, nil, nil, 114,
312
+ 114, nil, nil, 114, 114, nil, 114, 114, 114, 114,
313
+ 114, 114, 114, nil, 114, 114, nil, 114, nil, 114,
314
+ 23, 23, nil, 114, nil, nil, nil, nil, nil, nil,
315
+ 23, 23, nil, nil, nil, nil, nil, nil, 21, 21,
316
+ 23, 23, 23, nil, nil, 23, 23, nil, 21, 21,
317
+ 23, nil, 21, 21, 23, 21, 21, 21, 21, 21,
318
+ 21, 21, nil, 21, 21, nil, 21, nil, 21, 20,
319
+ 20, nil, 21, nil, nil, nil, nil, nil, nil, 20,
320
+ 20, nil, nil, 20, 20, nil, 20, 20, 20, 20,
321
+ 20, 20, 20, nil, 20, 20, nil, 20, nil, 20,
322
+ 118, 118, nil, 20, nil, nil, nil, nil, nil, nil,
323
+ 118, 118, nil, nil, nil, nil, nil, 72, 72, 118,
324
+ 118, 118, 118, nil, nil, 118, 118, 72, 72, nil,
325
+ 118, nil, nil, nil, 118, nil, 72, 72, 72, 72,
326
+ nil, nil, 72, 72, 73, 73, nil, 72, nil, nil,
327
+ nil, 72, nil, nil, 73, 73, nil, nil, nil, nil,
328
+ nil, 121, 121, nil, 73, 73, 73, nil, nil, 73,
329
+ 73, 121, 121, nil, 73, 73, nil, nil, 73, 13,
330
+ 13, 121, 121, 121, nil, nil, 121, 121, nil, 13,
331
+ 13, 121, nil, nil, nil, 121, 135, 135, nil, 13,
332
+ 13, 13, nil, nil, 13, 13, 135, 135, nil, 13,
333
+ nil, nil, nil, 13, nil, 135, 135, 135, 135, nil,
334
+ nil, 135, 135, 137, 137, nil, 135, nil, nil, nil,
335
+ 135, nil, nil, 137, 137, nil, nil, 137, 137, nil,
336
+ 137, 137, 137, 137, 137, 137, 137, nil, 137, 137,
337
+ nil, 137, nil, 137, 141, 141, nil, 137, nil, nil,
338
+ nil, nil, nil, nil, 141, 141, nil, nil, 141, 141,
339
+ nil, 141, 141, 141, 141, 141, 141, 141, nil, 141,
340
+ 141, nil, 141, nil, 141, 4, 4, nil, 141, nil,
341
+ nil, nil, 3, 3, nil, 4, 4, nil, nil, nil,
342
+ nil, nil, 3, 3, 4, 4, 4, 4, nil, nil,
343
+ 4, 4, 3, 3, 3, 4, nil, 3, 3, 4,
344
+ 2, 2, 3, nil, nil, nil, 3, nil, nil, nil,
345
+ 2, 2, nil, nil, nil, nil, nil, nil, 0, 0,
346
+ 2, 2, 2, nil, nil, 2, 2, nil, 0, 0,
347
+ 2, 0, 0, 0, 2, 0, 0, 0, 0, 0,
348
+ 0, 0, nil, 0, 0, nil, 0, nil, 0, 102,
349
+ 102, nil, 0, nil, nil, nil, nil, nil, nil, 102,
350
+ 102, nil, nil, nil, nil, nil, nil, nil, 102, 102,
351
+ 102, 102, nil, nil, 102, 102, nil, nil, nil, 102,
352
+ nil, nil, nil, 102 ]
312
353
 
313
354
  racc_action_pointer = [
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 ]
355
+ 1138, nil, 1120, 1092, 1085, nil, nil, 146, 125, nil,
356
+ nil, 103, 124, 979, nil, 163, 88, 89, nil, nil,
357
+ 869, 838, nil, 820, nil, 107, nil, nil, nil, nil,
358
+ nil, nil, nil, nil, nil, 651, 121, 19, -9, 61,
359
+ 7, nil, nil, 53, 362, 379, 60, 397, 414, 432,
360
+ 449, 467, 484, 502, 519, 537, 554, 572, 589, 607,
361
+ 624, 220, 7, 98, 731, 762, 41, nil, 62, 181,
362
+ 120, 42, 917, 944, 5, 94, 46, 97, 34, 24,
363
+ 13, 6, -7, 173, 54, 64, 95, 3, 134, 34,
364
+ 49, 88, 47, nil, 283, nil, nil, 27, nil, 700,
365
+ 17, nil, 1169, nil, 272, 4, nil, 43, 54, nil,
366
+ 335, 318, 290, nil, 789, 233, 669, nil, 900, nil,
367
+ nil, 961, 94, 113, nil, 93, 82, nil, -8, 112,
368
+ nil, 121, 142, nil, nil, 996, nil, 1023, nil, 125,
369
+ nil, 1054, nil ]
328
370
 
329
371
  racc_action_default = [
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 ]
372
+ -2, -44, -72, -72, -72, -24, -45, -72, -72, -50,
373
+ -48, -16, -72, -72, -23, -72, -1, -72, -46, -25,
374
+ -72, -72, -26, -72, -27, -72, -7, -64, -28, -5,
375
+ -65, -63, -61, -6, -62, -72, -72, -47, -40, -47,
376
+ -39, -29, -71, -72, -72, -72, -72, -72, -72, -72,
377
+ -72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
378
+ -72, -31, -72, -72, -9, -72, -72, -19, -72, -72,
379
+ -72, -41, -72, -72, -72, -72, -34, -71, -57, -42,
380
+ -43, -52, -72, -51, -55, -56, -53, -37, -54, -35,
381
+ -36, -33, -72, -30, -72, 143, -8, -72, -22, -21,
382
+ -72, -49, -72, -17, -14, -72, -3, -72, -72, -12,
383
+ -72, -72, -72, -38, -72, -32, -72, -20, -72, -18,
384
+ -4, -72, -72, -72, -10, -72, -72, -60, -58, -67,
385
+ -69, -72, -15, -11, -13, -72, -59, -72, -70, -72,
386
+ -66, -72, -68 ]
344
387
 
345
388
  racc_goto_table = [
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 ]
389
+ 41, 67, 68, 43, 124, 105, 15, 26, 107, 16,
390
+ 66, 62, nil, nil, nil, nil, nil, nil, 133, nil,
391
+ nil, 70, nil, nil, nil, nil, nil, nil, nil, nil,
392
+ nil, nil, nil, nil, nil, nil, 38, 40, nil, nil,
393
+ 75, nil, 78, 126, nil, nil, nil, 61, nil, nil,
394
+ nil, nil, nil, nil, nil, nil, 92, 69, nil, nil,
395
+ nil, 97, nil, nil, nil, nil, nil, nil, 103, 71,
396
+ 109, 96, nil, nil, nil, nil, nil, nil, nil, 76,
397
+ 117, 79, 80, 81, 82, 83, 84, 85, 86, 87,
398
+ 88, 89, 90, 91, nil, 129, nil, 130, 119, nil,
399
+ nil, nil, nil, nil, nil, nil, 125, 104, nil, nil,
400
+ nil, nil, nil, nil, 131, nil, nil, nil, 140, 134,
401
+ nil, nil, 142, nil, nil, nil, nil, nil, 115, nil,
402
+ nil, 139, nil, nil, nil, nil, nil, nil, nil, nil,
403
+ nil, nil, nil, nil, nil, 104, 128, nil, nil, nil,
404
+ nil, nil, nil, nil, nil, 132 ]
359
405
 
360
406
  racc_goto_check = [
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 ]
407
+ 12, 6, 6, 8, 9, 4, 1, 5, 10, 2,
408
+ 13, 19, nil, nil, nil, nil, nil, nil, 9, nil,
409
+ nil, 8, nil, nil, nil, nil, nil, nil, nil, nil,
410
+ nil, nil, nil, nil, nil, nil, 11, 11, nil, nil,
411
+ 12, nil, 8, 4, nil, nil, nil, 11, nil, nil,
412
+ nil, nil, nil, nil, nil, nil, 12, 11, nil, nil,
413
+ nil, 12, nil, nil, nil, nil, nil, nil, 12, 11,
414
+ 8, 5, nil, nil, nil, nil, nil, nil, nil, 11,
415
+ 6, 11, 11, 11, 11, 11, 11, 11, 11, 11,
416
+ 11, 11, 11, 11, nil, 6, nil, 6, 12, nil,
417
+ nil, nil, nil, nil, nil, nil, 12, 11, nil, nil,
418
+ nil, nil, nil, nil, 12, nil, nil, nil, 6, 8,
419
+ nil, nil, 6, nil, nil, nil, nil, nil, 11, nil,
420
+ nil, 12, nil, nil, nil, nil, nil, nil, nil, nil,
421
+ nil, nil, nil, nil, nil, 11, 11, nil, nil, nil,
422
+ nil, nil, nil, nil, nil, 11 ]
374
423
 
375
424
  racc_goto_pointer = [
376
- nil, 7, 11, nil, -65, 5, -10, nil, 5, -97,
377
- -65, 1, -25, 2, nil, nil, nil, nil, nil, 11,
425
+ nil, 6, 9, nil, -68, 7, -19, nil, -4, -104,
426
+ -66, 34, -4, -10, nil, nil, nil, nil, nil, -2,
378
427
  nil, nil, nil ]
379
428
 
380
429
  racc_goto_default = [
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 ]
430
+ nil, nil, nil, 18, nil, nil, 29, 33, 36, 5,
431
+ nil, 11, 14, nil, 19, 22, 24, 28, 31, nil,
432
+ 1, 6, 9 ]
384
433
 
385
434
  racc_reduce_table = [
386
435
  0, 0, :racc_error,
387
- 1, 44, :_reduce_none,
388
- 0, 44, :_reduce_2,
389
- 3, 46, :_reduce_3,
390
- 4, 46, :_reduce_4,
391
- 1, 48, :_reduce_none,
392
- 1, 48, :_reduce_none,
393
- 1, 45, :_reduce_7,
394
- 3, 45, :_reduce_8,
395
- 2, 45, :_reduce_none,
396
- 5, 50, :_reduce_10,
397
- 6, 50, :_reduce_11,
398
- 1, 53, :_reduce_12,
399
- 3, 53, :_reduce_13,
400
- 1, 47, :_reduce_14,
401
- 3, 47, :_reduce_15,
402
- 1, 55, :_reduce_none,
403
- 3, 55, :_reduce_17,
404
- 1, 56, :_reduce_18,
405
- 3, 56, :_reduce_19,
406
- 2, 56, :_reduce_none,
407
- 3, 52, :_reduce_21,
408
- 1, 49, :_reduce_none,
409
- 1, 49, :_reduce_none,
410
- 1, 49, :_reduce_none,
411
- 1, 49, :_reduce_none,
412
- 1, 49, :_reduce_none,
413
- 1, 49, :_reduce_none,
414
- 2, 60, :_reduce_28,
415
- 3, 61, :_reduce_29,
416
- 1, 62, :_reduce_30,
417
- 3, 62, :_reduce_31,
418
- 3, 54, :_reduce_32,
419
- 3, 54, :_reduce_33,
420
- 3, 54, :_reduce_34,
421
- 3, 54, :_reduce_35,
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,
429
- 1, 54, :_reduce_none,
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,
441
- 3, 63, :_reduce_55,
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
457
-
458
- racc_shift_n = 137
436
+ 1, 47, :_reduce_none,
437
+ 0, 47, :_reduce_2,
438
+ 3, 49, :_reduce_3,
439
+ 4, 49, :_reduce_4,
440
+ 1, 51, :_reduce_none,
441
+ 1, 51, :_reduce_none,
442
+ 1, 48, :_reduce_7,
443
+ 3, 48, :_reduce_8,
444
+ 2, 48, :_reduce_none,
445
+ 5, 53, :_reduce_10,
446
+ 6, 53, :_reduce_11,
447
+ 1, 56, :_reduce_12,
448
+ 3, 56, :_reduce_13,
449
+ 1, 50, :_reduce_14,
450
+ 3, 50, :_reduce_15,
451
+ 1, 58, :_reduce_none,
452
+ 3, 58, :_reduce_17,
453
+ 4, 58, :_reduce_18,
454
+ 1, 59, :_reduce_19,
455
+ 3, 59, :_reduce_20,
456
+ 2, 59, :_reduce_none,
457
+ 3, 55, :_reduce_22,
458
+ 1, 52, :_reduce_none,
459
+ 1, 52, :_reduce_none,
460
+ 1, 52, :_reduce_none,
461
+ 1, 52, :_reduce_none,
462
+ 1, 52, :_reduce_none,
463
+ 1, 52, :_reduce_none,
464
+ 2, 63, :_reduce_29,
465
+ 3, 64, :_reduce_30,
466
+ 1, 65, :_reduce_31,
467
+ 3, 65, :_reduce_32,
468
+ 3, 57, :_reduce_33,
469
+ 3, 57, :_reduce_34,
470
+ 3, 57, :_reduce_35,
471
+ 3, 57, :_reduce_36,
472
+ 3, 57, :_reduce_37,
473
+ 4, 57, :_reduce_38,
474
+ 2, 57, :_reduce_39,
475
+ 2, 57, :_reduce_40,
476
+ 2, 57, :_reduce_none,
477
+ 3, 57, :_reduce_42,
478
+ 3, 57, :_reduce_43,
479
+ 1, 57, :_reduce_none,
480
+ 1, 57, :_reduce_none,
481
+ 1, 57, :_reduce_none,
482
+ 1, 57, :_reduce_47,
483
+ 1, 57, :_reduce_48,
484
+ 3, 57, :_reduce_49,
485
+ 1, 57, :_reduce_none,
486
+ 3, 66, :_reduce_51,
487
+ 3, 66, :_reduce_52,
488
+ 3, 66, :_reduce_53,
489
+ 3, 66, :_reduce_54,
490
+ 3, 66, :_reduce_55,
491
+ 3, 66, :_reduce_56,
492
+ 3, 67, :_reduce_57,
493
+ 5, 67, :_reduce_58,
494
+ 6, 67, :_reduce_59,
495
+ 5, 67, :_reduce_60,
496
+ 1, 68, :_reduce_61,
497
+ 1, 68, :_reduce_62,
498
+ 1, 68, :_reduce_none,
499
+ 1, 68, :_reduce_64,
500
+ 1, 68, :_reduce_65,
501
+ 7, 61, :_reduce_66,
502
+ 5, 61, :_reduce_67,
503
+ 9, 60, :_reduce_68,
504
+ 5, 62, :_reduce_69,
505
+ 6, 62, :_reduce_70,
506
+ 1, 54, :_reduce_71 ]
507
+
508
+ racc_reduce_n = 72
509
+
510
+ racc_shift_n = 143
459
511
 
460
512
  racc_token_table = {
461
513
  false => 0,
@@ -487,22 +539,25 @@ racc_token_table = {
487
539
  :KW_ELSE => 26,
488
540
  :KW_WHILE => 27,
489
541
  :KW_DO => 28,
490
- :STRING => 29,
491
- :KW_RETURN => 30,
492
- :KW_NEW => 31,
493
- :KW_THIS => 32,
494
- :SBRACKET_OPEN => 33,
495
- :SBRACKET_CLOSE => 34,
496
- :CBRACKET_OPEN => 35,
497
- :CBRACKET_CLOSE => 36,
498
- "(" => 37,
499
- ")" => 38,
500
- ";" => 39,
501
- "," => 40,
502
- "!" => 41,
503
- "." => 42 }
504
-
505
- racc_nt_base = 43
542
+ :KW_VAR => 29,
543
+ :KW_TRUE => 30,
544
+ :KW_FALSE => 31,
545
+ :STRING => 32,
546
+ :KW_RETURN => 33,
547
+ :KW_NEW => 34,
548
+ :KW_THIS => 35,
549
+ :SBRACKET_OPEN => 36,
550
+ :SBRACKET_CLOSE => 37,
551
+ :CBRACKET_OPEN => 38,
552
+ :CBRACKET_CLOSE => 39,
553
+ "(" => 40,
554
+ ")" => 41,
555
+ ";" => 42,
556
+ "," => 43,
557
+ "!" => 44,
558
+ "." => 45 }
559
+
560
+ racc_nt_base = 46
506
561
 
507
562
  racc_use_result_var = true
508
563
 
@@ -552,6 +607,9 @@ Racc_token_to_s_table = [
552
607
  "KW_ELSE",
553
608
  "KW_WHILE",
554
609
  "KW_DO",
610
+ "KW_VAR",
611
+ "KW_TRUE",
612
+ "KW_FALSE",
555
613
  "STRING",
556
614
  "KW_RETURN",
557
615
  "KW_NEW",
@@ -584,7 +642,7 @@ Racc_token_to_s_table = [
584
642
  "if",
585
643
  "while",
586
644
  "return",
587
- "ARRAY",
645
+ "array",
588
646
  "array_content",
589
647
  "comp",
590
648
  "objcall",
@@ -598,21 +656,21 @@ Racc_debug_parser = false
598
656
 
599
657
  # reduce 1 omitted
600
658
 
601
- module_eval(<<'.,.,', 'ecma.y', 31)
659
+ module_eval(<<'.,.,', 'ecma.y', 34)
602
660
  def _reduce_2(val, _values, result)
603
661
  result = nil
604
662
  result
605
663
  end
606
664
  .,.,
607
665
 
608
- module_eval(<<'.,.,', 'ecma.y', 33)
666
+ module_eval(<<'.,.,', 'ecma.y', 36)
609
667
  def _reduce_3(val, _values, result)
610
668
  result = RVM::Interpreter::FunctionCall.new(val[0][0], [], val[0][1])
611
669
  result
612
670
  end
613
671
  .,.,
614
672
 
615
- module_eval(<<'.,.,', 'ecma.y', 34)
673
+ module_eval(<<'.,.,', 'ecma.y', 37)
616
674
  def _reduce_4(val, _values, result)
617
675
  result = RVM::Interpreter::FunctionCall.new(val[0][0], val[2], val[0][1])
618
676
  result
@@ -623,14 +681,14 @@ module_eval(<<'.,.,', 'ecma.y', 34)
623
681
 
624
682
  # reduce 6 omitted
625
683
 
626
- module_eval(<<'.,.,', 'ecma.y', 39)
684
+ module_eval(<<'.,.,', 'ecma.y', 42)
627
685
  def _reduce_7(val, _values, result)
628
686
  result = RVM::Interpreter::Sequence.new([result])
629
687
  result
630
688
  end
631
689
  .,.,
632
690
 
633
- module_eval(<<'.,.,', 'ecma.y', 40)
691
+ module_eval(<<'.,.,', 'ecma.y', 43)
634
692
  def _reduce_8(val, _values, result)
635
693
  result << val[2]
636
694
  result
@@ -639,16 +697,17 @@ module_eval(<<'.,.,', 'ecma.y', 40)
639
697
 
640
698
  # reduce 9 omitted
641
699
 
642
- module_eval(<<'.,.,', 'ecma.y', 44)
700
+ module_eval(<<'.,.,', 'ecma.y', 47)
643
701
  def _reduce_10(val, _values, result)
644
702
  #TODO: THIS
645
703
  b = val[4]
646
704
  ident = val[1]
647
-
648
- if not b.is_a? RVM::Interpreter::Sequence
649
- b = RVM::Interpreter::Sequence.new(b)
705
+ if not b.content.is_a?(RVM::Interpreter::Sequence)
706
+ c = b.content
707
+ b.content = RVM::Interpreter::Sequence.new()
708
+ b.content << c
650
709
  end
651
- b << RVM::Interpreter::Return.new()
710
+ b.content << RVM::Interpreter::Return.new(RVM::Classes[:boolean].new(false))
652
711
 
653
712
  result = RVM::Interpreter::FunctionDefinition.new(ident, RVM::Classes::Block.new(b))
654
713
 
@@ -656,7 +715,7 @@ module_eval(<<'.,.,', 'ecma.y', 44)
656
715
  end
657
716
  .,.,
658
717
 
659
- module_eval(<<'.,.,', 'ecma.y', 56)
718
+ module_eval(<<'.,.,', 'ecma.y', 60)
660
719
  def _reduce_11(val, _values, result)
661
720
  block = val[5]
662
721
  i = 0
@@ -670,28 +729,28 @@ module_eval(<<'.,.,', 'ecma.y', 56)
670
729
  end
671
730
  .,.,
672
731
 
673
- module_eval(<<'.,.,', 'ecma.y', 65)
732
+ module_eval(<<'.,.,', 'ecma.y', 69)
674
733
  def _reduce_12(val, _values, result)
675
734
  result = [result]
676
735
  result
677
736
  end
678
737
  .,.,
679
738
 
680
- module_eval(<<'.,.,', 'ecma.y', 66)
739
+ module_eval(<<'.,.,', 'ecma.y', 70)
681
740
  def _reduce_13(val, _values, result)
682
741
  result << val[2]
683
742
  result
684
743
  end
685
744
  .,.,
686
745
 
687
- module_eval(<<'.,.,', 'ecma.y', 68)
746
+ module_eval(<<'.,.,', 'ecma.y', 72)
688
747
  def _reduce_14(val, _values, result)
689
748
  result = [result]
690
749
  result
691
750
  end
692
751
  .,.,
693
752
 
694
- module_eval(<<'.,.,', 'ecma.y', 69)
753
+ module_eval(<<'.,.,', 'ecma.y', 73)
695
754
  def _reduce_15(val, _values, result)
696
755
  result << val[2]
697
756
  result
@@ -700,38 +759,43 @@ module_eval(<<'.,.,', 'ecma.y', 69)
700
759
 
701
760
  # reduce 16 omitted
702
761
 
703
- module_eval(<<'.,.,', 'ecma.y', 72)
762
+ module_eval(<<'.,.,', 'ecma.y', 76)
704
763
  def _reduce_17(val, _values, result)
705
- result = RVM::Interpreter::Assignment.new(result, val[2])
764
+ result = RVM::Interpreter::Assignment.new(result, val[2], val[1][1])
706
765
  result
707
766
  end
708
767
  .,.,
709
768
 
710
- module_eval(<<'.,.,', 'ecma.y', 74)
769
+ module_eval(<<'.,.,', 'ecma.y', 77)
711
770
  def _reduce_18(val, _values, result)
712
- result = RVM::Interpreter::Sequence.new([result])
771
+ result = RVM::Interpreter::Declaration.new(val[1], val[3], val[0][1])
713
772
  result
714
773
  end
715
774
  .,.,
716
775
 
717
- module_eval(<<'.,.,', 'ecma.y', 75)
776
+ module_eval(<<'.,.,', 'ecma.y', 79)
718
777
  def _reduce_19(val, _values, result)
778
+ result = RVM::Interpreter::Sequence.new([result],result.pos)
779
+ result
780
+ end
781
+ .,.,
782
+
783
+ module_eval(<<'.,.,', 'ecma.y', 80)
784
+ def _reduce_20(val, _values, result)
719
785
  result << val[2]
720
786
  result
721
787
  end
722
788
  .,.,
723
789
 
724
- # reduce 20 omitted
790
+ # reduce 21 omitted
725
791
 
726
- module_eval(<<'.,.,', 'ecma.y', 78)
727
- def _reduce_21(val, _values, result)
728
- result = RVM::Interpreter::Block.new(val[1])
792
+ module_eval(<<'.,.,', 'ecma.y', 83)
793
+ def _reduce_22(val, _values, result)
794
+ result = RVM::Interpreter::Block.new(val[1], val[0][1])
729
795
  result
730
796
  end
731
797
  .,.,
732
798
 
733
- # reduce 22 omitted
734
-
735
799
  # reduce 23 omitted
736
800
 
737
801
  # reduce 24 omitted
@@ -742,15 +806,17 @@ module_eval(<<'.,.,', 'ecma.y', 78)
742
806
 
743
807
  # reduce 27 omitted
744
808
 
745
- module_eval(<<'.,.,', 'ecma.y', 87)
746
- def _reduce_28(val, _values, result)
809
+ # reduce 28 omitted
810
+
811
+ module_eval(<<'.,.,', 'ecma.y', 92)
812
+ def _reduce_29(val, _values, result)
747
813
  result = RVM::Interpreter::Return.new(val[1])
748
814
  result
749
815
  end
750
816
  .,.,
751
817
 
752
- module_eval(<<'.,.,', 'ecma.y', 90)
753
- def _reduce_29(val, _values, result)
818
+ module_eval(<<'.,.,', 'ecma.y', 95)
819
+ def _reduce_30(val, _values, result)
754
820
  seq = RVM::Interpreter::Sequence.new()
755
821
  seq << RVM::Interpreter::Assignment.new(RVM::Interpreter.const(:string,'!temp'), RVM::Interpreter.const(:list, Array.new(val[1].size)))
756
822
  val[1].size.times do |i|
@@ -763,223 +829,237 @@ module_eval(<<'.,.,', 'ecma.y', 90)
763
829
  end
764
830
  .,.,
765
831
 
766
- module_eval(<<'.,.,', 'ecma.y', 99)
767
- def _reduce_30(val, _values, result)
768
- result = [result]
769
- result
770
- end
771
- .,.,
772
-
773
- module_eval(<<'.,.,', 'ecma.y', 100)
832
+ module_eval(<<'.,.,', 'ecma.y', 104)
774
833
  def _reduce_31(val, _values, result)
775
- result.unshift val[2]
834
+ result = [result]
776
835
  result
777
836
  end
778
837
  .,.,
779
838
 
780
- module_eval(<<'.,.,', 'ecma.y', 102)
839
+ module_eval(<<'.,.,', 'ecma.y', 105)
781
840
  def _reduce_32(val, _values, result)
782
- result = RVM::Interpreter::FunctionCall.new(:add, [result, val[2]])
841
+ result.unshift val[2]
783
842
  result
784
843
  end
785
844
  .,.,
786
845
 
787
- module_eval(<<'.,.,', 'ecma.y', 103)
846
+ module_eval(<<'.,.,', 'ecma.y', 107)
788
847
  def _reduce_33(val, _values, result)
789
- result = RVM::Interpreter::FunctionCall.new(:sub, [result, val[2]])
848
+ result = RVM::Interpreter::FunctionCall.new(:add, [result, val[2]], val[1][1])
790
849
  result
791
850
  end
792
851
  .,.,
793
852
 
794
- module_eval(<<'.,.,', 'ecma.y', 104)
853
+ module_eval(<<'.,.,', 'ecma.y', 108)
795
854
  def _reduce_34(val, _values, result)
796
- result = RVM::Interpreter::FunctionCall.new(:mul, [result, val[2]])
855
+ result = RVM::Interpreter::FunctionCall.new(:sub, [result, val[2]], val[1][1])
797
856
  result
798
857
  end
799
858
  .,.,
800
859
 
801
- module_eval(<<'.,.,', 'ecma.y', 105)
860
+ module_eval(<<'.,.,', 'ecma.y', 109)
802
861
  def _reduce_35(val, _values, result)
803
- result = RVM::Interpreter::FunctionCall.new(:sub, [result, val[2]])
862
+ result = RVM::Interpreter::FunctionCall.new(:mul, [result, val[2]], val[1][1])
804
863
  result
805
864
  end
806
865
  .,.,
807
866
 
808
- module_eval(<<'.,.,', 'ecma.y', 106)
867
+ module_eval(<<'.,.,', 'ecma.y', 110)
809
868
  def _reduce_36(val, _values, result)
810
- result = RVM::Interpreter::FunctionCall.new(:power, [result, val[2]])
869
+ result = RVM::Interpreter::FunctionCall.new(:sub, [result, val[2]], val[1][1])
811
870
  result
812
871
  end
813
872
  .,.,
814
873
 
815
- module_eval(<<'.,.,', 'ecma.y', 107)
874
+ module_eval(<<'.,.,', 'ecma.y', 111)
816
875
  def _reduce_37(val, _values, result)
817
- result = RVM::Interpreter::FunctionCall.new(:at, [result, val[2]])
876
+ result = RVM::Interpreter::FunctionCall.new(:power, [result, val[2]], val[1][1])
818
877
  result
819
878
  end
820
879
  .,.,
821
880
 
822
- module_eval(<<'.,.,', 'ecma.y', 108)
881
+ module_eval(<<'.,.,', 'ecma.y', 112)
823
882
  def _reduce_38(val, _values, result)
824
- result = RVM::Interpreter::FunctionCall.new(:not, [val[1]])
883
+ result = RVM::Interpreter::FunctionCall.new(:at, [result, val[2]], val[1][1])
825
884
  result
826
885
  end
827
886
  .,.,
828
887
 
829
- module_eval(<<'.,.,', 'ecma.y', 109)
888
+ module_eval(<<'.,.,', 'ecma.y', 113)
830
889
  def _reduce_39(val, _values, result)
831
- result = RVM::Interpreter::FunctionCall.new(:neg, [val[1]])
890
+ result = RVM::Interpreter::FunctionCall.new(:not, [val[1]], val[0][1])
832
891
  result
833
892
  end
834
893
  .,.,
835
894
 
836
- # reduce 40 omitted
895
+ module_eval(<<'.,.,', 'ecma.y', 114)
896
+ def _reduce_40(val, _values, result)
897
+ result = RVM::Interpreter::FunctionCall.new(:neg, [val[1]], val[0][1])
898
+ result
899
+ end
900
+ .,.,
837
901
 
838
- module_eval(<<'.,.,', 'ecma.y', 111)
839
- def _reduce_41(val, _values, result)
902
+ # reduce 41 omitted
903
+
904
+ module_eval(<<'.,.,', 'ecma.y', 116)
905
+ def _reduce_42(val, _values, result)
840
906
  result = RVM::Interpreter::FunctionCall.new(:and, [result, val[2]])
841
907
  result
842
908
  end
843
909
  .,.,
844
910
 
845
- module_eval(<<'.,.,', 'ecma.y', 112)
846
- def _reduce_42(val, _values, result)
911
+ module_eval(<<'.,.,', 'ecma.y', 117)
912
+ def _reduce_43(val, _values, result)
847
913
  result = RVM::Interpreter::FunctionCall.new(:or, [result, val[2]])
848
914
  result
849
915
  end
850
916
  .,.,
851
917
 
852
- # reduce 43 omitted
853
-
854
918
  # reduce 44 omitted
855
919
 
856
920
  # reduce 45 omitted
857
921
 
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]))
861
- result
862
- end
863
- .,.,
922
+ # reduce 46 omitted
864
923
 
865
- module_eval(<<'.,.,', 'ecma.y', 117)
924
+ module_eval(<<'.,.,', 'ecma.y', 121)
866
925
  def _reduce_47(val, _values, result)
867
- result = RVM::Interpreter::Variable.new(:self)
926
+ result = RVM::Interpreter::Variable.new(RVM::Interpreter.const(:string,result[0], result[1][1]))
868
927
  result
869
928
  end
870
929
  .,.,
871
930
 
872
- module_eval(<<'.,.,', 'ecma.y', 118)
931
+ module_eval(<<'.,.,', 'ecma.y', 122)
873
932
  def _reduce_48(val, _values, result)
874
- result = val[1]
933
+ result = RVM::Interpreter::Variable.new(:self, val[0][1])
875
934
  result
876
935
  end
877
936
  .,.,
878
937
 
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]])
938
+ module_eval(<<'.,.,', 'ecma.y', 123)
939
+ def _reduce_49(val, _values, result)
940
+ result = val[1]
884
941
  result
885
942
  end
886
943
  .,.,
887
944
 
888
- module_eval(<<'.,.,', 'ecma.y', 122)
945
+ # reduce 50 omitted
946
+
947
+ module_eval(<<'.,.,', 'ecma.y', 126)
889
948
  def _reduce_51(val, _values, result)
890
- result = RVM::Interpreter::FunctionCall.new(:gt, [result, val[2]])
949
+ result = RVM::Interpreter::FunctionCall.new(:lt, [result, val[2]], val[1][1])
891
950
  result
892
951
  end
893
952
  .,.,
894
953
 
895
- module_eval(<<'.,.,', 'ecma.y', 123)
954
+ module_eval(<<'.,.,', 'ecma.y', 127)
896
955
  def _reduce_52(val, _values, result)
897
- result = RVM::Interpreter::FunctionCall.new(:eq, [result, val[2]])
956
+ result = RVM::Interpreter::FunctionCall.new(:gt, [result, val[2]], val[1][1])
898
957
  result
899
958
  end
900
959
  .,.,
901
960
 
902
- module_eval(<<'.,.,', 'ecma.y', 124)
961
+ module_eval(<<'.,.,', 'ecma.y', 128)
903
962
  def _reduce_53(val, _values, result)
904
- result = RVM::Interpreter::FunctionCall.new(:neq, [result, val[2]])
963
+ result = RVM::Interpreter::FunctionCall.new(:eq, [result, val[2]], val[1][1])
905
964
  result
906
965
  end
907
966
  .,.,
908
967
 
909
- module_eval(<<'.,.,', 'ecma.y', 125)
968
+ module_eval(<<'.,.,', 'ecma.y', 129)
910
969
  def _reduce_54(val, _values, result)
911
- result = RVM::Interpreter::FunctionCall.new(:gte, [result, val[2]])
970
+ result = RVM::Interpreter::FunctionCall.new(:neq, [result, val[2]], val[1][1])
912
971
  result
913
972
  end
914
973
  .,.,
915
974
 
916
- module_eval(<<'.,.,', 'ecma.y', 126)
975
+ module_eval(<<'.,.,', 'ecma.y', 130)
917
976
  def _reduce_55(val, _values, result)
918
- result = RVM::Interpreter::FunctionCall.new(:lte, [result, val[2]])
977
+ result = RVM::Interpreter::FunctionCall.new(:gte, [result, val[2]], val[1][1])
919
978
  result
920
979
  end
921
980
  .,.,
922
981
 
923
- module_eval(<<'.,.,', 'ecma.y', 128)
982
+ module_eval(<<'.,.,', 'ecma.y', 131)
924
983
  def _reduce_56(val, _values, result)
925
- result = RVM::Interpreter::ObjectContext.new(val[0], RVM::Interpreter::Variable.new(val[2]))
984
+ result = RVM::Interpreter::FunctionCall.new(:lte, [result, val[2]], val[1][1])
926
985
  result
927
986
  end
928
987
  .,.,
929
988
 
930
- module_eval(<<'.,.,', 'ecma.y', 129)
989
+ module_eval(<<'.,.,', 'ecma.y', 133)
931
990
  def _reduce_57(val, _values, result)
932
- result = RVM::Interpreter::ObjectContext.new(val[0], RVM::Interpreter::Assignment.new(val[2], val[4]))
991
+ result = RVM::Interpreter::ObjectContext.new(val[0], RVM::Interpreter::Variable.new(val[2]))
933
992
  result
934
993
  end
935
994
  .,.,
936
995
 
937
- module_eval(<<'.,.,', 'ecma.y', 130)
996
+ module_eval(<<'.,.,', 'ecma.y', 134)
938
997
  def _reduce_58(val, _values, result)
939
- result = RVM::Interpreter::ObjectContext.new(val[0],RVM::Interpreter::FunctionCall.new(val[2][0], val[4]))
998
+ result = RVM::Interpreter::ObjectContext.new(val[0], RVM::Interpreter::Assignment.new(val[2], val[4]))
940
999
  result
941
1000
  end
942
1001
  .,.,
943
1002
 
944
- module_eval(<<'.,.,', 'ecma.y', 131)
1003
+ module_eval(<<'.,.,', 'ecma.y', 135)
945
1004
  def _reduce_59(val, _values, result)
946
- result = RVM::Interpreter::ObjectContext.new(val[0],RVM::Interpreter::FunctionCall.new(val[2][0], []))
1005
+ result = RVM::Interpreter::ObjectContext.new(val[0],RVM::Interpreter::FunctionCall.new(val[2][0], val[4], val[2][1]))
947
1006
  result
948
1007
  end
949
1008
  .,.,
950
1009
 
951
- module_eval(<<'.,.,', 'ecma.y', 133)
1010
+ module_eval(<<'.,.,', 'ecma.y', 136)
952
1011
  def _reduce_60(val, _values, result)
953
- result = RVM::Interpreter.const(:number, val[0][0], val[0][1])
1012
+ result = RVM::Interpreter::ObjectContext.new(val[0],RVM::Interpreter::FunctionCall.new(val[2][0], [], val[2][1]))
954
1013
  result
955
1014
  end
956
1015
  .,.,
957
1016
 
958
- module_eval(<<'.,.,', 'ecma.y', 134)
1017
+ module_eval(<<'.,.,', 'ecma.y', 138)
959
1018
  def _reduce_61(val, _values, result)
960
- result = RVM::Interpreter.const(:string, val[0][0], val[0][1])
1019
+ result = RVM::Interpreter.const(:number, val[0][0], val[0][1])
961
1020
  result
962
1021
  end
963
1022
  .,.,
964
1023
 
965
- # reduce 62 omitted
966
-
967
- module_eval(<<'.,.,', 'ecma.y', 137)
968
- def _reduce_63(val, _values, result)
969
- result = RVM::Interpreter::Condition.new(val[2], val[4], val[6])
1024
+ module_eval(<<'.,.,', 'ecma.y', 139)
1025
+ def _reduce_62(val, _values, result)
1026
+ result = RVM::Interpreter.const(:string, val[0][0], val[0][1])
970
1027
  result
971
1028
  end
972
1029
  .,.,
973
1030
 
974
- module_eval(<<'.,.,', 'ecma.y', 138)
1031
+ # reduce 63 omitted
1032
+
1033
+ module_eval(<<'.,.,', 'ecma.y', 141)
975
1034
  def _reduce_64(val, _values, result)
976
- result = RVM::Interpreter::Condition.new(val[2], val[4])
1035
+ result = RVM::Interpreter.const(:boolean, true, val[0][1])
977
1036
  result
978
1037
  end
979
1038
  .,.,
980
1039
 
981
- module_eval(<<'.,.,', 'ecma.y', 141)
1040
+ module_eval(<<'.,.,', 'ecma.y', 142)
982
1041
  def _reduce_65(val, _values, result)
1042
+ result = RVM::Interpreter.const(:boolean, false, val[0][1])
1043
+ result
1044
+ end
1045
+ .,.,
1046
+
1047
+ module_eval(<<'.,.,', 'ecma.y', 144)
1048
+ def _reduce_66(val, _values, result)
1049
+ result = RVM::Interpreter::Condition.new(val[2], val[4], val[6], val[0][1])
1050
+ result
1051
+ end
1052
+ .,.,
1053
+
1054
+ module_eval(<<'.,.,', 'ecma.y', 145)
1055
+ def _reduce_67(val, _values, result)
1056
+ result = RVM::Interpreter::Condition.new(val[2], val[4], nil, val[0][1])
1057
+ result
1058
+ end
1059
+ .,.,
1060
+
1061
+ module_eval(<<'.,.,', 'ecma.y', 148)
1062
+ def _reduce_68(val, _values, result)
983
1063
  init = val[2]
984
1064
  cond = val[4]
985
1065
  event = val[6]
@@ -993,42 +1073,42 @@ module_eval(<<'.,.,', 'ecma.y', 141)
993
1073
 
994
1074
  result = RVM::Interpreter::Block.new(
995
1075
  RVM::Interpreter::Sequence.new(
996
- [init,RVM::Interpreter::Loop.new(cond, body)]
997
- )
1076
+ [init,RVM::Interpreter::Loop.new(cond, body, val[0][1])]
1077
+ ), val[0][1]
998
1078
  )
999
1079
 
1000
1080
  result
1001
1081
  end
1002
1082
  .,.,
1003
1083
 
1004
- module_eval(<<'.,.,', 'ecma.y', 160)
1005
- def _reduce_66(val, _values, result)
1084
+ module_eval(<<'.,.,', 'ecma.y', 167)
1085
+ def _reduce_69(val, _values, result)
1006
1086
  cond = val[2]
1007
1087
  body = val[4]
1008
1088
  result = RVM::Interpreter::Block.new(
1009
- RVM::Interpreter::Loop.new(cond, body)
1089
+ RVM::Interpreter::Loop.new(cond, body, val[0][1]), val[0][1]
1010
1090
  )
1011
1091
 
1012
1092
  result
1013
1093
  end
1014
1094
  .,.,
1015
1095
 
1016
- module_eval(<<'.,.,', 'ecma.y', 167)
1017
- def _reduce_67(val, _values, result)
1096
+ module_eval(<<'.,.,', 'ecma.y', 174)
1097
+ def _reduce_70(val, _values, result)
1018
1098
  cond = val[4]
1019
- body = val[1]
1099
+ block = val[1]
1020
1100
  result = RVM::Interpreter::Block.new(
1021
1101
  RVM::Interpreter::Sequence.new(
1022
- [block,RVM::Interpreter::Loop.new(cond, body)]
1023
- )
1102
+ [block,RVM::Interpreter::Loop.new(cond, block, val[2][1])]
1103
+ ), val[0][1]
1024
1104
  )
1025
1105
 
1026
1106
  result
1027
1107
  end
1028
1108
  .,.,
1029
1109
 
1030
- module_eval(<<'.,.,', 'ecma.y', 176)
1031
- def _reduce_68(val, _values, result)
1110
+ module_eval(<<'.,.,', 'ecma.y', 183)
1111
+ def _reduce_71(val, _values, result)
1032
1112
  result = RVM::Interpreter.const(:string,result[0], result[1][1])
1033
1113
  result
1034
1114
  end