rVM 0.0.14 → 0.0.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. data/README +4 -4
  2. data/bin/rvm +229 -0
  3. data/lib/rvm.rb +6 -6
  4. data/lib/rvm/acts_as_rvm_type.rb +26 -3
  5. data/lib/rvm/classes.rb +9 -15
  6. data/lib/rvm/classes/block.rb +8 -3
  7. data/lib/rvm/classes/class.rb +2 -2
  8. data/lib/rvm/classes/list.rb +1 -1
  9. data/lib/rvm/classes/null.rb +31 -0
  10. data/lib/rvm/classes/number.rb +4 -0
  11. data/lib/rvm/classes/object.rb +1 -1
  12. data/lib/rvm/classes/string.rb +6 -1
  13. data/lib/rvm/environment.rb +256 -0
  14. data/lib/rvm/functions.rb +9 -4
  15. data/lib/rvm/functions/array.rb +26 -2
  16. data/lib/rvm/functions/array/append.rb +31 -1
  17. data/lib/rvm/functions/array/at.rb +29 -1
  18. data/lib/rvm/functions/array/set_at.rb +29 -0
  19. data/lib/rvm/functions/association/assoc_get.rb +34 -0
  20. data/lib/rvm/functions/association/assoc_set.rb +32 -0
  21. data/lib/rvm/functions/bitwise.rb +3 -0
  22. data/lib/rvm/functions/bitwise/bitwise_and.rb +41 -0
  23. data/lib/rvm/functions/bitwise/bitwise_or.rb +41 -0
  24. data/lib/rvm/functions/bitwise/bitwise_xor.rb +41 -0
  25. data/lib/rvm/functions/collection/get.rb +37 -4
  26. data/lib/rvm/functions/collection/set.rb +37 -3
  27. data/lib/rvm/functions/collection/size.rb +33 -1
  28. data/lib/rvm/functions/general/cmp.rb +35 -7
  29. data/lib/rvm/functions/general/eq.rb +29 -0
  30. data/lib/rvm/functions/general/gt.rb +29 -0
  31. data/lib/rvm/functions/general/gte.rb +29 -0
  32. data/lib/rvm/functions/general/lt.rb +29 -0
  33. data/lib/rvm/functions/general/lte.rb +29 -0
  34. data/lib/rvm/functions/general/neq.rb +5 -0
  35. data/lib/rvm/functions/io/print.rb +38 -8
  36. data/lib/rvm/functions/list/align.rb +25 -1
  37. data/lib/rvm/functions/list/join.rb +27 -0
  38. data/lib/rvm/functions/list/map.rb +34 -0
  39. data/lib/rvm/functions/list/split.rb +31 -0
  40. data/lib/rvm/functions/logic/and.rb +36 -2
  41. data/lib/rvm/functions/logic/not.rb +27 -0
  42. data/lib/rvm/functions/logic/or.rb +32 -2
  43. data/lib/rvm/functions/math/add.rb +25 -0
  44. data/lib/rvm/functions/math/cos.rb +39 -0
  45. data/lib/rvm/functions/math/div.rb +25 -0
  46. data/lib/rvm/functions/math/mod.rb +41 -0
  47. data/lib/rvm/functions/math/mul.rb +25 -0
  48. data/lib/rvm/functions/math/neg.rb +25 -0
  49. data/lib/rvm/functions/math/power.rb +25 -0
  50. data/lib/rvm/functions/math/shl.rb +41 -0
  51. data/lib/rvm/functions/math/shr.rb +41 -0
  52. data/lib/rvm/functions/math/sin.rb +39 -0
  53. data/lib/rvm/functions/math/sub.rb +25 -0
  54. data/lib/rvm/functions/math/tan.rb +39 -0
  55. data/lib/rvm/functions/rails/print.rb +33 -3
  56. data/lib/rvm/interpreter.rb +405 -272
  57. data/lib/rvm/languages.rb +45 -11
  58. data/lib/rvm/languages/brainfuck.rb +15 -16
  59. data/lib/rvm/languages/ecma.rb +4 -1257
  60. data/lib/rvm/languages/ecma/compiler.rb +1353 -0
  61. data/lib/rvm/languages/ecma/core-math.js +84 -0
  62. data/lib/rvm/languages/math.rb +9 -16
  63. data/lib/rvm/languages/math/compiler.rb +9 -9
  64. data/lib/rvm/languages/math/tokenizer.rb +1 -1
  65. data/lib/rvm/languages/math/tree.rb +14 -14
  66. data/lib/rvm/library.rb +26 -18
  67. data/lib/rvm/optimisation.rb +109 -0
  68. data/lib/rvm/plugin.rb +109 -45
  69. data/lib/rvm/rails.rb +79 -54
  70. data/spec/classes/atom/association_spec.rb +8 -8
  71. data/spec/classes/atom/block_spec.rb +8 -5
  72. data/spec/classes/atom/boolean_spec.rb +1 -1
  73. data/spec/classes/atom/error_spec.rb +1 -1
  74. data/spec/classes/atom/list_spec.rb +1 -1
  75. data/spec/classes/atom/number_spec.rb +2 -2
  76. data/spec/classes/atom/string_spec.rb +1 -1
  77. data/spec/languages/ecma/ecma_spec.rb +94 -38
  78. data/spec/languages/ecma/json_spec.rb +4 -4
  79. data/spec/languages/math/compiler_spec.rb +5 -5
  80. data/spec/languages/math/tokenizer_spec.rb +1 -1
  81. data/spec/languages/math/tree_spec.rb +1 -1
  82. data/spec/{base → rvm}/class_spec.rb +2 -2
  83. data/spec/{base/interpreter → rvm}/enviroment_spec.rb +19 -9
  84. data/spec/{base → rvm}/function_spec.rb +2 -2
  85. data/spec/{functions → rvm/functions}/association/assoc_get_spec.rb +2 -2
  86. data/spec/{functions → rvm/functions}/association/assoc_set_spec.rb +2 -2
  87. data/spec/rvm/functions/collection/get_spec.rb +12 -0
  88. data/spec/rvm/functions/collection/set_spec.rb +10 -0
  89. data/spec/rvm/functions/collection/size_spec.rb +10 -0
  90. data/spec/{functions → rvm/functions}/list/split_spec.rb +3 -3
  91. data/spec/{functions → rvm/functions}/string/ansi_spec.rb +3 -3
  92. data/spec/{functions → rvm/functions}/string/capstr_spec.rb +3 -3
  93. data/spec/{functions → rvm/functions}/string/center_spec.rb +3 -3
  94. data/spec/{functions → rvm/functions}/string/ljust_spec.rb +3 -3
  95. data/spec/{functions → rvm/functions}/string/regmatch_spec.rb +3 -3
  96. data/spec/{functions → rvm/functions}/string/rjust_spec.rb +3 -3
  97. data/spec/{base → rvm}/interpreter/assignment_spec.rb +1 -1
  98. data/spec/rvm/interpreter/condition_spec.rb +103 -0
  99. data/spec/{base → rvm}/interpreter/constant_spec.rb +1 -1
  100. data/spec/rvm/interpreter/core_call_spec.rb +72 -0
  101. data/spec/{base → rvm}/interpreter/interpreter_spec.rb +1 -1
  102. data/spec/{base → rvm}/interpreter/parameter_spec.rb +1 -1
  103. data/spec/rvm/interpreter/sequence_spec.rb +47 -0
  104. data/spec/{base → rvm}/interpreter/variable_spec.rb +1 -1
  105. data/spec/{base → rvm}/plugin_spec.rb +2 -2
  106. metadata +66 -35
  107. data/lib/rake/helpers/code_statistics.rb +0 -167
  108. data/spec/base/interpreter/condition_spec.rb +0 -47
  109. data/spec/base/interpreter/function_call_spec.rb +0 -72
  110. data/spec/base/interpreter/sequence_spec.rb +0 -20
  111. data/spec/functions/collection/get_spec.rb +0 -12
  112. data/spec/functions/collection/set_spec.rb +0 -10
  113. data/spec/functions/collection/size_spec.rb +0 -10
@@ -3,7 +3,7 @@
3
3
  # Copyright (C) 2008 Heinz N. Gies (heinz@licenser.net)
4
4
  #
5
5
  # This file is published under the MIT Licenser, see LICENSE for details.
6
- require File.dirname(__FILE__) + '/plugin'
6
+ require 'rvm/plugin'
7
7
  module RVM
8
8
  # This module is the basic language container, classes are supposed to be
9
9
  # used by this as in: RVM::Language[<class id>] this guarnatees that,
@@ -22,6 +22,7 @@ module RVM
22
22
  # code = RVM::Classes[:math].compile '(1 + 1) * 3^2'
23
23
  module Languages
24
24
  extend RVM::PluginHost
25
+ plugin_path File.dirname(__FILE__), 'languages'
25
26
 
26
27
  # The Compiler class, it holds the compiler. As those grow big I suggest
27
28
  # to split the actuall code into multiple fils. Have a look at the MUSHCode
@@ -29,18 +30,51 @@ module RVM
29
30
  class Language
30
31
  extend RVM::Plugin
31
32
  plugin_host Languages
