rVM 0.0.14 → 0.0.17

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 (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