rVM 0.0.10 → 0.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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