32
- class << self
33
-
34
- # Method placeholder, your compiler /needs/ to implement this
35
- # or it won't work (of cause).
36
- def compile code
37
- nil
33
+ def initialize *args
34
+ @compiler = self.class::Compiler.new(*args)
35
+ @core_libs = nil
36
+ core_libs
37
+ end
38
+
39
+ # Loads the core libaries for a language, they have to be in the directory
40
+ # rvm/langauges/LANGUAGE_ID/ directory and have to be named core-* to be
41
+ # recongnized ase core libraries.
42
+ # For speed reasons the core libraries will be cahced, to force them to be
43
+ # recompiled use the force_reload parameter as true.
44
+ def core_libs force_reload=false, additional_core_libs=[]
45
+ if not @core_libs or force_reload
46
+ @core_libs = additional_core_libs
47
+ Dir[File.join(File.dirname(__FILE__), 'languages', self.class.plugin_id.to_s, 'core-*')].each do |f|
48
+ begin
49
+ @core_libs << compile(File.read(f),true)
50
+ rescue Exception => e
51
+ puts "Failed to compile core library: #{f}."
52
+ raise e
53
+ end
54
+ end
38
55
  end
39
-
40
- # Class method called from the plugin to register witht the plugin host.
41
- def register_for *ids
42
- plugin_host.register self, *ids
56
+ @core_libs
57
+ end
58
+
59
+ # This method returns a environment that has the needed core libraries loaded.
60
+ #
61
+ # When your langauge uses core libraries to publish RVM functions to the program
62
+ # this should be used.
63
+ # The first parameter force_reload can be passed to forcefully reload the core
64
+ # libraries.
65
+ # The second parameter can be passed to add the core libraries to an existing
66
+ # environment.
67
+ def env force_reload=false, additional_core_libs=[], core_env=nil
68
+ core_env ||= RVM::Interpreter.env
69
+ core_libs(force_reload, additional_core_libs).each do |lib|
70
+ lib.execute(core_env)
71
+ end
72
+ core_env
43
73
  end
74
+
75
+ # Compiles a code with the generated compiler.
76
+ def compile code, *args
77
+ @compiler.compile code, *args
44
78
  end
45
79
  end
46
80
  end
@@ -11,6 +11,16 @@ module RVM
11
11
  # Mostly a gimick I admit but it's a nice demonstration of how rVM works.
12
12
  class Brainfuck < RVM::Languages::Language
13
13
 
14
+ def Brainfuck.bfpp str
15
+ str.gsub!(/\/\/.*?\n/,'')
16
+ str.gsub!(/[^<>+\[\].,\dv-]/,'')
17
+ str.gsub!('v','[-]')
18
+ str.gsub!(/(.)(\d+)/) do |s|
19
+ s[0].chr * s.gsub(/^./,'').to_i
20
+ end
21
+ str
22
+ end
23
+
14
24
  # This function compiles a string of BF code and returns the equivalent for the
15
25
  # rVM.
16
26
  def compile code
@@ -77,7 +87,7 @@ module RVM
77
87
  when :inc
78
88
  root << Interpreter::Assignment.new(
79
89
  ptr,
80
- Interpreter::FunctionCall.new(
90
+ Interpreter::CoreCall.new(
81
91
  :add,
82
92
  [
83
93
  Interpreter::Condition.new(
@@ -92,7 +102,7 @@ module RVM
92
102
  when :dec
93
103
  root << Interpreter::Assignment.new(
94
104
  ptr,
95
- Interpreter::FunctionCall.new(
105
+ Interpreter::CoreCall.new(
96
106
  :sub,
97
107
  [
98
108
  Interpreter::Condition.new(
@@ -107,7 +117,7 @@ module RVM
107
117
  when :left
108
118
  root << Interpreter::Assignment.new(
109
119
  Interpreter.const(:string,'ptr'),
110
- Interpreter::FunctionCall.new(
120
+ Interpreter::CoreCall.new(
111
121
  :sub,
112
122
  [
113
123
  ptr,
@@ -118,7 +128,7 @@ module RVM
118
128
  when :right
119
129
  root << Interpreter::Assignment.new(
120
130
  Interpreter.const(:string,'ptr'),
121
- Interpreter::FunctionCall.new(
131
+ Interpreter::CoreCall.new(
122
132
  :add,
123
133
  [
124
134
  ptr,
@@ -127,7 +137,7 @@ module RVM
127
137
  )
128
138
  )
129
139
  when :print
130
- root << Interpreter::FunctionCall.new(:print, [Interpreter::FunctionCall.new(:chr,[val])])
140
+ root << Interpreter::CoreCall.new(:print, [Interpreter::CoreCall.new(:chr,[val])])
131
141
  when :read
132
142
  when :loop
133
143
  body = make_vmcode(item[1])
@@ -141,14 +151,3 @@ module RVM
141
151
  end
142
152
  end
143
153
  end
144
-
145
- def bfpp str
146
- str.gsub!(/\/\/.*?\n/,'')
147
-
148
- str.gsub!(/[^<>+\[\].,\dv-]/,'')
149
- str.gsub!('v','[-]')
150
- str.gsub!(/(.)(\d+)/) do |s|
151
- s[0].chr * s.gsub(/^./,'').to_i
152
- end
153
- str
154
- end
@@ -1,1262 +1,9 @@
1
- #
2
- # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.4.5
4
- # from Racc grammer file "".
5
- #
6
-
7
- require 'racc/parser.rb'
8
-
9
-
10
- require 'strscan'
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'
18
- require 'pp'
19
-
20
1
  module RVM
21
2
  module Languages
22
- class ECMA < Racc::Parser
23
-
24
- module_eval(<<'...end ecma.y/module_eval...', 'ecma.y', 219)
25
- extend Plugin
26
- plugin_host RVM::Languages
27
- register_for :ecma
28
-
29
- def compile(str)
30
- @q = []
31
- s = StringScanner.new(str)
32
- pos = 0
33
- line = 1
34
- while not s.eos?
35
- if s.scan(/\/\/.*?\n/)
36
- elsif s.scan(/\n/)
37
- line += 1
38
- pos = s.pos
39
- elsif s.scan(/\/\*.*?\*\//m)
40
- elsif s.scan(/('(\\.|[^'])*')/)
41
- m = s.matched.gsub(/^'/,'').gsub(/'$/,'')
42
- @q.push [:STRING, [m, [line, s.pos - pos]]]
43
- elsif s.scan(/("(\\.|[^"])*")/)
44
- m = s.matched.gsub(/^"/,'').gsub(/"$/,'')
45
- m.gsub!(/\\./) do |repl|
46
- case repl
47
- when '\n'
48
- "\n"
49
- when '\t'
50
- "\t"
51
- when '\\\\'
52
- '\\'
53
- end
54
- end
55
- @q.push [:STRING, [m, [line, s.pos - pos]]]
56
- elsif s.scan(/(\.\d+|(0(\.\d+)?)|([1-9](\d*(\.\d+)?)))(e[+-]?\d+)?/i)
57
- @q.push [:NUMBER, [s.matched, [line, s.pos - pos]]]
58
- elsif s.scan(/\[/)
59
- @q.push [:SBRACKET_OPEN, [s.matched, [line, s.pos - pos]]]
60
- elsif s.scan(/\]/)
61
- @q.push [:SBRACKET_CLOSE, [s.matched, [line, s.pos - pos]]]
62
- elsif s.scan(/\{/)
63
- @q.push [:CBRACKET_OPEN, [s.matched, [line, s.pos - pos]]]
64
- elsif s.scan(/\}/)
65
- @q.push [:CBRACKET_CLOSE, [s.matched, [line, s.pos - pos]]]
66
- elsif s.scan(/[a-z_][a-z_0-9]*/i)
67
- m = s.matched
68
- type = case m
69
- when 'function'
70
- :KW_FUNCTION
71
- when 'for'
72
- :KW_FOR
73
- when 'while'
74
- :KW_WHILE
75
- when 'do'
76
- :KW_DO
77
- when 'if'
78
- :KW_IF
79
- when 'return'
80
- :KW_RETURN
81
- when 'else'
82
- :KW_ELSE
83
- when 'new'
84
- :KW_NEW
85
- when 'this'
86
- :KW_THIS
87
- when 'var'
88
- :KW_VAR
89
- when 'true'
90
- :KW_TRUE
91
- when 'false'
92
- :KW_FALSE
93
- else
94
- :IDENT
95
- end
96
- @q.push [type, [m, [line, s.pos - pos]]]
97
- elsif s.scan(/(([<>]=?)|([!=]=)|[.+*\/(),:=;\!-]|&&|\|\|)/) # This ones do not get a new line (sepperator added)
98
- m = s.matched
99
- @q.push [m, [m, [line, s.pos - pos]]]
100
- elsif s.scan(/\s+/)
101
- else
102
- raise Exception, "Woops! I can daeal with char at #{line}:#{s.pos - pos}: #{s.pre_match} #{s.post_match}"
103
- end
3
+ # A compiler for JavaScript.
4
+ class ECMA < RVM::Languages::Language
5
+ register_for :ecma
6
+ helper :compiler
104
7
  end
105
- @q.push([false, '$end'])
106
-
107
- do_parse
108
8
  end
109
-
110
- def next_token
111
- @q.shift
112
- end
113
- ...end ecma.y/module_eval...
114
- ##### State transition tables begin ###
115
-
116
- racc_action_table = [
117
- 62, 64, 65, 66, 52, 53, 55, 56, 58, 59,
118
- 60, 61, 63, 62, 64, 65, 66, 52, 53, 55,
119
- 62, 64, 65, 66, 52, 109, 125, 91, 110, 57,
120
- 126, 62, 64, 65, 66, 52, 53, 55, 46, 54,
121
- 62, -78, 57, 62, 64, 65, 66, 52, 62, 57,
122
- 131, 86, 54, 112, 62, 64, 65, 87, 120, 54,
123
- 57, 62, 64, 65, 66, 52, 53, 55, 57, 57,
124
- 54, 57, 57, 138, 57, 80, 57, 57, 54, 54,
125
- 127, 54, 54, 57, 54, 106, 54, 54, 57, 107,
126
- 57, 83, 104, 54, 62, 64, 65, 151, 54, 134,
127
- 54, 62, 64, 65, 66, 52, 53, 55, 56, 58,
128
- 59, 60, 61, 63, 62, 64, 65, 66, 52, 53,
129
- 55, 80, 135, 57, 136, 133, 114, 134, 121, 46,
130
- 57, 75, 68, 54, 138, 46, 67, 149, 150, 122,
131
- 54, 124, 152, 57, 48, 62, 64, 65, 66, 52,
132
- 53, 55, 47, 54, 62, 64, 65, 66, 52, 53,
133
- 55, 56, 58, 59, 60, 61, 63, 46, 155, 43,
134
- nil, nil, nil, nil, 57, nil, nil, nil, nil, nil,
135
- nil, nil, nil, 57, 54, nil, nil, nil, nil, nil,
136
- nil, nil, nil, 54, 62, 64, 65, 66, 52, 53,
137
- 55, 56, 58, 59, 60, 61, 63, 62, 64, 65,
138
- 66, 52, 53, 55, 56, 58, 59, 60, 61, 63,
139
- nil, nil, nil, 57, nil, nil, nil, nil, nil, nil,
140
- nil, 108, nil, 54, nil, nil, 57, nil, nil, nil,
141
- nil, 113, nil, nil, nil, nil, 54, 62, 64, 65,
142
- 66, 52, 53, 55, 56, 58, 59, 60, 61, 63,
143
- 62, 64, 65, 66, 52, 53, 55, 56, 58, 59,
144
- 60, 61, 63, nil, nil, nil, 57, 62, 64, 65,
145
- 66, 52, 53, 55, nil, nil, 54, nil, nil, 57,
146
- nil, nil, nil, nil, nil, nil, nil, 108, nil, 54,
147
- nil, nil, nil, nil, nil, nil, 57, nil, nil, nil,
148
- nil, nil, nil, nil, nil, nil, 54, 62, 64, 65,
149
- 66, 52, 53, 55, 56, 58, 59, 60, 61, 63,
150
- 62, 64, 65, 66, 52, 53, 55, 56, 58, 59,
151
- 60, 61, 63, nil, nil, nil, 57, nil, nil, nil,
152
- nil, nil, nil, nil, nil, nil, 54, nil, nil, 57,
153
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 54,
154
- 62, 64, 65, 66, 52, 53, 55, 56, 58, 59,
155
- 60, 61, 63, nil, nil, nil, nil, nil, nil, nil,
156
- nil, nil, nil, 36, 1, nil, nil, nil, nil, 57,
157
- nil, nil, nil, 31, 38, nil, 7, 8, 10, 54,
158
- 16, 20, 26, 27, 30, 35, 2, nil, 9, 11,
159
- nil, 18, nil, 24, 36, 1, nil, nil, 5, nil,
160
- nil, nil, nil, nil, 31, 41, nil, nil, nil, nil,
161
- nil, nil, nil, nil, 27, 30, 35, 36, 1, 9,
162
- 11, nil, 40, nil, 24, nil, nil, 31, 38, 5,
163
- nil, 8, 10, nil, 16, 20, 26, 27, 30, 35,
164
- 2, nil, 9, 11, nil, 18, nil, 24, 36, 1,
165
- nil, nil, 5, nil, nil, nil, nil, nil, 31, 38,
166
- nil, nil, nil, nil, nil, nil, nil, 26, 27, 30,
167
- 35, 36, 1, 9, 11, nil, 40, nil, 24, nil,
168
- nil, 31, 38, 5, nil, nil, nil, nil, nil, nil,
169
- 26, 27, 30, 35, 36, 1, 9, 11, nil, 40,
170
- nil, 24, nil, nil, 31, 38, 5, nil, nil, nil,
171
- nil, nil, nil, 26, 27, 30, 35, 36, 1, 9,
172
- 11, nil, 40, nil, 24, nil, nil, 31, 41, 5,
173
- nil, nil, nil, nil, nil, nil, nil, 27, 30, 35,
174
- 36, 1, 9, 11, nil, 40, 73, 24, nil, nil,
175
- 31, 41, 5, nil, nil, nil, nil, nil, nil, nil,
176
- 27, 30, 35, 36, 1, 9, 11, nil, 40, nil,
177
- 24, nil, nil, 31, 41, 5, nil, nil, nil, nil,
178
- nil, nil, nil, 27, 30, 35, 36, 1, 9, 11,
179
- nil, 40, nil, 24, nil, nil, 31, 41, 5, nil,
180
- nil, nil, nil, nil, nil, nil, 27, 30, 35, 36,
181
- 1, 9, 11, nil, 40, nil, 24, 143, nil, 31,
182
- 41, 5, nil, nil, nil, nil, nil, nil, nil, 27,
183
- 30, 35, 36, 1, 9, 11, nil, 40, nil, 24,
184
- nil, nil, 31, 41, 5, nil, nil, nil, nil, nil,
185
- nil, nil, 27, 30, 35, 36, 1, 9, 11, nil,
186
- 40, nil, 24, nil, nil, 31, 41, 5, nil, nil,
187
- nil, nil, nil, nil, nil, 27, 30, 35, 36, 1,
188
- 9, 11, nil, 40, nil, 24, nil, nil, 31, 41,
189
- 5, nil, nil, nil, nil, nil, nil, nil, 27, 30,
190
- 35, 36, 1, 9, 11, nil, 40, nil, 24, nil,
191
- nil, 31, 41, 5, nil, nil, nil, nil, nil, nil,
192
- nil, 27, 30, 35, 36, 1, 9, 11, nil, 40,
193
- nil, 24, nil, nil, 31, 41, 5, nil, nil, nil,
194
- nil, nil, nil, nil, 27, 30, 35, 36, 1, 9,
195
- 11, nil, 40, nil, 24, nil, nil, 31, 41, 5,
196
- nil, nil, nil, nil, nil, nil, nil, 27, 30, 35,
197
- 36, 1, 9, 11, nil, 40, nil, 24, nil, nil,
198
- 31, 41, 5, nil, nil, nil, nil, nil, nil, nil,
199
- 27, 30, 35, 36, 1, 9, 11, nil, 40, nil,
200
- 24, nil, nil, 31, 41, 5, nil, nil, nil, nil,
201
- nil, nil, nil, 27, 30, 35, 36, 1, 9, 11,
202
- nil, 40, nil, 24, nil, nil, 31, 41, 5, nil,
203
- nil, nil, nil, nil, nil, nil, 27, 30, 35, 36,
204
- 1, 9, 11, nil, 40, nil, 24, nil, nil, 31,
205
- 41, 5, nil, nil, nil, nil, nil, nil, nil, 27,
206
- 30, 35, 36, 1, 9, 11, nil, 40, nil, 24,
207
- nil, nil, 31, 41, 5, nil, nil, nil, nil, nil,
208
- nil, nil, 27, 30, 35, 36, 1, 9, 11, nil,
209
- 40, nil, 24, nil, nil, 31, 38, 5, nil, 8,
210
- 10, nil, 16, 20, 26, 27, 30, 35, 2, nil,
211
- 9, 11, nil, 18, nil, 24, 36, 1, nil, nil,
212
- 5, nil, nil, nil, nil, nil, 31, 38, nil, nil,
213
- nil, nil, nil, nil, nil, 26, 27, 30, 35, 36,
214
- 1, 9, 11, nil, 40, nil, 24, nil, nil, 31,
215
- 38, 5, nil, 8, 10, nil, 16, 20, 26, 27,
216
- 30, 35, 2, nil, 9, 11, nil, 18, nil, 24,
217
- 36, 1, nil, nil, 5, nil, nil, nil, nil, nil,
218
- 31, 41, nil, nil, nil, nil, nil, nil, nil, nil,
219
- 27, 30, 35, 36, 1, 9, 11, nil, 40, nil,
220
- 24, nil, nil, 31, 41, 5, nil, nil, nil, nil,
221
- nil, nil, nil, 27, 30, 35, 36, 1, 9, 11,
222
- nil, 40, nil, 24, nil, nil, 31, 38, 5, nil,
223
- nil, nil, nil, nil, nil, 26, 27, 30, 35, 36,
224
- 1, 9, 11, nil, 40, nil, 24, nil, nil, 31,
225
- 41, 5, nil, nil, nil, nil, nil, nil, nil, 27,
226
- 30, 35, 36, 1, 9, 11, nil, 40, nil, 24,
227
- nil, nil, 31, 41, 5, nil, nil, nil, nil, nil,
228
- nil, nil, 27, 30, 35, 36, 1, 9, 11, nil,
229
- 40, nil, 24, nil, nil, 31, 38, 5, nil, 8,
230
- 10, nil, 16, 20, 26, 27, 30, 35, 2, nil,
231
- 9, 11, nil, 18, nil, 24, 36, 1, nil, nil,
232
- 5, nil, nil, nil, nil, nil, 31, 38, nil, nil,
233
- nil, nil, nil, nil, nil, 26, 27, 30, 35, 36,
234
- 1, 9, 11, nil, 40, nil, 24, nil, nil, 31,
235
- 41, 5, nil, nil, nil, nil, nil, nil, nil, 27,
236
- 30, 35, 36, 1, 9, 11, nil, 40, nil, 24,
237
- 117, nil, 31, 38, 5, nil, 8, 10, nil, 16,
238
- 20, 26, 27, 30, 35, 2, nil, 9, 11, nil,
239
- 18, 73, 24, 36, 1, nil, nil, 5, nil, nil,
240
- nil, nil, nil, 31, 41, nil, nil, nil, nil, nil,
241
- nil, nil, nil, 27, 30, 35, 36, 1, 9, 11,
242
- nil, 40, nil, 24, nil, nil, 31, 38, 5, nil,
243
- 8, 10, nil, 16, 20, 26, 27, 30, 35, 2,
244
- nil, 9, 11, nil, 18, nil, 24, 36, 1, nil,
245
- nil, 5, nil, nil, nil, nil, nil, 31, 41, nil,
246
- nil, nil, nil, nil, nil, nil, nil, 27, 30, 35,
247
- 36, 1, 9, 11, 51, 40, nil, 24, nil, nil,
248
- 31, 41, 5, nil, nil, nil, nil, nil, nil, nil,
249
- 27, 30, 35, 36, 1, 9, 11, nil, 40, nil,
250
- 24, nil, nil, 31, 38, 5, nil, nil, nil, nil,
251
- nil, nil, 26, 27, 30, 35, 36, 1, 9, 11,
252
- nil, 40, nil, 24, nil, nil, 31, 38, 5, nil,
253
- 8, 10, nil, 16, 20, 26, 27, 30, 35, 2,
254
- nil, 9, 11, nil, 18, nil, 24, 36, 1, nil,
255
- nil, 5, nil, nil, nil, nil, nil, 31, 41, nil,
256
- nil, nil, nil, nil, nil, nil, nil, 27, 30, 35,
257
- 36, 1, 9, 11, nil, 40, nil, 24, nil, nil,
258
- 31, 38, 5, nil, 8, 10, nil, 16, 20, 26,
259
- 27, 30, 35, 2, nil, 9, 11, nil, 18, nil,
260
- 24, 36, 1, nil, nil, 5, nil, nil, nil, nil,
261
- nil, 31, 38, nil, nil, nil, nil, nil, nil, nil,
262
- 26, 27, 30, 35, 36, 1, 9, 11, nil, 40,
263
- nil, 24, nil, nil, 31, 41, 5, nil, nil, nil,
264
- nil, nil, nil, nil, 27, 30, 35, 36, 1, 9,
265
- 11, nil, 40, nil, 24, nil, nil, 31, 38, 5,
266
- 7, 8, 10, nil, 16, 20, 26, 27, 30, 35,
267
- 2, nil, 9, 11, nil, 18, nil, 24, 36, 1,
268
- nil, nil, 5, nil, nil, nil, nil, nil, 31, 38,
269
- nil, nil, nil, nil, nil, nil, nil, 26, 27, 30,
270
- 35, nil, nil, 9, 11, nil, 40, nil, 24, nil,
271
- nil, nil, nil, 5 ]
272
-
273
- racc_action_check = [
274
- 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
275
- 94, 94, 94, 93, 93, 93, 93, 93, 93, 93,
276
- 92, 92, 92, 92, 92, 72, 91, 54, 72, 94,
277
- 94, 96, 96, 96, 96, 96, 96, 96, 83, 94,
278
- 101, 38, 93, 89, 89, 89, 89, 89, 102, 92,
279
- 112, 49, 93, 76, 88, 88, 88, 49, 83, 92,
280
- 96, 97, 97, 97, 97, 97, 97, 97, 99, 101,
281
- 96, 141, 89, 120, 39, 38, 44, 102, 99, 101,
282
- 105, 141, 89, 88, 39, 69, 44, 102, 79, 69,
283
- 97, 45, 67, 88, 103, 103, 103, 142, 79, 142,
284
- 97, 146, 146, 146, 146, 146, 146, 146, 146, 146,
285
- 146, 146, 146, 146, 98, 98, 98, 98, 98, 98,
286
- 98, 41, 119, 103, 119, 116, 78, 116, 84, 26,
287
- 146, 19, 16, 103, 135, 136, 15, 139, 140, 85,
288
- 146, 90, 145, 98, 10, 100, 100, 100, 100, 100,
289
- 100, 100, 8, 98, 12, 12, 12, 12, 12, 12,
290
- 12, 12, 12, 12, 12, 12, 12, 7, 153, 3,
291
- nil, nil, nil, nil, 100, nil, nil, nil, nil, nil,
292
- nil, nil, nil, 12, 100, nil, nil, nil, nil, nil,
293
- nil, nil, nil, 12, 81, 81, 81, 81, 81, 81,
294
- 81, 81, 81, 81, 81, 81, 81, 77, 77, 77,
295
- 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
296
- nil, nil, nil, 81, nil, nil, nil, nil, nil, nil,
297
- nil, 81, nil, 81, nil, nil, 77, nil, nil, nil,
298
- nil, 77, nil, nil, nil, nil, 77, 129, 129, 129,
299
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
300
- 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
301
- 71, 71, 71, nil, nil, nil, 129, 95, 95, 95,
302
- 95, 95, 95, 95, nil, nil, 129, nil, nil, 71,
303
- nil, nil, nil, nil, nil, nil, nil, 71, nil, 71,
304
- nil, nil, nil, nil, nil, nil, 95, nil, nil, nil,
305
- nil, nil, nil, nil, nil, nil, 95, 115, 115, 115,
306
- 115, 115, 115, 115, 115, 115, 115, 115, 115, 115,
307
- 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
308
- 50, 50, 50, nil, nil, nil, 115, nil, nil, nil,
309
- nil, nil, nil, nil, nil, nil, 115, nil, nil, 50,
310
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 50,
311
- 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
312
- 123, 123, 123, nil, nil, nil, nil, nil, nil, nil,
313
- nil, nil, nil, 75, 75, nil, nil, nil, nil, 123,
314
- nil, nil, nil, 75, 75, nil, 75, 75, 75, 123,
315
- 75, 75, 75, 75, 75, 75, 75, nil, 75, 75,
316
- nil, 75, nil, 75, 124, 124, nil, nil, 75, nil,
317
- nil, nil, nil, nil, 124, 124, nil, nil, nil, nil,
318
- nil, nil, nil, nil, 124, 124, 124, 122, 122, 124,
319
- 124, nil, 124, nil, 124, nil, nil, 122, 122, 124,
320
- nil, 122, 122, nil, 122, 122, 122, 122, 122, 122,
321
- 122, nil, 122, 122, nil, 122, nil, 122, 47, 47,
322
- nil, nil, 122, nil, nil, nil, nil, nil, 47, 47,
323
- nil, nil, nil, nil, nil, nil, nil, 47, 47, 47,
324
- 47, 48, 48, 47, 47, nil, 47, nil, 47, nil,
325
- nil, 48, 48, 47, nil, nil, nil, nil, nil, nil,
326
- 48, 48, 48, 48, 121, 121, 48, 48, nil, 48,
327
- nil, 48, nil, nil, 121, 121, 48, nil, nil, nil,
328
- nil, nil, nil, 121, 121, 121, 121, 40, 40, 121,
329
- 121, nil, 121, nil, 121, nil, nil, 40, 40, 121,
330
- nil, nil, nil, nil, nil, nil, nil, 40, 40, 40,
331
- 52, 52, 40, 40, nil, 40, 40, 40, nil, nil,
332
- 52, 52, 40, nil, nil, nil, nil, nil, nil, nil,
333
- 52, 52, 52, 53, 53, 52, 52, nil, 52, nil,
334
- 52, nil, nil, 53, 53, 52, nil, nil, nil, nil,
335
- nil, nil, nil, 53, 53, 53, 125, 125, 53, 53,
336
- nil, 53, nil, 53, nil, nil, 125, 125, 53, nil,
337
- nil, nil, nil, nil, nil, nil, 125, 125, 125, 55,
338
- 55, 125, 125, nil, 125, nil, 125, 125, nil, 55,
339
- 55, 125, nil, nil, nil, nil, nil, nil, nil, 55,
340
- 55, 55, 56, 56, 55, 55, nil, 55, nil, 55,
341
- nil, nil, 56, 56, 55, nil, nil, nil, nil, nil,
342
- nil, nil, 56, 56, 56, 57, 57, 56, 56, nil,
343
- 56, nil, 56, nil, nil, 57, 57, 56, nil, nil,
344
- nil, nil, nil, nil, nil, 57, 57, 57, 58, 58,
345
- 57, 57, nil, 57, nil, 57, nil, nil, 58, 58,
346
- 57, nil, nil, nil, nil, nil, nil, nil, 58, 58,
347
- 58, 59, 59, 58, 58, nil, 58, nil, 58, nil,
348
- nil, 59, 59, 58, nil, nil, nil, nil, nil, nil,
349
- nil, 59, 59, 59, 60, 60, 59, 59, nil, 59,
350
- nil, 59, nil, nil, 60, 60, 59, nil, nil, nil,
351
- nil, nil, nil, nil, 60, 60, 60, 61, 61, 60,
352
- 60, nil, 60, nil, 60, nil, nil, 61, 61, 60,
353
- nil, nil, nil, nil, nil, nil, nil, 61, 61, 61,
354
- 62, 62, 61, 61, nil, 61, nil, 61, nil, nil,
355
- 62, 62, 61, nil, nil, nil, nil, nil, nil, nil,
356
- 62, 62, 62, 63, 63, 62, 62, nil, 62, nil,
357
- 62, nil, nil, 63, 63, 62, nil, nil, nil, nil,
358
- nil, nil, nil, 63, 63, 63, 64, 64, 63, 63,
359
- nil, 63, nil, 63, nil, nil, 64, 64, 63, nil,
360
- nil, nil, nil, nil, nil, nil, 64, 64, 64, 65,
361
- 65, 64, 64, nil, 64, nil, 64, nil, nil, 65,
362
- 65, 64, nil, nil, nil, nil, nil, nil, nil, 65,
363
- 65, 65, 66, 66, 65, 65, nil, 65, nil, 65,
364
- nil, nil, 66, 66, 65, nil, nil, nil, nil, nil,
365
- nil, nil, 66, 66, 66, 127, 127, 66, 66, nil,
366
- 66, nil, 66, nil, nil, 127, 127, 66, nil, 127,
367
- 127, nil, 127, 127, 127, 127, 127, 127, 127, nil,
368
- 127, 127, nil, 127, nil, 127, 68, 68, nil, nil,
369
- 127, nil, nil, nil, nil, nil, 68, 68, nil, nil,
370
- nil, nil, nil, nil, nil, 68, 68, 68, 68, 110,
371
- 110, 68, 68, nil, 68, nil, 68, nil, nil, 110,
372
- 110, 68, nil, 110, 110, nil, 110, 110, 110, 110,
373
- 110, 110, 110, nil, 110, 110, nil, 110, nil, 110,
374
- 36, 36, nil, nil, 110, nil, nil, nil, nil, nil,
375
- 36, 36, nil, nil, nil, nil, nil, nil, nil, nil,
376
- 36, 36, 36, 108, 108, 36, 36, nil, 36, nil,
377
- 36, nil, nil, 108, 108, 36, nil, nil, nil, nil,
378
- nil, nil, nil, 108, 108, 108, 43, 43, 108, 108,
379
- nil, 108, nil, 108, nil, nil, 43, 43, 108, nil,
380
- nil, nil, nil, nil, nil, 43, 43, 43, 43, 107,
381
- 107, 43, 43, nil, 43, nil, 43, nil, nil, 107,
382
- 107, 43, nil, nil, nil, nil, nil, nil, nil, 107,
383
- 107, 107, 24, 24, 107, 107, nil, 107, nil, 107,
384
- nil, nil, 24, 24, 107, nil, nil, nil, nil, nil,
385
- nil, nil, 24, 24, 24, 20, 20, 24, 24, nil,
386
- 24, nil, 24, nil, nil, 20, 20, 24, nil, 20,
387
- 20, nil, 20, 20, 20, 20, 20, 20, 20, nil,
388
- 20, 20, nil, 20, nil, 20, 131, 131, nil, nil,
389
- 20, nil, nil, nil, nil, nil, 131, 131, nil, nil,
390
- nil, nil, nil, nil, nil, 131, 131, 131, 131, 80,
391
- 80, 131, 131, nil, 131, nil, 131, nil, nil, 80,
392
- 80, 131, nil, nil, nil, nil, nil, nil, nil, 80,
393
- 80, 80, 18, 18, 80, 80, nil, 80, nil, 80,
394
- 80, nil, 18, 18, 80, nil, 18, 18, nil, 18,
395
- 18, 18, 18, 18, 18, 18, nil, 18, 18, nil,
396
- 18, 18, 18, 134, 134, nil, nil, 18, nil, nil,
397
- nil, nil, nil, 134, 134, nil, nil, nil, nil, nil,
398
- nil, nil, nil, 134, 134, 134, 138, 138, 134, 134,
399
- nil, 134, nil, 134, nil, nil, 138, 138, 134, nil,
400
- 138, 138, nil, 138, 138, 138, 138, 138, 138, 138,
401
- nil, 138, 138, nil, 138, nil, 138, 11, 11, nil,
402
- nil, 138, nil, nil, nil, nil, nil, 11, 11, nil,
403
- nil, nil, nil, nil, nil, nil, nil, 11, 11, 11,
404
- 87, 87, 11, 11, 11, 11, nil, 11, nil, nil,
405
- 87, 87, 11, nil, nil, nil, nil, nil, nil, nil,
406
- 87, 87, 87, 149, 149, 87, 87, nil, 87, nil,
407
- 87, nil, nil, 149, 149, 87, nil, nil, nil, nil,
408
- nil, nil, 149, 149, 149, 149, 150, 150, 149, 149,
409
- nil, 149, nil, 149, nil, nil, 150, 150, 149, nil,
410
- 150, 150, nil, 150, 150, 150, 150, 150, 150, 150,
411
- nil, 150, 150, nil, 150, nil, 150, 5, 5, nil,
412
- nil, 150, nil, nil, nil, nil, nil, 5, 5, nil,
413
- nil, nil, nil, nil, nil, nil, nil, 5, 5, 5,
414
- 155, 155, 5, 5, nil, 5, nil, 5, nil, nil,
415
- 155, 155, 5, nil, 155, 155, nil, 155, 155, 155,
416
- 155, 155, 155, 155, nil, 155, 155, nil, 155, nil,
417
- 155, 2, 2, nil, nil, 155, nil, nil, nil, nil,
418
- nil, 2, 2, nil, nil, nil, nil, nil, nil, nil,
419
- 2, 2, 2, 2, 1, 1, 2, 2, nil, 2,
420
- nil, 2, nil, nil, 1, 1, 2, nil, nil, nil,
421
- nil, nil, nil, nil, 1, 1, 1, 0, 0, 1,
422
- 1, nil, 1, nil, 1, nil, nil, 0, 0, 1,
423
- 0, 0, 0, nil, 0, 0, 0, 0, 0, 0,
424
- 0, nil, 0, 0, nil, 0, nil, 0, 114, 114,
425
- nil, nil, 0, nil, nil, nil, nil, nil, 114, 114,
426
- nil, nil, nil, nil, nil, nil, nil, 114, 114, 114,
427
- 114, nil, nil, 114, 114, nil, 114, nil, 114, nil,
428
- nil, nil, nil, 114 ]
429
-
430
- racc_action_pointer = [
431
- 1467, 1444, 1421, 163, nil, 1367, nil, 146, 112, nil,
432
- 104, 1267, 147, nil, nil, 136, 92, nil, 1182, 89,
433
- 1105, nil, nil, nil, 1082, nil, 108, nil, nil, nil,
434
- nil, nil, nil, nil, nil, nil, 990, nil, 35, 38,
435
- 537, 81, nil, 1036, 40, 51, nil, 468, 491, 14,
436
- 323, nil, 560, 583, 6, 629, 652, 675, 698, 721,
437
- 744, 767, 790, 813, 836, 859, 882, 92, 936, 46,
438
- nil, 253, -14, nil, nil, 383, 26, 200, 120, 52,
439
- 1159, 187, nil, 17, 86, 98, nil, 1290, 47, 36,
440
- 135, -14, 13, 6, -7, 270, 24, 54, 107, 32,
441
- 138, 33, 41, 87, nil, 39, nil, 1059, 1013, nil,
442
- 959, nil, 10, nil, 1498, 310, 84, nil, nil, 81,
443
- 35, 514, 437, 363, 414, 606, nil, 905, nil, 240,
444
- nil, 1136, nil, nil, 1213, 96, 114, nil, 1236, 95,
445
- 112, 35, 56, nil, nil, 101, 94, nil, nil, 1313,
446
- 1336, nil, nil, 127, nil, 1390, nil ]
447
-
448
- racc_action_default = [
449
- -2, -79, -79, -79, -70, -79, -24, -79, -79, -54,
450
- -79, -79, -16, -50, -23, -79, -79, -51, -79, -1,
451
- -79, -56, -52, -25, -79, -26, -79, -71, -27, -7,
452
- -72, -67, -28, -5, -69, -68, -79, -6, -53, -46,
453
- -79, -53, -29, -79, -45, -79, -78, -79, -79, -79,
454
- -32, -30, -79, -79, -79, -79, -79, -79, -79, -79,
455
- -79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
456
- -37, -16, -79, -34, -19, -9, -79, -79, -79, -47,
457
- -79, -79, -17, -79, -79, -79, -31, -79, -40, -48,
458
- -63, -78, -49, -58, -79, -57, -61, -62, -59, -43,
459
- -60, -41, -42, -39, 157, -79, -35, -79, -79, -22,
460
- -21, -8, -79, -55, -79, -14, -79, -3, -12, -79,
461
- -79, -79, -79, -33, -79, -79, -44, -79, -38, -36,
462
- -20, -79, -18, -4, -79, -79, -79, -10, -79, -79,
463
- -74, -64, -79, -66, -76, -79, -15, -11, -13, -79,
464
- -79, -65, -77, -79, -73, -79, -75 ]
465
-
466
- racc_goto_table = [
467
- 42, 74, 116, 76, 137, 15, 45, 119, 29, 19,
468
- 49, 128, nil, nil, nil, nil, 39, nil, nil, 147,
469
- 44, nil, nil, nil, nil, 78, 50, nil, nil, nil,
470
- nil, nil, nil, 71, nil, nil, nil, nil, nil, 77,
471
- nil, 82, nil, nil, nil, 84, 85, 142, nil, nil,
472
- nil, 79, nil, 90, nil, 81, nil, nil, nil, nil,
473
- nil, nil, nil, nil, nil, nil, 105, 88, 89, nil,
474
- 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
475
- 102, 103, 118, 111, nil, nil, nil, nil, nil, nil,
476
- nil, nil, nil, 130, nil, 115, nil, nil, nil, nil,
477
- nil, nil, 123, nil, nil, 140, nil, nil, nil, nil,
478
- 144, nil, 132, nil, nil, nil, nil, nil, nil, 139,
479
- nil, 74, 81, 129, nil, nil, nil, nil, nil, 145,
480
- nil, nil, nil, 154, nil, 148, nil, nil, 156, 141,
481
- 115, nil, nil, nil, nil, nil, nil, 153, nil, 146 ]
482
-
483
- racc_goto_check = [
484
- 12, 6, 4, 6, 9, 1, 8, 10, 5, 2,
485
- 19, 22, nil, nil, nil, nil, 11, nil, nil, 9,
486
- 11, nil, nil, nil, nil, 8, 11, nil, nil, nil,
487
- nil, nil, nil, 11, nil, nil, nil, nil, nil, 11,
488
- nil, 12, nil, nil, nil, 12, 12, 4, nil, nil,
489
- nil, 11, nil, 8, nil, 11, nil, nil, nil, nil,
490
- nil, nil, nil, nil, nil, nil, 12, 11, 11, nil,
491
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
492
- 11, 11, 8, 5, nil, nil, nil, nil, nil, nil,
493
- nil, nil, nil, 6, nil, 11, nil, nil, nil, nil,
494
- nil, nil, 11, nil, nil, 6, nil, nil, nil, nil,
495
- 6, nil, 12, nil, nil, nil, nil, nil, nil, 12,
496
- nil, 6, 11, 11, nil, nil, nil, nil, nil, 12,
497
- nil, nil, nil, 6, nil, 8, nil, nil, 6, 11,
498
- 11, nil, nil, nil, nil, nil, nil, 12, nil, 11 ]
499
-
500
- racc_goto_pointer = [
501
- nil, 5, 9, nil, -78, 8, -17, nil, -1, -116,
502
- -76, 15, -2, nil, nil, nil, nil, nil, nil, -1,
503
- nil, nil, -96, nil, nil, nil ]
504
-
505
- racc_goto_default = [
506
- nil, nil, nil, 22, nil, nil, 33, 37, 3, 6,
507
- nil, 12, 14, 72, 23, 25, 28, 32, 34, nil,
508
- 4, 69, 70, 13, 17, 21 ]
509
-
510
- racc_reduce_table = [
511
- 0, 0, :racc_error,
512
- 1, 48, :_reduce_none,
513
- 0, 48, :_reduce_2,
514
- 3, 50, :_reduce_3,
515
- 4, 50, :_reduce_4,
516
- 1, 52, :_reduce_none,
517
- 1, 52, :_reduce_none,
518
- 1, 49, :_reduce_7,
519
- 3, 49, :_reduce_8,
520
- 2, 49, :_reduce_none,
521
- 5, 54, :_reduce_10,
522
- 6, 54, :_reduce_11,
523
- 1, 57, :_reduce_12,
524
- 3, 57, :_reduce_13,
525
- 1, 51, :_reduce_14,
526
- 3, 51, :_reduce_15,
527
- 1, 59, :_reduce_none,
528
- 3, 59, :_reduce_17,
529
- 4, 59, :_reduce_18,
530
- 1, 60, :_reduce_19,
531
- 3, 60, :_reduce_20,
532
- 2, 60, :_reduce_none,
533
- 3, 56, :_reduce_22,
534
- 1, 53, :_reduce_none,
535
- 1, 53, :_reduce_none,
536
- 1, 53, :_reduce_none,
537
- 1, 53, :_reduce_none,
538
- 1, 53, :_reduce_none,
539
- 1, 53, :_reduce_none,
540
- 2, 64, :_reduce_29,
541
- 2, 65, :_reduce_30,
542
- 3, 65, :_reduce_31,
543
- 1, 66, :_reduce_32,
544
- 3, 66, :_reduce_33,
545
- 2, 67, :_reduce_34,
546
- 3, 67, :_reduce_35,
547
- 3, 69, :_reduce_36,
548
- 1, 68, :_reduce_37,
549
- 3, 68, :_reduce_38,
550
- 3, 58, :_reduce_39,
551
- 3, 58, :_reduce_40,
552
- 3, 58, :_reduce_41,
553
- 3, 58, :_reduce_42,
554
- 3, 58, :_reduce_43,
555
- 4, 58, :_reduce_44,
556
- 2, 58, :_reduce_45,
557
- 2, 58, :_reduce_46,
558
- 2, 58, :_reduce_none,
559
- 3, 58, :_reduce_48,
560
- 3, 58, :_reduce_49,
561
- 1, 58, :_reduce_none,
562
- 1, 58, :_reduce_none,
563
- 1, 58, :_reduce_none,
564
- 1, 58, :_reduce_53,
565
- 1, 58, :_reduce_54,
566
- 3, 58, :_reduce_55,
567
- 1, 58, :_reduce_none,
568
- 3, 70, :_reduce_57,
569
- 3, 70, :_reduce_58,
570
- 3, 70, :_reduce_59,
571
- 3, 70, :_reduce_60,
572
- 3, 70, :_reduce_61,
573
- 3, 70, :_reduce_62,
574
- 3, 71, :_reduce_63,
575
- 5, 71, :_reduce_64,
576
- 6, 71, :_reduce_65,
577
- 5, 71, :_reduce_66,
578
- 1, 72, :_reduce_67,
579
- 1, 72, :_reduce_68,
580
- 1, 72, :_reduce_none,
581
- 1, 72, :_reduce_none,
582
- 1, 72, :_reduce_71,
583
- 1, 72, :_reduce_72,
584
- 7, 62, :_reduce_73,
585
- 5, 62, :_reduce_74,
586
- 9, 61, :_reduce_75,
587
- 5, 63, :_reduce_76,
588
- 6, 63, :_reduce_77,
589
- 1, 55, :_reduce_78 ]
590
-
591
- racc_reduce_n = 79
592
-
593
- racc_shift_n = 157
594
-
595
- racc_token_table = {
596
- false => 0,
597
- :error => 1,
598
- :UMINUS => 2,
599
- :UPLUS => 3,
600
- :LNOT => 4,
601
- :BNOT => 5,
602
- "=" => 6,
603
- "^" => 7,
604
- "*" => 8,
605
- "/" => 9,
606
- "+" => 10,
607
- "-" => 11,
608
- "&&" => 12,
609
- "||" => 13,
610
- ">" => 14,
611
- "<" => 15,
612
- ">=" => 16,
613
- "<=" => 17,
614
- "==" => 18,
615
- "!=" => 19,
616
- :NUMBER => 20,
617
- :IDENT => 21,
618
- :O_IDENT => 22,
619
- :KW_FUNCTION => 23,
620
- :KW_FOR => 24,
621
- :KW_IF => 25,
622
- :KW_ELSE => 26,
623
- :KW_WHILE => 27,
624
- :KW_DO => 28,
625
- :KW_VAR => 29,
626
- :KW_TRUE => 30,
627
- :KW_FALSE => 31,
628
- :STRING => 32,
629
- :KW_RETURN => 33,
630
- :KW_NEW => 34,
631
- :KW_THIS => 35,
632
- :SBRACKET_OPEN => 36,
633
- :SBRACKET_CLOSE => 37,
634
- :CBRACKET_OPEN => 38,
635
- :CBRACKET_CLOSE => 39,
636
- "(" => 40,
637
- ")" => 41,
638
- ";" => 42,
639
- "," => 43,
640
- ":" => 44,
641
- "!" => 45,
642
- "." => 46 }
643
-
644
- racc_nt_base = 47
645
-
646
- racc_use_result_var = true
647
-
648
- Racc_arg = [
649
- racc_action_table,
650
- racc_action_check,
651
- racc_action_default,
652
- racc_action_pointer,
653
- racc_goto_table,
654
- racc_goto_check,
655
- racc_goto_default,
656
- racc_goto_pointer,
657
- racc_nt_base,
658
- racc_reduce_table,
659
- racc_token_table,
660
- racc_shift_n,
661
- racc_reduce_n,
662
- racc_use_result_var ]
663
-
664
- Racc_token_to_s_table = [
665
- "$end",
666
- "error",
667
- "UMINUS",
668
- "UPLUS",
669
- "LNOT",
670
- "BNOT",
671
- "\"=\"",
672
- "\"^\"",
673
- "\"*\"",
674
- "\"/\"",
675
- "\"+\"",
676
- "\"-\"",
677
- "\"&&\"",
678
- "\"||\"",
679
- "\">\"",
680
- "\"<\"",
681
- "\">=\"",
682
- "\"<=\"",
683
- "\"==\"",
684
- "\"!=\"",
685
- "NUMBER",
686
- "IDENT",
687
- "O_IDENT",
688
- "KW_FUNCTION",
689
- "KW_FOR",
690
- "KW_IF",
691
- "KW_ELSE",
692
- "KW_WHILE",
693
- "KW_DO",
694
- "KW_VAR",
695
- "KW_TRUE",
696
- "KW_FALSE",
697
- "STRING",
698
- "KW_RETURN",
699
- "KW_NEW",
700
- "KW_THIS",
701
- "SBRACKET_OPEN",
702
- "SBRACKET_CLOSE",
703
- "CBRACKET_OPEN",
704
- "CBRACKET_CLOSE",
705
- "\"(\"",
706
- "\")\"",
707
- "\";\"",
708
- "\",\"",
709
- "\":\"",
710
- "\"!\"",
711
- "\".\"",
712
- "$start",
713
- "target",
714
- "root_seq",
715
- "fun",
716
- "args",
717
- "root_stmt",
718
- "stmt",
719
- "fun_def",
720
- "ident",
721
- "block",
722
- "arg_def",
723
- "exp",
724
- "ass",
725
- "seq",
726
- "for",
727
- "if",
728
- "while",
729
- "return",
730
- "array",
731
- "array_content",
732
- "hash",
733
- "hash_content",
734
- "hash_element",
735
- "comp",
736
- "objcall",
737
- "const" ]
738
-
739
- Racc_debug_parser = false
740
-
741
- ##### State transition tables end #####
742
-
743
- # reduce 0 omitted
744
-
745
- # reduce 1 omitted
746
-
747
- module_eval(<<'.,.,', 'ecma.y', 34)
748
- def _reduce_2(val, _values, result)
749
- result = nil
750
- result
751
- end
752
- .,.,
753
-
754
- module_eval(<<'.,.,', 'ecma.y', 36)
755
- def _reduce_3(val, _values, result)
756
- result = RVM::Interpreter::FunctionCall.new(val[0][0], [], val[0][1])
757
- result
758
- end
759
- .,.,
760
-
761
- module_eval(<<'.,.,', 'ecma.y', 37)
762
- def _reduce_4(val, _values, result)
763
- result = RVM::Interpreter::FunctionCall.new(val[0][0], val[2], val[0][1])
764
- result
765
- end
766
- .,.,
767
-
768
- # reduce 5 omitted
769
-
770
- # reduce 6 omitted
771
-
772
- module_eval(<<'.,.,', 'ecma.y', 42)
773
- def _reduce_7(val, _values, result)
774
- result = RVM::Interpreter::Sequence.new([result])
775
- result
776
- end
777
- .,.,
778
-
779
- module_eval(<<'.,.,', 'ecma.y', 43)
780
- def _reduce_8(val, _values, result)
781
- result << val[2]
782
- result
783
- end
784
- .,.,
785
-
786
- # reduce 9 omitted
787
-
788
- module_eval(<<'.,.,', 'ecma.y', 47)
789
- def _reduce_10(val, _values, result)
790
- #TODO: THIS
791
- b = val[4]
792
- ident = val[1]
793
- if not b.content.is_a?(RVM::Interpreter::Sequence)
794
- c = b.content
795
- b.content = RVM::Interpreter::Sequence.new()
796
- b.content << c
797
- end
798
- b.content << RVM::Interpreter::Return.new(RVM::Classes[:boolean].new(false))
799
-
800
- result = RVM::Interpreter::FunctionDefinition.new(ident, RVM::Classes::Block.new(b))
801
-
802
- result
803
- end
804
- .,.,
805
-
806
- module_eval(<<'.,.,', 'ecma.y', 60)
807
- def _reduce_11(val, _values, result)
808
- block = val[5]
809
- i = 0
810
- val[3].each do |a|
811
- block.content.unshift RVM::Interpreter::Assignment.new(a, RVM::Interpreter::Parameter.new(RVM::Interpreter.const(:number,i)))
812
- i +=1
813
- end
814
- result = RVM::Interpreter::FunctionDefinition.new(val[1], RVM::Classes::Block.new(block))
815
-
816
- result
817
- end
818
- .,.,
819
-
820
- module_eval(<<'.,.,', 'ecma.y', 69)
821
- def _reduce_12(val, _values, result)
822
- result = [result]
823
- result
824
- end
825
- .,.,
826
-
827
- module_eval(<<'.,.,', 'ecma.y', 70)
828
- def _reduce_13(val, _values, result)
829
- result << val[2]
830
- result
831
- end
832
- .,.,
833
-
834
- module_eval(<<'.,.,', 'ecma.y', 72)
835
- def _reduce_14(val, _values, result)
836
- result = [result]
837
- result
838
- end
839
- .,.,
840
-
841
- module_eval(<<'.,.,', 'ecma.y', 73)
842
- def _reduce_15(val, _values, result)
843
- result << val[2]
844
- result
845
- end
846
- .,.,
847
-
848
- # reduce 16 omitted
849
-
850
- module_eval(<<'.,.,', 'ecma.y', 76)
851
- def _reduce_17(val, _values, result)
852
- result = RVM::Interpreter::Assignment.new(result, val[2], val[1][1])
853
- result
854
- end
855
- .,.,
856
-
857
- module_eval(<<'.,.,', 'ecma.y', 77)
858
- def _reduce_18(val, _values, result)
859
- result = RVM::Interpreter::Declaration.new(val[1], val[3], val[0][1])
860
- result
861
- end
862
- .,.,
863
-
864
- module_eval(<<'.,.,', 'ecma.y', 79)
865
- def _reduce_19(val, _values, result)
866
- result = RVM::Interpreter::Sequence.new([result],result.pos)
867
- result
868
- end
869
- .,.,
870
-
871
- module_eval(<<'.,.,', 'ecma.y', 80)
872
- def _reduce_20(val, _values, result)
873
- result << val[2]
874
- result
875
- end
876
- .,.,
877
-
878
- # reduce 21 omitted
879
-
880
- module_eval(<<'.,.,', 'ecma.y', 83)
881
- def _reduce_22(val, _values, result)
882
- result = RVM::Interpreter::Block.new(val[1], val[0][1])
883
- result
884
- end
885
- .,.,
886
-
887
- # reduce 23 omitted
888
-
889
- # reduce 24 omitted
890
-
891
- # reduce 25 omitted
892
-
893
- # reduce 26 omitted
894
-
895
- # reduce 27 omitted
896
-
897
- # reduce 28 omitted
898
-
899
- module_eval(<<'.,.,', 'ecma.y', 92)
900
- def _reduce_29(val, _values, result)
901
- result = RVM::Interpreter::Return.new(val[1])
902
- result
903
- end
904
- .,.,
905
-
906
- module_eval(<<'.,.,', 'ecma.y', 94)
907
- def _reduce_30(val, _values, result)
908
- result = RVM::Interpreter.const(:list, [])
909
- result
910
- end
911
- .,.,
912
-
913
- module_eval(<<'.,.,', 'ecma.y', 96)
914
- def _reduce_31(val, _values, result)
915
- seq = RVM::Interpreter::Sequence.new()
916
- seq << RVM::Interpreter::Assignment.new(RVM::Interpreter.const(:string,"!array-#{val[1].hash}"), RVM::Interpreter.const(:list, Array.new(val[1].size)))
917
- val[1].size.times do |i|
918
- seq << RVM::Interpreter::FunctionCall.new(:set_at, [RVM::Interpreter::Variable.new(RVM::Interpreter.const(:string,"!array-#{val[1].hash}")), RVM::Interpreter.const(:number,val[1].size - i - 1), val[1][i]])
919
- end
920
- seq << RVM::Interpreter::Variable.new(RVM::Interpreter.const(:string,"!array-#{val[1].hash}"))
921
- result = RVM::Interpreter::Block.new(seq)
922
-
923
- result
924
- end
925
- .,.,
926
-
927
- module_eval(<<'.,.,', 'ecma.y', 105)
928
- def _reduce_32(val, _values, result)
929
- result = [result]
930
- result
931
- end
932
- .,.,
933
-
934
- module_eval(<<'.,.,', 'ecma.y', 106)
935
- def _reduce_33(val, _values, result)
936
- result.unshift val[2]
937
- result
938
- end
939
- .,.,
940
-
941
- module_eval(<<'.,.,', 'ecma.y', 108)
942
- def _reduce_34(val, _values, result)
943
- result = RVM::Interpreter.const(:association, nil)
944
- result
945
- end
946
- .,.,
947
-
948
- module_eval(<<'.,.,', 'ecma.y', 110)
949
- def _reduce_35(val, _values, result)
950
- seq = RVM::Interpreter::Sequence.new()
951
- seq << RVM::Interpreter::Assignment.new(RVM::Interpreter.const(:string, "!hash-#{val[1].hash}"), RVM::Interpreter.const(:association, nil))
952
- val[1].each do |k,v|
953
- seq << RVM::Interpreter::FunctionCall.new(:assoc_set, [RVM::Interpreter::Variable.new(RVM::Interpreter.const(:string, "!hash-#{val[1].hash}")), k, v])
954
- end
955
- seq << RVM::Interpreter::Variable.new(RVM::Interpreter.const(:string, "!hash-#{val[1].hash}"))
956
- result = RVM::Interpreter::Block.new(seq)
957
-
958
- result
959
- end
960
- .,.,
961
-
962
- module_eval(<<'.,.,', 'ecma.y', 119)
963
- def _reduce_36(val, _values, result)
964
- result = [val[0], val[2]]
965
- result
966
- end
967
- .,.,
968
-
969
- module_eval(<<'.,.,', 'ecma.y', 121)
970
- def _reduce_37(val, _values, result)
971
- result = [result]
972
- result
973
- end
974
- .,.,
975
-
976
- module_eval(<<'.,.,', 'ecma.y', 122)
977
- def _reduce_38(val, _values, result)
978
- result.unshift val[2]
979
- result
980
- end
981
- .,.,
982
-
983
- module_eval(<<'.,.,', 'ecma.y', 124)
984
- def _reduce_39(val, _values, result)
985
- result = RVM::Interpreter::FunctionCall.new(:add, [result, val[2]], val[1][1])
986
- result
987
- end
988
- .,.,
989
-
990
- module_eval(<<'.,.,', 'ecma.y', 125)
991
- def _reduce_40(val, _values, result)
992
- result = RVM::Interpreter::FunctionCall.new(:sub, [result, val[2]], val[1][1])
993
- result
994
- end
995
- .,.,
996
-
997
- module_eval(<<'.,.,', 'ecma.y', 126)
998
- def _reduce_41(val, _values, result)
999
- result = RVM::Interpreter::FunctionCall.new(:mul, [result, val[2]], val[1][1])
1000
- result
1001
- end
1002
- .,.,
1003
-
1004
- module_eval(<<'.,.,', 'ecma.y', 127)
1005
- def _reduce_42(val, _values, result)
1006
- result = RVM::Interpreter::FunctionCall.new(:sub, [result, val[2]], val[1][1])
1007
- result
1008
- end
1009
- .,.,
1010
-
1011
- module_eval(<<'.,.,', 'ecma.y', 128)
1012
- def _reduce_43(val, _values, result)
1013
- result = RVM::Interpreter::FunctionCall.new(:power, [result, val[2]], val[1][1])
1014
- result
1015
- end
1016
- .,.,
1017
-
1018
- module_eval(<<'.,.,', 'ecma.y', 129)
1019
- def _reduce_44(val, _values, result)
1020
- result = RVM::Interpreter::FunctionCall.new(:at, [result, val[2]], val[1][1])
1021
- result
1022
- end
1023
- .,.,
1024
-
1025
- module_eval(<<'.,.,', 'ecma.y', 130)
1026
- def _reduce_45(val, _values, result)
1027
- result = RVM::Interpreter::FunctionCall.new(:not, [val[1]], val[0][1])
1028
- result
1029
- end
1030
- .,.,
1031
-
1032
- module_eval(<<'.,.,', 'ecma.y', 131)
1033
- def _reduce_46(val, _values, result)
1034
- result = RVM::Interpreter::FunctionCall.new(:neg, [val[1]], val[0][1])
1035
- result
1036
- end
1037
- .,.,
1038
-
1039
- # reduce 47 omitted
1040
-
1041
- module_eval(<<'.,.,', 'ecma.y', 133)
1042
- def _reduce_48(val, _values, result)
1043
- result = RVM::Interpreter::FunctionCall.new(:and, [result, val[2]])
1044
- result
1045
- end
1046
- .,.,
1047
-
1048
- module_eval(<<'.,.,', 'ecma.y', 134)
1049
- def _reduce_49(val, _values, result)
1050
- result = RVM::Interpreter::FunctionCall.new(:or, [result, val[2]])
1051
- result
1052
- end
1053
- .,.,
1054
-
1055
- # reduce 50 omitted
1056
-
1057
- # reduce 51 omitted
1058
-
1059
- # reduce 52 omitted
1060
-
1061
- module_eval(<<'.,.,', 'ecma.y', 138)
1062
- def _reduce_53(val, _values, result)
1063
- result = RVM::Interpreter::Variable.new(RVM::Interpreter.const(:string,result[0], result[1][1]))
1064
- result
1065
- end
1066
- .,.,
1067
-
1068
- module_eval(<<'.,.,', 'ecma.y', 139)
1069
- def _reduce_54(val, _values, result)
1070
- result = RVM::Interpreter::Variable.new(:self, val[0][1])
1071
- result
1072
- end
1073
- .,.,
1074
-
1075
- module_eval(<<'.,.,', 'ecma.y', 140)
1076
- def _reduce_55(val, _values, result)
1077
- result = val[1]
1078
- result
1079
- end
1080
- .,.,
1081
-
1082
- # reduce 56 omitted
1083
-
1084
- module_eval(<<'.,.,', 'ecma.y', 143)
1085
- def _reduce_57(val, _values, result)
1086
- result = RVM::Interpreter::FunctionCall.new(:lt, [result, val[2]], val[1][1])
1087
- result
1088
- end
1089
- .,.,
1090
-
1091
- module_eval(<<'.,.,', 'ecma.y', 144)
1092
- def _reduce_58(val, _values, result)
1093
- result = RVM::Interpreter::FunctionCall.new(:gt, [result, val[2]], val[1][1])
1094
- result
1095
- end
1096
- .,.,
1097
-
1098
- module_eval(<<'.,.,', 'ecma.y', 145)
1099
- def _reduce_59(val, _values, result)
1100
- result = RVM::Interpreter::FunctionCall.new(:eq, [result, val[2]], val[1][1])
1101
- result
1102
- end
1103
- .,.,
1104
-
1105
- module_eval(<<'.,.,', 'ecma.y', 146)
1106
- def _reduce_60(val, _values, result)
1107
- result = RVM::Interpreter::FunctionCall.new(:neq, [result, val[2]], val[1][1])
1108
- result
1109
- end
1110
- .,.,
1111
-
1112
- module_eval(<<'.,.,', 'ecma.y', 147)
1113
- def _reduce_61(val, _values, result)
1114
- result = RVM::Interpreter::FunctionCall.new(:gte, [result, val[2]], val[1][1])
1115
- result
1116
- end
1117
- .,.,
1118
-
1119
- module_eval(<<'.,.,', 'ecma.y', 148)
1120
- def _reduce_62(val, _values, result)
1121
- result = RVM::Interpreter::FunctionCall.new(:lte, [result, val[2]], val[1][1])
1122
- result
1123
- end
1124
- .,.,
1125
-
1126
- module_eval(<<'.,.,', 'ecma.y', 150)
1127
- def _reduce_63(val, _values, result)
1128
- result = RVM::Interpreter::ObjectContext.new(val[0], RVM::Interpreter::Variable.new(val[2]))
1129
- result
1130
- end
1131
- .,.,
1132
-
1133
- module_eval(<<'.,.,', 'ecma.y', 151)
1134
- def _reduce_64(val, _values, result)
1135
- result = RVM::Interpreter::ObjectContext.new(val[0], RVM::Interpreter::Assignment.new(val[2], val[4]))
1136
- result
1137
- end
1138
- .,.,
1139
-
1140
- module_eval(<<'.,.,', 'ecma.y', 152)
1141
- def _reduce_65(val, _values, result)
1142
- result = RVM::Interpreter::ObjectContext.new(val[0],RVM::Interpreter::FunctionCall.new(val[2][0], val[4], val[2][1]))
1143
- result
1144
- end
1145
- .,.,
1146
-
1147
- module_eval(<<'.,.,', 'ecma.y', 153)
1148
- def _reduce_66(val, _values, result)
1149
- result = RVM::Interpreter::ObjectContext.new(val[0],RVM::Interpreter::FunctionCall.new(val[2][0], [], val[2][1]))
1150
- result
1151
- end
1152
- .,.,
1153
-
1154
- module_eval(<<'.,.,', 'ecma.y', 155)
1155
- def _reduce_67(val, _values, result)
1156
- result = RVM::Interpreter.const(:number, val[0][0], val[0][1])
1157
- result
1158
- end
1159
- .,.,
1160
-
1161
- module_eval(<<'.,.,', 'ecma.y', 156)
1162
- def _reduce_68(val, _values, result)
1163
- result = RVM::Interpreter.const(:string, val[0][0], val[0][1])
1164
- result
1165
- end
1166
- .,.,
1167
-
1168
- # reduce 69 omitted
1169
-
1170
- # reduce 70 omitted
1171
-
1172
- module_eval(<<'.,.,', 'ecma.y', 159)
1173
- def _reduce_71(val, _values, result)
1174
- result = RVM::Interpreter.const(:boolean, true, val[0][1])
1175
- result
1176
- end
1177
- .,.,
1178
-
1179
- module_eval(<<'.,.,', 'ecma.y', 160)
1180
- def _reduce_72(val, _values, result)
1181
- result = RVM::Interpreter.const(:boolean, false, val[0][1])
1182
- result
1183
- end
1184
- .,.,
1185
-
1186
- module_eval(<<'.,.,', 'ecma.y', 162)
1187
- def _reduce_73(val, _values, result)
1188
- result = RVM::Interpreter::Condition.new(val[2], val[4], val[6], val[0][1])
1189
- result
1190
- end
1191
- .,.,
1192
-
1193
- module_eval(<<'.,.,', 'ecma.y', 163)
1194
- def _reduce_74(val, _values, result)
1195
- result = RVM::Interpreter::Condition.new(val[2], val[4], nil, val[0][1])
1196
- result
1197
- end
1198
- .,.,
1199
-
1200
- module_eval(<<'.,.,', 'ecma.y', 166)
1201
- def _reduce_75(val, _values, result)
1202
- init = val[2]
1203
- cond = val[4]
1204
- event = val[6]
1205
- command = val[8]
1206
-
1207
- body = if command.is_a?(RVM::Interpreter::Block)
1208
- command.content << event
1209
- else
1210
- RVM::Interpreter::Sequence.new([command, event])
1211
- end
1212
-
1213
- result = RVM::Interpreter::Block.new(
1214
- RVM::Interpreter::Sequence.new(
1215
- [init,RVM::Interpreter::Loop.new(cond, body, val[0][1])]
1216
- ), val[0][1]
1217
- )
1218
-
1219
- result
1220
- end
1221
- .,.,
1222
-
1223
- module_eval(<<'.,.,', 'ecma.y', 185)
1224
- def _reduce_76(val, _values, result)
1225
- cond = val[2]
1226
- body = val[4]
1227
- result = RVM::Interpreter::Block.new(
1228
- RVM::Interpreter::Loop.new(cond, body, val[0][1]), val[0][1]
1229
- )
1230
-
1231
- result
1232
- end
1233
- .,.,
1234
-
1235
- module_eval(<<'.,.,', 'ecma.y', 192)
1236
- def _reduce_77(val, _values, result)
1237
- cond = val[4]
1238
- block = val[1]
1239
- result = RVM::Interpreter::Block.new(
1240
- RVM::Interpreter::Sequence.new(
1241
- [block,RVM::Interpreter::Loop.new(cond, block, val[2][1])]
1242
- ), val[0][1]
1243
- )
1244
-
1245
- result
1246
- end
1247
- .,.,
1248
-
1249
- module_eval(<<'.,.,', 'ecma.y', 201)
1250
- def _reduce_78(val, _values, result)
1251
- result = RVM::Interpreter.const(:string,result[0], result[1][1])
1252
- result
1253
- end
1254
- .,.,
1255
-
1256
- def _reduce_none(val, _values, result)
1257
- val[0]
1258
9
  end
1259
-
1260
- end # class ECMA
1261
- end # module Languages
1262
- end # module RVM