rubex 0.0.1 → 0.1

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 (135) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -0
  3. data/.travis.yml +14 -0
  4. data/CONTRIBUTING.md +101 -0
  5. data/HISTORY.md +3 -0
  6. data/README.md +112 -297
  7. data/REFERENCE.md +753 -0
  8. data/Rakefile +4 -1
  9. data/TUTORIAL.md +234 -0
  10. data/bin/rubex +1 -1
  11. data/docs/_config.yml +1 -0
  12. data/docs/index.html +1 -0
  13. data/examples/c_struct_interface/c_struct_interface.rb +6 -0
  14. data/examples/c_struct_interface/c_struct_interface.rubex +47 -0
  15. data/examples/linked_list/linked_list.rubex +39 -0
  16. data/examples/linked_list/rb_linked_list.rb +8 -0
  17. data/examples/rcsv wrapper/rcsv/README.md +1 -0
  18. data/examples/rcsv wrapper/rcsv/Rakefile +7 -0
  19. data/examples/rcsv wrapper/rcsv/ext/rcsv/extconf.rb +3 -0
  20. data/examples/rcsv wrapper/rcsv/ext/rcsv/rcsv.c +302 -0
  21. data/examples/rcsv wrapper/rcsv/ext/rcsv/rcsv.rubex +124 -0
  22. data/examples/rcsv wrapper/rcsv/lib/rcsv.rb +8 -0
  23. data/examples/rcsv wrapper/rcsv/lib/rcsv.so +0 -0
  24. data/examples/rcsv wrapper/rcsv/lib/rcsv/version.rb +1 -0
  25. data/examples/rcsv wrapper/rcsv/rcsv.gemspec +27 -0
  26. data/examples/rcsv wrapper/rcsv/spec/rcsv.csv +5 -0
  27. data/examples/rcsv wrapper/rcsv/spec/rcsv_spec.rb +17 -0
  28. data/examples/rcsv wrapper/rcsv/spec/spec_helper.rb +6 -0
  29. data/{spec/fixtures/basic_ruby_method/Makefile → examples/rcsv wrapper/rcsv/tmp/x86_64-linux/rcsv/2.3.3/Makefile } +20 -20
  30. data/examples/rcsv wrapper/rcsv/tmp/x86_64-linux/rcsv/2.3.3/rcsv.o +0 -0
  31. data/examples/rcsv wrapper/rcsv/tmp/x86_64-linux/rcsv/2.3.3/rcsv.so +0 -0
  32. data/examples/rcsv wrapper/rcsv/tmp/x86_64-linux/stage/lib/rcsv.so +0 -0
  33. data/lib/rubex.rb +6 -50
  34. data/lib/rubex/ast.rb +1 -3
  35. data/lib/rubex/ast/expression.rb +1257 -8
  36. data/lib/rubex/ast/node.rb +226 -28
  37. data/lib/rubex/ast/statement.rb +1162 -35
  38. data/lib/rubex/ast/top_statement.rb +815 -0
  39. data/lib/rubex/code_writer.rb +103 -26
  40. data/lib/rubex/compiler.rb +72 -0
  41. data/lib/rubex/compiler_config.rb +19 -0
  42. data/lib/rubex/constants.rb +145 -8
  43. data/lib/rubex/data_type.rb +667 -4
  44. data/lib/rubex/error.rb +15 -0
  45. data/lib/rubex/helpers.rb +154 -0
  46. data/lib/rubex/lexer.rex +186 -22
  47. data/lib/rubex/lexer.rex.rb +261 -35
  48. data/lib/rubex/parser.racc +876 -28
  49. data/lib/rubex/parser.racc.rb +2845 -90
  50. data/lib/rubex/rake_task.rb +34 -0
  51. data/lib/rubex/symbol_table/entry.rb +17 -3
  52. data/lib/rubex/symbol_table/scope.rb +298 -25
  53. data/lib/rubex/version.rb +1 -1
  54. data/rubex.gemspec +11 -3
  55. data/spec/basic_ruby_method_spec.rb +15 -21
  56. data/spec/binding_ptr_args_spec.rb +33 -0
  57. data/spec/bitwise_operators_spec.rb +40 -0
  58. data/spec/blocks_spec.rb +35 -0
  59. data/spec/c_bindings_spec.rb +36 -0
  60. data/spec/c_constants_spec.rb +33 -0
  61. data/spec/c_function_ptrs_spec.rb +38 -0
  62. data/spec/c_functions_spec.rb +35 -0
  63. data/spec/c_struct_interface_spec.rb +38 -0
  64. data/spec/call_by_reference_spec.rb +33 -0
  65. data/spec/class_methods_spec.rb +33 -0
  66. data/spec/class_spec.rb +40 -0
  67. data/spec/comments_spec.rb +33 -0
  68. data/spec/default_args_spec.rb +37 -0
  69. data/spec/error_handling_spec.rb +42 -0
  70. data/spec/examples_spec.rb +52 -0
  71. data/spec/expressions_spec.rb +33 -0
  72. data/spec/fixtures/basic_ruby_method/basic_ruby_method.rubex +2 -0
  73. data/spec/fixtures/binding_ptr_args/binding_ptr_args.rubex +30 -0
  74. data/spec/fixtures/bitwise_operators/bitwise_operators.rubex +40 -0
  75. data/spec/fixtures/blocks/blocks.rubex +11 -0
  76. data/spec/fixtures/c_bindings/c_bindings.rubex +58 -0
  77. data/spec/fixtures/c_constants/c_constants.rubex +7 -0
  78. data/spec/fixtures/c_function_ptrs/c_function_ptrs.rubex +52 -0
  79. data/spec/fixtures/c_functions/c_functions.rubex +25 -0
  80. data/spec/fixtures/c_struct_interface/c_struct_interface.rubex +34 -0
  81. data/spec/fixtures/call_by_reference/call_by_reference.rubex +30 -0
  82. data/spec/fixtures/class/class.rubex +20 -0
  83. data/spec/fixtures/class_methods/class_methods.rubex +12 -0
  84. data/spec/fixtures/comments/comments.rubex +9 -0
  85. data/spec/fixtures/default_args/default_args.rubex +11 -0
  86. data/spec/fixtures/error_handling/error_handling.rubex +54 -0
  87. data/spec/fixtures/examples/array_to_hash.rubex +14 -0
  88. data/spec/fixtures/examples/rcsv.csv +5 -0
  89. data/spec/fixtures/examples/rcsv.rubex +329 -0
  90. data/spec/fixtures/expressions/expressions.rubex +10 -0
  91. data/spec/fixtures/if_else/if_else.rubex +77 -0
  92. data/spec/fixtures/implicit_lib_include/implicit_lib_include.rubex +15 -0
  93. data/spec/fixtures/init_ruby_objects_with_literal_syntax/init_ruby_objects_with_literal_syntax.rubex +17 -0
  94. data/spec/fixtures/loops/loops.rubex +33 -0
  95. data/spec/fixtures/recursion/recursion.rubex +9 -0
  96. data/spec/fixtures/ruby_constant_method_calls/ruby_constant_method_calls.rubex +17 -0
  97. data/spec/fixtures/ruby_operators/ruby_operators.rubex +29 -0
  98. data/spec/fixtures/ruby_raise/ruby_raise.rubex +13 -0
  99. data/spec/fixtures/ruby_strings/ruby_strings.rubex +19 -0
  100. data/spec/fixtures/ruby_strings/string_blank_bm.rb +37 -0
  101. data/spec/fixtures/ruby_symbols/ruby_symbols.rubex +12 -0
  102. data/spec/fixtures/ruby_types/ruby_types.rubex +15 -0
  103. data/spec/fixtures/statement_expression/statement_expression.rubex +23 -0
  104. data/spec/fixtures/static_array/static_array.rubex +20 -0
  105. data/spec/fixtures/string_literals/string_literals.rubex +15 -0
  106. data/spec/fixtures/struct/struct.rubex +82 -0
  107. data/spec/fixtures/typecasting/typecasting.rubex +23 -0
  108. data/spec/fixtures/var_declarations/var_declarations.rubex +39 -0
  109. data/spec/if_else_spec.rb +39 -0
  110. data/spec/implicit_lib_include_spec.rb +33 -0
  111. data/spec/init_ruby_objects_with_literal_syntax_spec.rb +39 -0
  112. data/spec/loops_spec.rb +34 -0
  113. data/spec/recursion_spec.rb +35 -0
  114. data/spec/ruby_constant_method_calls_spec.rb +35 -0
  115. data/spec/ruby_operators_spec.rb +40 -0
  116. data/spec/ruby_raise_spec.rb +35 -0
  117. data/spec/ruby_strings_spec.rb +33 -0
  118. data/spec/ruby_symbols_spec.rb +37 -0
  119. data/spec/ruby_types_spec.rb +35 -0
  120. data/spec/spec_helper.rb +54 -1
  121. data/spec/statement_expression_spec.rb +34 -0
  122. data/spec/static_array_spec.rb +33 -0
  123. data/spec/string_literals_spec.rb +34 -0
  124. data/spec/struct_spec.rb +36 -0
  125. data/spec/typecasting_spec.rb +38 -0
  126. data/spec/var_declarions_spec.rb +35 -0
  127. metadata +255 -29
  128. data/lib/rubex/ast/argument_list.rb +0 -20
  129. data/lib/rubex/ast/c_base_type.rb +0 -11
  130. data/lib/rubex/ast/ruby_method_def.rb +0 -84
  131. data/spec/fixtures/basic_ruby_method/basic.rb +0 -3
  132. data/spec/fixtures/basic_ruby_method/basic_ruby_method.c +0 -16
  133. data/spec/fixtures/basic_ruby_method/basic_ruby_method.o +0 -0
  134. data/spec/fixtures/basic_ruby_method/basic_ruby_method.so +0 -0
  135. data/spec/fixtures/basic_ruby_method/extconf.rb +0 -3
@@ -14,70 +14,1030 @@ include Rubex::AST
14
14
  module Rubex
15
15
  class Parser < Racc::Parser
16
16
 
17
- module_eval(<<'...end parser.racc/module_eval...', 'parser.racc', 60)
17
+ module_eval(<<'...end parser.racc/module_eval...', 'parser.racc', 731)
18
+
19
+ attr_reader :lineno, :location, :string
20
+
18
21
  def parse file_name
19
22
  @lexer = Rubex::Lexer.new
23
+ @yydebug = true
24
+ @custom_dtypes = {}
25
+ @prev_token = nil
20
26
  @lexer.parse_file file_name
21
27
  end
22
28
 
29
+ def set_location
30
+ @location = @lexer.location
31
+ end
32
+
33
+ def set_string
34
+ @string = @lexer.ss.string
35
+ end
36
+
37
+ def set_lineno
38
+ @lineno = @lexer.lineno
39
+ end
40
+
23
41
  def next_token
24
- @lexer.next_token
42
+ set_location
43
+ set_string
44
+ set_lineno
45
+
46
+ t = @lexer.next_token
47
+ if !t.nil?
48
+ if t[0] == :tIDENTIFIER
49
+ if @custom_dtypes.has_key?(t[1]) &&
50
+ !(@prev_token[0] == :kSTRUCT || @prev_token[0] == :tDOT)
51
+ t = [:tCUSTOM_DTYPE, t[1]]
52
+ else
53
+ t = check_for_primitive_dtype(t)
54
+ t = check_for_keyword(t)
55
+ end
56
+ end
57
+ end
58
+
59
+ @prev_token = t
60
+ t
61
+ end
62
+
63
+ def check_for_keyword token
64
+ match = token[1]
65
+ if match == "def"
66
+ return [:kDEF, match]
67
+ elsif match == "cfunc"
68
+ return [:kCFUNC, match]
69
+ elsif match == "self"
70
+ return [:kSELF, match]
71
+ elsif match == "do"
72
+ return [:kDO, match]
73
+ elsif match == "end"
74
+ return [:kEND, match]
75
+ elsif match == "return"
76
+ return [:kRETURN, match]
77
+ elsif match == "print"
78
+ return [:kPRINT , match]
79
+ elsif match == "if"
80
+ return [:kIF , match]
81
+ elsif match == "elsif"
82
+ return [:kELSIF , match]
83
+ elsif match == "else"
84
+ return [:kELSE , match]
85
+ elsif match == "then"
86
+ return [:kTHEN , match]
87
+ elsif match == "sizeof"
88
+ return [:kSIZEOF, match]
89
+ elsif match == "raise"
90
+ return [:kRAISE, match]
91
+ elsif match == "break"
92
+ return [:kBREAK, match]
93
+ elsif match == "begin"
94
+ return [:kBEGIN, match]
95
+ elsif match == "ensure"
96
+ return [:kENSURE, match]
97
+ elsif match == "rescue"
98
+ return [:kRESCUE, match]
99
+ end
100
+
101
+ return token
102
+ end
103
+
104
+ def check_for_primitive_dtype token
105
+ match = token[1]
106
+ if match == "char"
107
+ return [:kDTYPE_CHAR, match]
108
+ elsif match == "i8"
109
+ return [:kDTYPE_I8, match]
110
+ elsif match == "i16"
111
+ return [:kDTYPE_I16, match]
112
+ elsif match == "i32"
113
+ return [:kDTYPE_I32, match]
114
+ elsif match == "i64"
115
+ return [:kDTYPE_I64, match]
116
+ elsif match == "u8"
117
+ return [:kDTYPE_UI8, match]
118
+ elsif match == "u16"
119
+ return [:kDTYPE_UI16, match]
120
+ elsif match == "u32"
121
+ return [:kDTYPE_UI32, match]
122
+ elsif match == "u64"
123
+ return [:kDTYPE_UI64, match]
124
+ elsif match == "int"
125
+ return [:kDTYPE_INT, match]
126
+ elsif match == "long"
127
+ return [:kDTYPE_LINT, match]
128
+ elsif match == "f32"
129
+ return [:kDTYPE_F32, match]
130
+ elsif match == "float"
131
+ return [:kDTYPE_F32, match]
132
+ elsif match == "f64"
133
+ return [:kDTYPE_F64, match]
134
+ elsif match == "double"
135
+ return [:kDTYPE_F64, match]
136
+ elsif match == "object"
137
+ return[:kDTYPE_ROBJ, match]
138
+ elsif match == "void"
139
+ return[:kDTYPE_VOID, match]
140
+ elsif match == "size_t"
141
+ return [:kDTYPE_SIZE_T, match]
142
+ elsif match == "str"
143
+ return [:kDTYPE_RB_STR, match]
144
+ elsif match == "arr"
145
+ return [:kDTYPE_RB_ARR, match]
146
+ elsif match == "hsh"
147
+ return [:kDTYPE_RB_HSH, match]
148
+ elsif match == "yield"
149
+ return [:kYIELD, match]
150
+ elsif match == "bool"
151
+ return [:kDTYPE_BOOL, match]
152
+ end
153
+
154
+ token
155
+ end
156
+
157
+ def binary_op val
158
+ Expression::Binary.new val[0], val[1], val[2]
159
+ end
160
+
161
+ def unary_op val
162
+ Expression::Unary.new val[0], val[1]
163
+ end
164
+
165
+ # expr, op_assign, expr => expr = expr op expr
166
+ def op_assign val
167
+ Statement::Assign.new(val[0], binary_op([val[0], val[1][0], val[2]]), location)
168
+ end
169
+
170
+ def variable_decl_nodes val
171
+ variables = val[0]
172
+ type = variables[:dtype]
173
+
174
+ result = variables[:variables].map do |var|
175
+ ident = var[:ident]
176
+ ptr_level = var[:ptr_level]
177
+
178
+ statement =
179
+ if ident.is_a?(Hash) # only if function pointer
180
+ dtype = { dtype: type, ident: ident }
181
+ Statement::CPtrDecl.new(dtype, ident[:name], var[:value], ptr_level,
182
+ location)
183
+ else
184
+ if ptr_level
185
+ Statement::CPtrDecl.new(type, var[:ident], var[:value], ptr_level,
186
+ location)
187
+ elsif ident.is_a?(Expression::ElementRef)
188
+ Statement::CArrayDecl.new(type, var[:ident], var[:value], location)
189
+ else
190
+ Statement::VarDecl.new(type, var[:ident], var[:value], location)
191
+ end
192
+ end
193
+
194
+ statement
195
+ end
196
+
197
+ result
198
+ end
199
+
200
+ def add_dtype_to_lexer dtype
201
+ @custom_dtypes[dtype] = true
25
202
  end
26
203
  ...end parser.racc/module_eval...
27
204
  ##### State transition tables begin ###
28
205
 
29
- racc_action_table = [
30
- 4, 24, 5, 6, 4, 25, 5, 4, -6, 5,
31
- 4, 23, 5, 8, 10, 12, 13, 14, 16, 17,
32
- 21, 22, 26, 27, 21 ]
206
+ clist = [
207
+ '117,118,120,277,65,277,216,121,217,74,143,144,145,19,74,87,97,7,5,147',
208
+ '133,6,128,129,163,130,132,25,214,122,98,164,35,36,37,38,39,40,41,42',
209
+ '43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,156,73,148',
210
+ '71,136,71,296,66,210,106,98,5,146,149,6,29,105,157,374,367,373,30,217',
211
+ '288,152,330,203,204,203,204,155,94,142,162,158,216,117,118,120,159,139',
212
+ '140,141,121,203,204,143,144,145,19,95,87,203,204,31,147,133,219,128',
213
+ '129,163,130,132,5,33,122,6,164,35,36,37,38,39,40,41,42,43,44,45,46,47',
214
+ '48,49,50,51,52,53,54,55,56,57,58,59,60,61,156,94,148,22,136,5,203,204',
215
+ '6,176,210,181,146,149,253,183,69,157,19,254,95,18,23,98,152,71,379,394',
216
+ '401,98,155,209,142,162,158,17,117,118,120,159,139,140,141,121,98,98',
217
+ '143,144,145,19,362,87,183,75,5,147,133,6,128,129,163,130,132,203,204',
218
+ '122,98,164,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53',
219
+ '54,55,56,57,58,59,60,61,156,415,148,22,136,5,71,181,6,340,79,183,146',
220
+ '149,339,98,350,157,19,203,204,349,23,350,152,98,350,216,349,217,155',
221
+ '349,142,162,158,17,117,118,120,159,139,140,141,121,88,366,143,144,145',
222
+ '19,349,87,203,204,5,147,133,6,128,129,163,130,132,5,93,122,6,164,35',
223
+ '36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58',
224
+ '59,60,61,156,96,148,22,136,66,227,228,229,230,231,232,146,149,203,204',
225
+ '5,157,19,6,5,69,23,6,152,234,235,107,5,169,155,6,142,162,158,17,117',
226
+ '118,120,159,139,140,141,121,203,204,143,144,145,19,5,87,71,6,369,147',
227
+ '133,368,128,129,163,130,132,5,177,122,6,164,35,36,37,38,39,40,41,42',
228
+ '43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,156,178,148',
229
+ '180,136,227,228,229,230,231,232,5,146,149,6,203,204,157,227,228,229',
230
+ '230,231,232,152,229,230,231,232,185,155,188,142,162,158,196,117,118',
231
+ '120,159,139,140,141,121,203,204,143,144,145,19,5,87,196,6,196,147,133',
232
+ '208,128,129,163,130,132,203,204,122,218,164,35,36,37,38,39,40,41,42',
233
+ '43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,156,71,148',
234
+ '71,136,229,230,231,232,203,204,252,146,149,71,371,255,157,385,386,284',
235
+ '285,286,287,152,203,204,203,204,257,155,71,142,162,158,263,117,118,120',
236
+ '159,139,140,141,121,203,204,143,144,145,19,169,87,385,386,169,147,133',
237
+ '217,128,129,163,130,132,210,216,122,279,164,35,36,37,38,39,40,41,42',
238
+ '43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,156,294,148',
239
+ '299,136,300,71,332,231,71,257,346,146,149,188,353,354,157,355,203,362',
240
+ '231,231,231,152,231,210,377,381,387,155,390,142,162,158,391,117,118',
241
+ '120,159,139,140,141,121,395,300,143,144,145,19,397,87,71,400,98,147',
242
+ '133,169,128,129,163,130,132,404,410,122,210,164,35,36,37,38,39,40,41',
243
+ '42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,156,420',
244
+ '148,169,136,,,,,,,,146,149,,,,157,,,,,,,152,,,,,,155,,142,162,158,,117',
245
+ '118,120,159,139,140,141,121,,,143,144,145,19,,87,,,,147,133,,128,129',
246
+ '163,130,132,,,122,,164,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49',
247
+ '50,51,52,53,54,55,56,57,58,59,60,61,156,,148,,136,5,,,6,,,,146,149,',
248
+ ',,157,,,,,,,152,,,,,,155,,142,162,158,,117,118,120,159,139,140,141,121',
249
+ ',,143,144,145,19,,87,,,,147,133,,128,129,163,130,132,,,122,,164,35,36',
250
+ '37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59',
251
+ '60,61,156,,148,,136,5,,,6,,,,146,149,,,,157,,,,,,,152,,,,,,155,,142',
252
+ '162,158,,117,118,120,159,139,140,141,121,,,143,144,145,19,,87,,,,147',
253
+ '133,,128,129,163,130,132,,,122,,164,35,36,37,38,39,40,41,42,43,44,45',
254
+ '46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,156,,148,,136,,,,,,',
255
+ ',146,149,,,,157,,,,,,,152,,,,,,155,,142,162,158,,117,118,120,159,139',
256
+ '140,141,121,,,143,144,145,19,,87,,,,147,133,,128,129,163,130,132,,,122',
257
+ ',164,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55',
258
+ '56,57,58,59,60,61,156,,148,,136,5,,,6,,,,146,149,143,144,145,157,,,',
259
+ ',,147,152,,,,163,,155,,142,162,158,164,,,,159,139,140,141,,,,,,,,227',
260
+ '228,229,230,231,232,,143,144,145,,,22,156,,148,147,193,233,234,235,163',
261
+ ',,,146,149,19,164,,157,23,,,,,,152,,,,,,155,17,142,162,158,,,,,159,139',
262
+ '140,141,156,,148,,193,143,144,145,,,,,146,149,147,,,157,,163,,,5,,152',
263
+ '6,164,,,,155,,142,162,158,,,,,159,139,140,141,,,,22,,143,144,145,,,22',
264
+ '199,,148,147,193,,,19,163,,18,23,146,149,19,164,,157,23,,,,,,17,,,,',
265
+ ',,17,142,162,158,,,,,159,139,140,141,156,,148,,193,143,144,145,,,,,146',
266
+ '149,147,5,,157,6,163,,,5,,152,6,164,,,,155,,142,162,158,,,,,159,139',
267
+ '140,141,,,,22,378,143,144,145,,,,156,,148,147,193,,,19,163,,,23,146',
268
+ '149,,164,,157,227,228,229,230,231,232,17,,,,,,155,,142,162,158,,233',
269
+ '234,235,159,139,140,141,156,,148,,193,143,144,145,,,,,146,149,147,5',
270
+ ',157,6,163,,,,,152,,164,,,,155,,142,162,158,,,,,159,139,140,141,,,,',
271
+ ',143,144,145,,,,156,,148,147,193,,,,163,,,,146,149,,164,,157,,,,,,,152',
272
+ ',,,,,155,,142,162,158,,,,,159,139,140,141,249,,148,,193,143,144,145',
273
+ ',,,,146,149,147,,,157,,163,,,,,,,164,,,,,,142,162,158,,,,,159,139,140',
274
+ '141,,,,,,143,144,145,,,,249,,148,147,193,,,,163,,,,146,149,,164,,157',
275
+ ',,,,,,,,,,,,,,142,162,158,,,,,159,139,140,141,249,,148,,193,143,144',
276
+ '145,,,,,146,149,147,,,157,,163,,,,,,,164,,,,,,142,162,158,,,,,159,139',
277
+ '140,141,,,,,,143,144,145,,,,156,,148,147,193,,,,163,,,,146,149,,164',
278
+ ',157,,,,,,,152,,,,,,155,,142,162,158,,,,,159,139,140,141,156,,148,,193',
279
+ '143,144,145,,,,,146,149,147,,,157,,163,,,,,152,,164,,,,155,,142,162',
280
+ '158,,,,,159,139,140,141,,,,,,143,144,145,,,,249,,148,147,193,,,,163',
281
+ ',,,146,149,,164,,157,,,,,,,,,,,,,,,142,162,158,,,,,159,139,140,141,156',
282
+ ',148,,193,143,144,145,,,,,146,149,147,,,157,,163,,,,,152,,164,,,,155',
283
+ ',142,162,158,,,,,159,139,140,141,,,,,,143,144,145,,,,156,,148,147,193',
284
+ ',,,163,,,,146,149,,164,,157,,,,,,,152,,,,,,155,,142,162,158,,,,,159',
285
+ '139,140,141,156,,148,,193,143,144,145,,,,,146,149,147,,,157,,163,,,',
286
+ ',152,,164,,,,155,,142,162,158,,,,,159,139,140,141,,,,,,143,144,145,',
287
+ ',,156,,148,147,193,,,,163,,,,146,149,,164,,157,,,,,,,152,,,,,,155,,142',
288
+ '162,158,,,,,159,139,140,141,156,,148,,193,143,144,145,,,,,146,149,147',
289
+ ',,157,,163,,,,,152,,164,,,,155,,142,162,158,,,,,159,139,140,141,,,,',
290
+ ',143,144,145,,,,156,,148,147,193,,,,163,,,,146,149,,164,,157,,,,,,,152',
291
+ ',,,,,155,,142,162,158,,,,,159,139,140,141,156,,148,,193,143,144,145',
292
+ ',,,,146,149,147,,,157,,163,,,,,152,,164,,,,155,,142,162,158,,,,,159',
293
+ '139,140,141,,,,,,143,144,145,,,,156,,148,147,193,,,,163,,,,146,149,',
294
+ '164,,157,,,,,,,152,,,,,,155,,142,162,158,,,,,159,139,140,141,156,,148',
295
+ ',193,143,144,145,,,,,146,149,147,,,157,,163,,,,,152,,164,,,,155,,142',
296
+ '162,158,,,,,159,139,140,141,,,,,,143,144,145,143,144,145,156,,148,147',
297
+ '193,,147,,163,,,163,146,149,,164,,157,164,,,,,,152,,,,,,155,,142,162',
298
+ '158,,,,,159,139,140,141,156,,148,,193,148,,193,,,,,146,149,,146,149',
299
+ '157,,,,,,,152,,,,,,155,,142,162,158,142,162,,,159,139,140,141,139,140',
300
+ '141,143,144,145,,,,,,,147,,,,,163,,,,143,144,145,164,,,,,,147,,,,,163',
301
+ ',,,,,,164,331,,,,,,,,,249,,148,,193,,227,228,229,230,231,232,146,149',
302
+ ',,,157,249,,148,,193,,233,234,235,236,237,,146,149,142,162,158,157,',
303
+ ',,159,139,140,141,,,,,143,144,145,142,162,158,,,,147,159,139,140,141',
304
+ '163,,,,143,144,145,164,,,,,,147,,,,,163,,,,,,,164,,,,,,,,,,249,,148',
305
+ ',193,227,228,229,230,231,232,,146,149,,,,157,249,,148,,193,233,234,235',
306
+ '236,237,,,146,149,142,162,158,157,,,,159,139,140,141,,,,,143,144,145',
307
+ '142,162,158,,,,147,159,139,140,141,163,,,,143,144,145,164,,,,,,147,',
308
+ ',,,163,,,,,,,164,,,,,,,,,,249,,148,,193,227,228,229,230,231,232,,146',
309
+ '149,,,,157,249,,148,,193,233,234,235,236,237,,,146,149,142,162,158,157',
310
+ ',,,159,139,140,141,,,,,143,144,145,142,162,158,,,,147,159,139,140,141',
311
+ '163,,,,143,144,145,164,,,,,,147,,,,,163,,,,,,,164,,,,,,,,,,249,,148',
312
+ ',193,227,228,229,230,231,232,,146,149,,,,157,249,,148,,193,233,234,235',
313
+ '236,237,,,146,149,142,162,158,157,,,,159,139,140,141,,,,,143,144,145',
314
+ '142,162,158,,,,147,159,139,140,141,163,,,,143,144,145,164,,,,,,147,',
315
+ ',,,163,,,,,,,164,,,,,,,,,,249,,148,,193,227,228,229,230,231,232,,146',
316
+ '149,,,,157,249,,148,,193,233,234,235,236,237,,,146,149,142,162,158,157',
317
+ ',,,159,139,140,141,,,,,143,144,145,142,162,158,,,,147,159,139,140,141',
318
+ '163,,,,143,144,145,164,,,,,,147,,,,,163,,,,,,,164,,,,,,,,,,249,,148',
319
+ ',193,227,228,229,230,231,232,,146,149,,,,157,249,,148,,193,233,234,235',
320
+ '236,237,,,146,149,142,162,158,157,,,,159,139,140,141,,,,,143,144,145',
321
+ '142,162,158,,,,147,159,139,140,141,163,,,,143,144,145,164,,,,,,147,',
322
+ ',,,163,,,,,,,164,,,,,,,,,,249,,148,,193,227,228,229,230,231,232,,146',
323
+ '149,,,,157,249,,148,,193,233,234,235,236,237,,,146,149,142,162,158,157',
324
+ ',,,159,139,140,141,,,,,143,144,145,142,162,158,,,,147,159,139,140,141',
325
+ '163,,,,143,144,145,164,,,,,,147,,,,,163,,,,,,,164,,,,,,,,,,249,,148',
326
+ ',193,227,228,229,230,231,232,,146,149,,,,157,249,,148,,193,233,234,235',
327
+ '236,237,,,146,149,142,162,158,157,,,,159,139,140,141,,,,,143,144,145',
328
+ '142,162,158,,,,147,159,139,140,141,163,,,,143,144,145,164,,,,,,147,',
329
+ ',,,163,,143,144,145,,,164,,,,147,,,,,163,249,,148,,193,,164,,,,,,146',
330
+ '149,,,,157,249,,148,,193,,,,,,,,146,149,142,162,158,157,148,,193,159',
331
+ '139,140,141,,,,146,149,,,142,162,158,,,,,159,139,140,141,,,143,144,145',
332
+ '142,162,,,,,147,,139,140,141,163,227,228,229,230,231,232,164,,284,285',
333
+ '286,287,,,,,,,233,234,235,236,237,,,,,,143,144,145,,,,156,,148,147,193',
334
+ ',,,163,,,,146,149,,164,,157,,,,,,,152,,,,,,155,,142,162,158,,,,,159',
335
+ '139,140,141,156,,148,,193,143,144,145,,,,,146,149,147,,,157,,163,,,',
336
+ ',152,,164,,,,155,,142,162,158,,,,,159,139,140,141,,,,,,143,144,145,',
337
+ ',,156,,148,147,193,,,,163,,,,146,149,,164,,157,,,,,,,152,,,,,,155,,142',
338
+ '162,158,,,,,159,139,140,141,,,148,,193,143,144,145,,,,,146,149,147,',
339
+ ',,,163,,,,,,,164,,,,,,142,162,,,,,,,139,140,141,,,,,,143,144,145,,,',
340
+ '156,,148,147,193,,,,163,,,,146,149,,164,,157,,,,,,,152,,,,,,155,,142',
341
+ '162,158,,,,,159,139,140,141,249,,148,,193,143,144,145,,,,,146,149,147',
342
+ ',,157,,163,,,143,144,145,,164,,,,,147,142,162,158,,163,,,159,139,140',
343
+ '141,164,,,,,,,,,,,249,,148,,193,227,228,229,230,231,232,,146,149,,,',
344
+ '157,,148,,193,,233,234,235,236,237,,146,149,174,142,162,158,,,,,159',
345
+ '139,140,141,,,19,,87,,142,162,,,,,,,139,140,141,,,,,35,36,37,38,39,40',
346
+ '41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,19,,87',
347
+ ',,5,,,6,,,,,,,,,,,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51',
348
+ '52,53,54,55,56,57,58,59,60,61,268,,,,,,81,,,,,,,,,,,,,35,36,37,38,39',
349
+ '40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,331',
350
+ ',,,,,,,,,,,,,,227,228,229,230,231,232,,238,240,241,242,243,,,,,331,',
351
+ '233,234,235,236,237,,,,,,,,239,227,228,229,230,231,232,,,284,285,286',
352
+ '287,,,,,,,233,234,235,236,237,35,36,37,38,39,40,41,42,43,44,45,46,47',
353
+ '48,49,50,51,52,53,54,55,56,57,58,59,60,61,,,,,,5,,,6,35,36,37,38,39',
354
+ '40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,,-29',
355
+ ',,,,-29,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54',
356
+ '55,56,57,58,59,60,61,,,,,168,35,36,37,38,39,40,41,42,43,44,45,46,47',
357
+ '48,49,50,51,52,53,54,55,56,57,58,59,60,61,,,,,168,227,228,229,230,231',
358
+ '232,,238,240,241,242,243,,,,,,,233,234,235,236,237,,,,,,,,239,35,36',
359
+ '37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59',
360
+ '60,61,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55',
361
+ '56,57,58,59,60,61,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51',
362
+ '52,53,54,55,56,57,58,59,60,61,35,36,37,38,39,40,41,42,43,44,45,46,47',
363
+ '48,49,50,51,52,53,54,55,56,57,58,59,60,61,35,36,37,38,39,40,41,42,43',
364
+ '44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,35,36,37,38,39',
365
+ '40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61' ]
366
+ racc_action_table = arr = ::Array.new(4122, nil)
367
+ idx = 0
368
+ clist.each do |str|
369
+ str.split(',', -1).each do |i|
370
+ arr[idx] = i.to_i unless i.empty?
371
+ idx += 1
372
+ end
373
+ end
33
374
 
34
- racc_action_check = [
35
- 2, 19, 2, 1, 0, 19, 0, 15, 2, 15,
36
- 18, 18, 18, 3, 4, 5, 6, 7, 9, 12,
37
- 16, 17, 21, 24, 25 ]
375
+ clist = [
376
+ '92,92,92,197,29,405,136,92,136,32,92,92,92,92,210,92,76,1,0,92,92,0',
377
+ '92,92,92,92,92,7,136,92,76,92,92,92,92,92,92,92,92,92,92,92,92,92,92',
378
+ '92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,32,92,197,92,405,210,29',
379
+ '311,87,312,3,92,92,3,17,87,92,312,303,311,18,296,202,92,245,197,197',
380
+ '405,405,92,296,92,92,92,138,187,187,187,92,92,92,92,187,303,303,187',
381
+ '187,187,187,296,187,245,245,19,187,187,138,187,187,187,187,187,8,22',
382
+ '187,8,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187',
383
+ '187,187,187,187,187,187,187,187,187,187,187,187,187,73,187,2,187,187',
384
+ '202,202,187,103,134,112,187,187,165,112,30,187,2,165,73,2,2,103,187',
385
+ '31,345,360,375,112,187,134,187,187,187,2,207,207,207,187,187,187,187',
386
+ '207,345,375,207,207,207,207,360,207,270,33,11,207,207,11,207,207,207',
387
+ '207,207,127,127,207,270,207,207,207,207,207,207,207,207,207,207,207',
388
+ '207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207',
389
+ '207,402,207,77,207,207,64,341,207,259,66,341,207,207,259,402,274,207',
390
+ '77,190,190,274,77,291,207,341,292,193,291,193,207,292,207,207,207,77',
391
+ '262,262,262,207,207,207,207,262,69,302,262,262,262,262,302,262,273,273',
392
+ '80,262,262,80,262,262,262,262,262,89,72,262,89,262,262,262,262,262,262',
393
+ '262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262',
394
+ '262,262,262,262,262,262,74,262,173,262,78,319,319,319,319,319,319,262',
395
+ '262,275,275,99,262,173,99,114,81,173,114,262,319,319,88,132,97,262,132',
396
+ '262,262,262,173,276,276,276,262,262,262,262,276,295,295,276,276,276',
397
+ '276,264,276,100,264,307,276,276,307,276,276,276,276,276,394,104,276',
398
+ '394,276,276,276,276,276,276,276,276,276,276,276,276,276,276,276,276',
399
+ '276,276,276,276,276,276,276,276,276,276,276,276,276,108,276,110,276',
400
+ '320,320,320,320,320,320,395,276,276,395,301,301,276,321,321,321,321',
401
+ '321,321,276,313,313,313,313,113,276,115,276,276,276,118,279,279,279',
402
+ '276,276,276,276,279,304,304,279,279,279,279,410,279,128,410,130,279',
403
+ '279,133,279,279,279,279,279,305,305,279,137,279,279,279,279,279,279',
404
+ '279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279',
405
+ '279,279,279,279,279,279,148,279,149,279,314,314,314,314,306,306,162',
406
+ '279,279,309,309,167,279,351,351,354,354,355,355,279,365,365,382,382',
407
+ '168,279,170,279,279,279,172,288,288,288,279,279,279,279,288,396,396',
408
+ '288,288,288,288,176,288,421,421,182,288,288,183,288,288,288,288,288',
409
+ '191,194,288,198,288,288,288,288,288,288,288,288,288,288,288,288,288',
410
+ '288,288,288,288,288,288,288,288,288,288,288,288,288,288,288,288,208',
411
+ '288,211,288,212,222,247,248,253,255,268,288,288,272,280,282,288,283',
412
+ '290,293,315,316,317,288,318,338,343,347,352,288,356,288,288,288,359',
413
+ '386,386,386,288,288,288,288,386,362,364,386,386,386,386,370,386,371',
414
+ '373,380,386,386,381,386,386,386,386,386,383,392,386,399,386,386,386',
415
+ '386,386,386,386,386,386,386,386,386,386,386,386,386,386,386,386,386',
416
+ '386,386,386,386,386,386,386,386,386,414,386,420,386,,,,,,,,386,386,',
417
+ ',,386,,,,,,,386,,,,,,386,,386,386,386,,411,411,411,386,386,386,386,411',
418
+ ',,411,411,411,411,,411,,,,411,411,,411,411,411,411,411,,,411,,411,411',
419
+ '411,411,411,411,411,411,411,411,411,411,411,411,411,411,411,411,411',
420
+ '411,411,411,411,411,411,411,411,411,411,,411,,411,411,,,411,,,,411,411',
421
+ ',,,411,,,,,,,411,,,,,,411,,411,411,411,,412,412,412,411,411,411,411',
422
+ '412,,,412,412,412,412,,412,,,,412,412,,412,412,412,412,412,,,412,,412',
423
+ '412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412',
424
+ '412,412,412,412,412,412,412,412,412,412,412,,412,,412,412,,,412,,,,412',
425
+ '412,,,,412,,,,,,,412,,,,,,412,,412,412,412,,416,416,416,412,412,412',
426
+ '412,416,,,416,416,416,416,,416,,,,416,416,,416,416,416,416,416,,,416',
427
+ ',416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416',
428
+ '416,416,416,416,416,416,416,416,416,416,416,416,,416,,416,,,,,,,,416',
429
+ '416,,,,416,,,,,,,416,,,,,,416,,416,416,416,,417,417,417,416,416,416',
430
+ '416,417,,,417,417,417,417,,417,,,,417,417,,417,417,417,417,417,,,417',
431
+ ',417,417,417,417,417,417,417,417,417,417,417,417,417,417,417,417,417',
432
+ '417,417,417,417,417,417,417,417,417,417,417,417,,417,,417,417,,,417',
433
+ ',,,417,417,117,117,117,417,,,,,,117,417,,,,117,,417,,417,417,417,117',
434
+ ',,,417,417,417,417,,,,,,,,322,322,322,322,322,322,,120,120,120,,,28',
435
+ '117,,117,120,117,322,322,322,120,,,,117,117,28,120,,117,28,,,,,,117',
436
+ ',,,,,117,28,117,117,117,,,,,117,117,117,117,120,,120,,120,121,121,121',
437
+ ',,,,120,120,121,,,120,,121,,,28,,120,28,121,,,,120,,120,120,120,,,,',
438
+ '120,120,120,120,,,,27,,122,122,122,,,171,121,,121,122,121,,,27,122,',
439
+ '27,27,121,121,171,122,,121,171,,,,,,27,,,,,,,171,121,121,121,,,,,121',
440
+ '121,121,121,122,,122,,122,151,151,151,,,,,122,122,151,27,,122,27,151',
441
+ ',,171,,122,171,151,,,,122,,122,122,122,,,,,122,122,122,122,,,,344,344',
442
+ '155,155,155,,,,151,,151,155,151,,,344,155,,,344,151,151,,155,,151,323',
443
+ '323,323,323,323,323,344,,,,,,151,,151,151,151,,323,323,323,151,151,151',
444
+ '151,155,,155,,155,156,156,156,,,,,155,155,156,344,,155,344,156,,,,,155',
445
+ ',156,,,,155,,155,155,155,,,,,155,155,155,155,,,,,,157,157,157,,,,156',
446
+ ',156,157,156,,,,157,,,,156,156,,157,,156,,,,,,,156,,,,,,156,,156,156',
447
+ '156,,,,,156,156,156,156,157,,157,,157,158,158,158,,,,,157,157,158,,',
448
+ '157,,158,,,,,,,158,,,,,,157,157,157,,,,,157,157,157,157,,,,,,159,159',
449
+ '159,,,,158,,158,159,158,,,,159,,,,158,158,,159,,158,,,,,,,,,,,,,,,158',
450
+ '158,158,,,,,158,158,158,158,159,,159,,159,188,188,188,,,,,159,159,188',
451
+ ',,159,,188,,,,,,,188,,,,,,159,159,159,,,,,159,159,159,159,,,,,,195,195',
452
+ '195,,,,188,,188,195,188,,,,195,,,,188,188,,195,,188,,,,,,,188,,,,,,188',
453
+ ',188,188,188,,,,,188,188,188,188,195,,195,,195,199,199,199,,,,,195,195',
454
+ '199,,,195,,199,,,,,195,,199,,,,195,,195,195,195,,,,,195,195,195,195',
455
+ ',,,,,203,203,203,,,,199,,199,203,199,,,,203,,,,199,199,,203,,199,,,',
456
+ ',,,,,,,,,,,199,199,199,,,,,199,199,199,199,203,,203,,203,204,204,204',
457
+ ',,,,203,203,204,,,203,,204,,,,,203,,204,,,,203,,203,203,203,,,,,203',
458
+ '203,203,203,,,,,,205,205,205,,,,204,,204,205,204,,,,205,,,,204,204,',
459
+ '205,,204,,,,,,,204,,,,,,204,,204,204,204,,,,,204,204,204,204,205,,205',
460
+ ',205,206,206,206,,,,,205,205,206,,,205,,206,,,,,205,,206,,,,205,,205',
461
+ '205,205,,,,,205,205,205,205,,,,,,209,209,209,,,,206,,206,209,206,,,',
462
+ '209,,,,206,206,,209,,206,,,,,,,206,,,,,,206,,206,206,206,,,,,206,206',
463
+ '206,206,209,,209,,209,214,214,214,,,,,209,209,214,,,209,,214,,,,,209',
464
+ ',214,,,,209,,209,209,209,,,,,209,209,209,209,,,,,,216,216,216,,,,214',
465
+ ',214,216,214,,,,216,,,,214,214,,216,,214,,,,,,,214,,,,,,214,,214,214',
466
+ '214,,,,,214,214,214,214,216,,216,,216,217,217,217,,,,,216,216,217,,',
467
+ '216,,217,,,,,216,,217,,,,216,,216,216,216,,,,,216,216,216,216,,,,,,218',
468
+ '218,218,,,,217,,217,218,217,,,,218,,,,217,217,,218,,217,,,,,,,217,,',
469
+ ',,,217,,217,217,217,,,,,217,217,217,217,218,,218,,218,219,219,219,,',
470
+ ',,218,218,219,,,218,,219,,,,,218,,219,,,,218,,218,218,218,,,,,218,218',
471
+ '218,218,,,,,,221,221,221,224,224,224,219,,219,221,219,,224,,221,,,224',
472
+ '219,219,,221,,219,224,,,,,,219,,,,,,219,,219,219,219,,,,,219,219,219',
473
+ '219,221,,221,,221,224,,224,,,,,221,221,,224,224,221,,,,,,,221,,,,,,221',
474
+ ',221,221,221,224,224,,,221,221,221,221,224,224,224,227,227,227,,,,,',
475
+ ',227,,,,,227,,,,228,228,228,227,,,,,,228,,,,,228,,,,,,,228,333,,,,,',
476
+ ',,,227,,227,,227,,333,333,333,333,333,333,227,227,,,,227,228,,228,,228',
477
+ ',333,333,333,333,333,,228,228,227,227,227,228,,,,227,227,227,227,,,',
478
+ ',229,229,229,228,228,228,,,,229,228,228,228,228,229,,,,230,230,230,229',
479
+ ',,,,,230,,,,,230,,,,,,,230,,,,,,,,,,229,,229,,229,324,324,324,324,324',
480
+ '324,,229,229,,,,229,230,,230,,230,324,324,324,324,324,,,230,230,229',
481
+ '229,229,230,,,,229,229,229,229,,,,,231,231,231,230,230,230,,,,231,230',
482
+ '230,230,230,231,,,,232,232,232,231,,,,,,232,,,,,232,,,,,,,232,,,,,,',
483
+ ',,,231,,231,,231,325,325,325,325,325,325,,231,231,,,,231,232,,232,,232',
484
+ '325,325,325,325,325,,,232,232,231,231,231,232,,,,231,231,231,231,,,',
485
+ ',233,233,233,232,232,232,,,,233,232,232,232,232,233,,,,234,234,234,233',
486
+ ',,,,,234,,,,,234,,,,,,,234,,,,,,,,,,233,,233,,233,326,326,326,326,326',
487
+ '326,,233,233,,,,233,234,,234,,234,326,326,326,326,326,,,234,234,233',
488
+ '233,233,234,,,,233,233,233,233,,,,,235,235,235,234,234,234,,,,235,234',
489
+ '234,234,234,235,,,,236,236,236,235,,,,,,236,,,,,236,,,,,,,236,,,,,,',
490
+ ',,,235,,235,,235,327,327,327,327,327,327,,235,235,,,,235,236,,236,,236',
491
+ '327,327,327,327,327,,,236,236,235,235,235,236,,,,235,235,235,235,,,',
492
+ ',237,237,237,236,236,236,,,,237,236,236,236,236,237,,,,238,238,238,237',
493
+ ',,,,,238,,,,,238,,,,,,,238,,,,,,,,,,237,,237,,237,328,328,328,328,328',
494
+ '328,,237,237,,,,237,238,,238,,238,328,328,328,328,328,,,238,238,237',
495
+ '237,237,238,,,,237,237,237,237,,,,,239,239,239,238,238,238,,,,239,238',
496
+ '238,238,238,239,,,,240,240,240,239,,,,,,240,,,,,240,,,,,,,240,,,,,,',
497
+ ',,,239,,239,,239,329,329,329,329,329,329,,239,239,,,,239,240,,240,,240',
498
+ '329,329,329,329,329,,,240,240,239,239,239,240,,,,239,239,239,239,,,',
499
+ ',241,241,241,240,240,240,,,,241,240,240,240,240,241,,,,242,242,242,241',
500
+ ',,,,,242,,,,,242,,,,,,,242,,,,,,,,,,241,,241,,241,407,407,407,407,407',
501
+ '407,,241,241,,,,241,242,,242,,242,407,407,407,407,407,,,242,242,241',
502
+ '241,241,242,,,,241,241,241,241,,,,,243,243,243,242,242,242,,,,243,242',
503
+ '242,242,242,243,,,,249,249,249,243,,,,,,249,,,,,249,,257,257,257,,,249',
504
+ ',,,257,,,,,257,243,,243,,243,,257,,,,,,243,243,,,,243,249,,249,,249',
505
+ ',,,,,,,249,249,243,243,243,249,257,,257,243,243,243,243,,,,257,257,',
506
+ ',249,249,249,,,,,249,249,249,249,,,300,300,300,257,257,,,,,300,,257',
507
+ '257,257,300,201,201,201,201,201,201,300,,201,201,201,201,,,,,,,201,201',
508
+ '201,201,201,,,,,,349,349,349,,,,300,,300,349,300,,,,349,,,,300,300,',
509
+ '349,,300,,,,,,,300,,,,,,300,,300,300,300,,,,,300,300,300,300,349,,349',
510
+ ',349,368,368,368,,,,,349,349,368,,,349,,368,,,,,349,,368,,,,349,,349',
511
+ '349,349,,,,,349,349,349,349,,,,,,372,372,372,,,,368,,368,372,368,,,',
512
+ '372,,,,368,368,,372,,368,,,,,,,368,,,,,,368,,368,368,368,,,,,368,368',
513
+ '368,368,,,372,,372,385,385,385,,,,,372,372,385,,,,,385,,,,,,,385,,,',
514
+ ',,372,372,,,,,,,372,372,372,,,,,,388,388,388,,,,385,,385,388,385,,,',
515
+ '388,,,,385,385,,388,,385,,,,,,,385,,,,,,385,,385,385,385,,,,,385,385',
516
+ '385,385,388,,388,,388,389,389,389,,,,,388,388,389,,,388,,389,,,398,398',
517
+ '398,,389,,,,,398,388,388,388,,398,,,388,388,388,388,398,,,,,,,,,,,389',
518
+ ',389,,389,408,408,408,408,408,408,,389,389,,,,389,,398,,398,,408,408',
519
+ '408,408,408,,398,398,101,389,389,389,,,,,389,389,389,389,,,101,,101',
520
+ ',398,398,,,,,,,398,398,398,,,,,101,101,101,101,101,101,101,101,101,101',
521
+ '101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101',
522
+ '67,,67,,,101,,,101,,,,,,,,,,,67,67,67,67,67,67,67,67,67,67,67,67,67',
523
+ '67,67,67,67,67,67,67,67,67,67,67,67,67,67,177,,,,,,67,,,,,,,,,,,,,177',
524
+ '177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177',
525
+ '177,177,177,177,177,177,177,177,177,246,,,,,,,,,,,,,,,246,246,246,246',
526
+ '246,246,,246,246,246,246,246,,,,,281,,246,246,246,246,246,,,,,,,,246',
527
+ '281,281,281,281,281,281,,,281,281,281,281,,,,,,,281,281,281,281,281',
528
+ '109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109',
529
+ '109,109,109,109,109,109,109,109,109,109,,,,,,109,,,109,169,169,169,169',
530
+ '169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169',
531
+ '169,169,169,169,169,169,,169,,,,,169,93,93,93,93,93,93,93,93,93,93,93',
532
+ '93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,,,,,93,254,254,254,254',
533
+ '254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254',
534
+ '254,254,254,254,254,254,,,,,254,153,153,153,153,153,153,,153,153,153',
535
+ '153,153,,,,,,,153,153,153,153,153,,,,,,,,153,23,23,23,23,23,23,23,23',
536
+ '23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,65,65,65,65',
537
+ '65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65',
538
+ '70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70',
539
+ '70,70,70,70,152,152,152,152,152,152,152,152,152,152,152,152,152,152',
540
+ '152,152,152,152,152,152,152,152,152,152,152,152,152,252,252,252,252',
541
+ '252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252',
542
+ '252,252,252,252,252,252,339,339,339,339,339,339,339,339,339,339,339',
543
+ '339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339' ]
544
+ racc_action_check = arr = ::Array.new(4122, nil)
545
+ idx = 0
546
+ clist.each do |str|
547
+ str.split(',', -1).each do |i|
548
+ arr[idx] = i.to_i unless i.empty?
549
+ idx += 1
550
+ end
551
+ end
38
552
 
39
553
  racc_action_pointer = [
40
- 2, 3, -2, 3, 6, 7, 16, 7, nil, 12,
41
- nil, nil, 10, nil, nil, 5, 15, 13, 8, -6,
42
- nil, 14, nil, nil, 13, 19, nil, nil, nil ]
554
+ -50, 17, 155, 2, nil, nil, nil, 27, 54, nil,
555
+ nil, 140, nil, nil, nil, nil, nil, 7, -15, 46,
556
+ nil, nil, 101, 3924, nil, nil, nil, 1254, 1164, -21,
557
+ 103, 111, -7, 134, nil, nil, nil, nil, nil, nil,
558
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
559
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
560
+ nil, nil, nil, nil, 187, 3951, 192, 3617, nil, 215,
561
+ 3978, nil, 250, 81, 271, nil, -51, 250, 262, nil,
562
+ 235, 298, nil, nil, nil, nil, nil, 8, 276, 244,
563
+ nil, nil, -4, 3829, nil, nil, nil, 310, nil, 292,
564
+ 328, 3571, nil, 96, 323, nil, nil, nil, 437, 3759,
565
+ 373, nil, 102, 465, 296, 464, nil, 1104, 411, nil,
566
+ 1147, 1201, 1244, nil, nil, nil, nil, 126, 428, nil,
567
+ 430, nil, 304, 479, 91, nil, -57, 420, 31, nil,
568
+ nil, nil, nil, nil, nil, nil, nil, nil, 467, 469,
569
+ nil, 1298, 4005, 3850, nil, 1341, 1395, 1438, 1492, 1535,
570
+ nil, nil, 482, nil, nil, 104, nil, 483, 478, 3795,
571
+ 497, 1261, 566, 345, nil, nil, 521, 3663, nil, nil,
572
+ nil, nil, 525, 526, nil, nil, nil, 91, 1589, nil,
573
+ 177, 524, nil, 213, 535, 1632, nil, -6, 587, 1686,
574
+ nil, 3139, 69, 1729, 1783, 1826, 1880, 186, 563, 1923,
575
+ -2, 563, 549, nil, 1977, nil, 2020, 2074, 2117, 2171,
576
+ nil, 2214, 567, nil, 2217, nil, nil, 2309, 2327, 2405,
577
+ 2423, 2501, 2519, 2597, 2615, 2693, 2711, 2789, 2807, 2885,
578
+ 2903, 2981, 2999, 3077, nil, 20, 3662, 572, 554, 3095,
579
+ nil, nil, 4032, 570, 3861, 554, nil, 3111, nil, 194,
580
+ nil, nil, 281, nil, 326, nil, nil, nil, 573, nil,
581
+ 139, nil, 637, 210, 201, 267, 376, nil, nil, 471,
582
+ 580, 3693, 578, 580, nil, nil, nil, nil, 566, nil,
583
+ 557, 208, 211, 618, nil, 297, 16, nil, nil, nil,
584
+ 3189, 363, 230, 12, 392, 411, 452, 332, nil, 480,
585
+ nil, -6, -12, 383, 458, 567, 568, 569, 571, 271,
586
+ 365, 378, 1075, 1300, 2394, 2490, 2586, 2682, 2778, 2874,
587
+ nil, nil, nil, 2299, nil, nil, nil, nil, 582, 4059,
588
+ nil, 193, nil, 653, 1351, 117, nil, 593, nil, 3232,
589
+ nil, 545, 655, nil, 467, 467, 657, nil, nil, 661,
590
+ 173, nil, 606, nil, 589, 468, nil, nil, 3286, nil,
591
+ 602, 613, 3329, 593, nil, 118, nil, nil, nil, nil,
592
+ 602, 623, 470, 689, nil, 3383, 661, nil, 3426, 3480,
593
+ nil, nil, 661, nil, 339, 382, 487, nil, 3497, 622,
594
+ nil, nil, 183, nil, nil, -4, nil, 2970, 3469, nil,
595
+ 421, 756, 851, nil, 661, nil, 946, 1041, nil, nil,
596
+ 664, 579, nil, nil, nil ]
43
597
 
44
598
  racc_action_default = [
45
- -6, -13, -1, -13, -13, -13, -13, -13, -3, -13,
46
- -7, -5, -13, 29, -2, -6, -13, -13, -6, -13,
47
- -10, -13, -12, -4, -13, -13, -11, -8, -9 ]
599
+ -232, -243, -6, -233, -234, -236, -237, -243, -232, -2,
600
+ -4, -243, -7, -9, -10, -11, -12, -243, -243, -243,
601
+ -49, -50, -56, -243, -235, 425, -1, -233, -5, -15,
602
+ -18, -243, -243, -243, -115, -199, -200, -201, -202, -203,
603
+ -204, -205, -206, -207, -208, -209, -210, -211, -212, -213,
604
+ -214, -215, -216, -217, -218, -219, -220, -221, -222, -223,
605
+ -224, -225, -3, -8, -243, -243, -243, -22, -19, -243,
606
+ -35, -242, -143, -141, -243, -57, -243, -6, -15, -16,
607
+ -243, -243, -23, -25, -26, -27, -115, -243, -243, -232,
608
+ -36, -115, -59, -243, -139, -140, -142, -32, -116, -232,
609
+ -243, -243, -20, -243, -243, -42, -43, -21, -243, -233,
610
+ -38, -40, -243, -243, -232, -60, -62, -226, -228, -65,
611
+ -243, -243, -243, -70, -71, -72, -73, -74, -228, -76,
612
+ -228, -78, -243, -243, -175, -115, -193, -183, -193, -123,
613
+ -124, -125, -126, -127, -128, -129, -130, -131, -238, -238,
614
+ -151, -243, -243, -156, -157, -243, -243, -243, -243, -243,
615
+ -184, -186, -243, -188, -189, -243, -145, -243, -149, -115,
616
+ -243, -233, -243, -6, -17, -24, -32, -243, -34, -37,
617
+ -115, -115, -32, -112, -113, -51, -58, -233, -243, -63,
618
+ -227, -175, -183, -193, -193, -195, -229, -243, -243, -243,
619
+ -92, -243, -243, -243, -243, -195, -195, -59, -243, -243,
620
+ -243, -105, -108, -109, -243, -185, -195, -243, -243, -243,
621
+ -190, -117, -239, -240, -134, -152, -115, -243, -243, -243,
622
+ -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
623
+ -243, -243, -243, -243, -158, -243, -156, -157, -171, -243,
624
+ -172, -173, -243, -243, -243, -149, -148, -243, -30, -243,
625
+ -115, -55, -59, -13, -243, -28, -41, -115, -243, -39,
626
+ -243, -111, -61, -67, -230, -196, -59, -99, -100, -59,
627
+ -243, -243, -243, -243, -95, -96, -97, -98, -59, -153,
628
+ -154, -230, -230, -81, -89, -90, -141, -191, -192, -115,
629
+ -243, -120, -243, -243, -121, -122, -118, -243, -241, -238,
630
+ -135, -243, -243, -160, -161, -162, -163, -164, -165, -166,
631
+ -167, -168, -169, -170, -176, -177, -178, -179, -180, -181,
632
+ -159, -174, -182, -243, -115, -144, -146, -147, -150, -115,
633
+ -33, -53, -54, -243, -243, -44, -115, -243, -64, -243,
634
+ -231, -101, -243, -91, -243, -243, -243, -75, -77, -243,
635
+ -85, -82, -243, -106, -107, -114, -194, -198, -243, -132,
636
+ -243, -238, -243, -243, -155, -243, -31, -52, -14, -115,
637
+ -45, -32, -197, -243, -102, -243, -59, -68, -243, -243,
638
+ -69, -79, -87, -83, -243, -243, -119, -133, -243, -137,
639
+ -138, -187, -47, -110, -66, -243, -104, -93, -94, -80,
640
+ -243, -59, -59, -136, -243, -48, -59, -59, -86, -84,
641
+ -32, -101, -88, -46, -103 ]
48
642
 
49
643
  racc_goto_table = [
50
- 7, 20, 2, 1, 9, 15, 11, 19, nil, nil,
51
- 28, nil, nil, nil, nil, nil, 7, 18 ]
644
+ 24, 3, 16, 70, 76, 113, 63, 276, 170, 27,
645
+ 111, 258, 28, 134, 99, 72, 221, 224, 213, 200,
646
+ 256, 310, 383, 220, 24, 24, 34, 16, 16, 68,
647
+ 166, 82, 137, 64, 9, 361, 77, 90, 1, 274,
648
+ 2, 85, 138, 195, 348, 8, 67, 80, 26, 291,
649
+ 292, 259, 184, 205, 212, 206, 103, 89, 110, 62,
650
+ 302, 357, 358, 104, 266, 175, 414, 84, 78, 32,
651
+ 86, 92, 173, 91, 272, 85, 179, 16, 189, 220,
652
+ 102, 101, 100, 198, 359, 360, 392, 265, 409, 388,
653
+ 109, 389, 424, 271, 211, 347, 167, 280, 24, 269,
654
+ 171, 84, 393, 307, 86, 309, 24, 337, 134, 372,
655
+ 264, 165, 91, 225, 247, 187, nil, nil, nil, nil,
656
+ 293, nil, nil, nil, nil, nil, nil, 137, 134, 108,
657
+ nil, nil, nil, 207, nil, nil, nil, 138, nil, 172,
658
+ nil, nil, 262, nil, nil, 311, nil, 137, nil, 63,
659
+ 298, 270, nil, nil, 186, 226, nil, 138, nil, nil,
660
+ nil, nil, nil, nil, nil, nil, nil, nil, 24, 278,
661
+ nil, 16, 260, 16, nil, 343, nil, 370, 338, 342,
662
+ 267, 376, 363, 134, 24, 190, nil, nil, 197, 351,
663
+ 202, 336, 352, 297, 308, 413, 312, 134, nil, nil,
664
+ 134, 356, 137, nil, 24, nil, nil, nil, nil, 134,
665
+ 184, nil, 138, nil, nil, 416, 137, nil, 364, 137,
666
+ nil, nil, nil, 244, 245, 335, 138, nil, 137, 138,
667
+ 341, nil, nil, nil, nil, nil, nil, 345, 138, 398,
668
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
669
+ nil, nil, nil, nil, nil, 334, 273, 167, nil, nil,
670
+ nil, nil, nil, 275, nil, 344, nil, nil, nil, nil,
671
+ nil, 289, 290, 275, 275, nil, nil, 295, nil, nil,
672
+ nil, 184, 301, nil, 275, 303, 304, 305, nil, 306,
673
+ nil, nil, 403, 399, nil, nil, nil, nil, nil, 406,
674
+ nil, nil, nil, nil, 375, nil, nil, 134, nil, nil,
675
+ nil, nil, nil, nil, nil, nil, 380, nil, nil, 311,
676
+ nil, nil, 63, nil, 418, 419, 137, nil, nil, 421,
677
+ 422, 423, 134, 134, nil, nil, 138, 134, 134, nil,
678
+ nil, 24, 260, nil, 16, nil, nil, nil, 201, 402,
679
+ nil, 137, 137, nil, nil, nil, 137, 137, nil, nil,
680
+ nil, 138, 138, nil, nil, nil, 138, 138, 365, nil,
681
+ nil, nil, nil, nil, nil, nil, nil, 278, nil, nil,
682
+ nil, nil, nil, 246, 248, 250, 251, nil, nil, nil,
683
+ nil, nil, nil, nil, nil, 411, 412, nil, nil, nil,
684
+ nil, nil, nil, nil, nil, nil, nil, nil, 24, 24,
685
+ nil, 417, nil, nil, 24, nil, nil, 382, nil, nil,
686
+ nil, nil, nil, nil, nil, nil, 281, nil, nil, nil,
687
+ nil, nil, nil, nil, nil, nil, 396, nil, nil, nil,
688
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
689
+ nil, nil, nil, 405, 313, 314, 315, 316, 317, 318,
690
+ 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
691
+ 329, nil, nil, nil, nil, nil, 333, nil, nil, nil,
692
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
693
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
694
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
695
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
696
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
697
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
698
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
699
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
700
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
701
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
702
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
703
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
704
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
705
+ nil, nil, nil, nil, nil, 407, 408 ]
52
706
 
53
707
  racc_goto_check = [
54
- 3, 8, 2, 1, 4, 5, 6, 7, nil, nil,
55
- 8, nil, nil, nil, nil, nil, 3, 2 ]
708
+ 84, 5, 12, 14, 22, 38, 8, 48, 23, 5,
709
+ 29, 25, 5, 59, 7, 36, 72, 72, 66, 60,
710
+ 78, 74, 49, 82, 84, 84, 15, 12, 12, 18,
711
+ 77, 19, 68, 13, 4, 58, 14, 27, 1, 44,
712
+ 2, 21, 70, 43, 45, 3, 16, 17, 2, 44,
713
+ 44, 24, 68, 43, 29, 43, 22, 26, 28, 4,
714
+ 44, 45, 45, 30, 31, 19, 32, 12, 15, 35,
715
+ 15, 37, 14, 15, 40, 21, 27, 12, 42, 82,
716
+ 18, 5, 13, 50, 54, 55, 56, 23, 57, 62,
717
+ 5, 63, 49, 23, 65, 67, 15, 60, 84, 29,
718
+ 5, 12, 58, 69, 15, 73, 84, 78, 59, 75,
719
+ 7, 76, 15, 79, 81, 5, nil, nil, nil, nil,
720
+ 38, nil, nil, nil, nil, nil, nil, 68, 59, 2,
721
+ nil, nil, nil, 5, nil, nil, nil, 70, nil, 2,
722
+ nil, nil, 14, nil, nil, 59, nil, 68, nil, 8,
723
+ 68, 22, nil, nil, 2, 15, nil, 70, nil, nil,
724
+ nil, nil, nil, nil, nil, nil, nil, nil, 84, 14,
725
+ nil, 12, 15, 12, nil, 38, nil, 72, 59, 29,
726
+ 15, 25, 66, 59, 84, 47, nil, nil, 47, 38,
727
+ 47, 77, 38, 36, 14, 74, 22, 59, nil, nil,
728
+ 59, 38, 68, nil, 84, nil, nil, nil, nil, 59,
729
+ 68, nil, 70, nil, nil, 48, 68, nil, 29, 68,
730
+ nil, nil, nil, 47, 47, 14, 70, nil, 68, 70,
731
+ 22, nil, nil, nil, nil, nil, nil, 22, 70, 72,
732
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
733
+ nil, nil, nil, nil, nil, 15, 47, 15, nil, nil,
734
+ nil, nil, nil, 47, nil, 5, nil, nil, nil, nil,
735
+ nil, 47, 47, 47, 47, nil, nil, 47, nil, nil,
736
+ nil, 68, 47, nil, 47, 47, 47, 47, nil, 47,
737
+ nil, nil, 23, 59, nil, nil, nil, nil, nil, 38,
738
+ nil, nil, nil, nil, 22, nil, nil, 59, nil, nil,
739
+ nil, nil, nil, nil, nil, nil, 22, nil, nil, 59,
740
+ nil, nil, 8, nil, 38, 38, 68, nil, nil, 38,
741
+ 38, 23, 59, 59, nil, nil, 70, 59, 59, nil,
742
+ nil, 84, 15, nil, 12, nil, nil, nil, 61, 22,
743
+ nil, 68, 68, nil, nil, nil, 68, 68, nil, nil,
744
+ nil, 70, 70, nil, nil, nil, 70, 70, 47, nil,
745
+ nil, nil, nil, nil, nil, nil, nil, 14, nil, nil,
746
+ nil, nil, nil, 61, 61, 61, 61, nil, nil, nil,
747
+ nil, nil, nil, nil, nil, 5, 5, nil, nil, nil,
748
+ nil, nil, nil, nil, nil, nil, nil, nil, 84, 84,
749
+ nil, 5, nil, nil, 84, nil, nil, 47, nil, nil,
750
+ nil, nil, nil, nil, nil, nil, 61, nil, nil, nil,
751
+ nil, nil, nil, nil, nil, nil, 47, nil, nil, nil,
752
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
753
+ nil, nil, nil, 47, 61, 61, 61, 61, 61, 61,
754
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
755
+ 61, nil, nil, nil, nil, nil, 61, nil, nil, nil,
756
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
757
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
758
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
759
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
760
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
761
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
762
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
763
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
764
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
765
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
766
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
767
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
768
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
769
+ nil, nil, nil, nil, nil, 61, 61 ]
56
770
 
57
771
  racc_goto_pointer = [
58
- nil, 3, 2, -2, 0, -4, 1, -9, -15 ]
772
+ nil, 38, 40, 43, 32, 1, nil, -63, -22, nil,
773
+ nil, nil, 0, 4, -28, 3, 16, -20, -1, -36,
774
+ nil, -26, -30, -89, -118, -158, -13, -33, -33, -81,
775
+ -24, -113, -336, nil, nil, 47, -17, -1, -87, nil,
776
+ -113, nil, -39, -75, -156, -230, nil, 68, -190, -329,
777
+ -38, nil, nil, nil, -209, -208, -274, -304, -258, -79,
778
+ -102, 227, -265, -264, nil, -41, -117, -175, -60, -118,
779
+ -50, nil, -132, -119, -203, -202, 18, -63, -148, -38,
780
+ nil, -42, -115, nil, -3, nil ]
59
781
 
60
782
  racc_goto_default = [
61
- nil, nil, nil, 3, nil, nil, nil, nil, nil ]
783
+ nil, nil, nil, nil, nil, nil, 10, 11, 12, 13,
784
+ 14, 15, 124, nil, 223, 135, nil, nil, nil, nil,
785
+ 83, 126, 112, nil, nil, nil, nil, nil, nil, 261,
786
+ nil, nil, nil, 20, 21, nil, nil, nil, nil, 114,
787
+ 115, 116, nil, nil, nil, nil, 119, 127, nil, nil,
788
+ nil, 123, 125, 131, nil, nil, nil, nil, nil, 191,
789
+ nil, 153, 282, 283, 384, nil, nil, 182, 192, nil,
790
+ 194, 160, nil, nil, nil, nil, nil, nil, nil, 150,
791
+ 151, 154, 215, 161, 4, 222 ]
62
792
 
63
793
  racc_reduce_table = [
64
794
  0, 0, :racc_error,
65
- 1, 19, :_reduce_1,
66
- 3, 20, :_reduce_2,
67
- 2, 20, :_reduce_3,
68
- 5, 21, :_reduce_4,
69
- 2, 21, :_reduce_5,
70
- 0, 21, :_reduce_6,
71
- 1, 22, :_reduce_7,
72
- 4, 23, :_reduce_8,
73
- 3, 25, :_reduce_9,
74
- 1, 25, :_reduce_10,
75
- 2, 26, :_reduce_11,
76
- 3, 24, :_reduce_12 ]
77
-
78
- racc_reduce_n = 13
79
-
80
- racc_shift_n = 29
795
+ 3, 111, :_reduce_1,
796
+ 1, 113, :_reduce_2,
797
+ 3, 113, :_reduce_3,
798
+ 1, 114, :_reduce_4,
799
+ 2, 114, :_reduce_5,
800
+ 0, 117, :_reduce_6,
801
+ 1, 117, :_reduce_7,
802
+ 3, 117, :_reduce_8,
803
+ 1, 118, :_reduce_9,
804
+ 1, 118, :_reduce_10,
805
+ 1, 118, :_reduce_11,
806
+ 1, 118, :_reduce_12,
807
+ 7, 120, :_reduce_13,
808
+ 9, 121, :_reduce_14,
809
+ 0, 123, :_reduce_15,
810
+ 2, 123, :_reduce_16,
811
+ 6, 116, :_reduce_17,
812
+ 0, 126, :_reduce_18,
813
+ 1, 126, :_reduce_19,
814
+ 3, 126, :_reduce_20,
815
+ 3, 128, :_reduce_21,
816
+ 0, 127, :_reduce_22,
817
+ 1, 127, :_reduce_23,
818
+ 3, 127, :_reduce_24,
819
+ 1, 129, :_reduce_none,
820
+ 1, 129, :_reduce_none,
821
+ 1, 129, :_reduce_none,
822
+ 4, 130, :_reduce_28,
823
+ 0, 134, :_reduce_29,
824
+ 1, 134, :_reduce_30,
825
+ 3, 134, :_reduce_31,
826
+ 0, 133, :_reduce_32,
827
+ 3, 133, :_reduce_33,
828
+ 6, 122, :_reduce_34,
829
+ 0, 136, :_reduce_35,
830
+ 1, 136, :_reduce_36,
831
+ 3, 136, :_reduce_37,
832
+ 2, 137, :_reduce_38,
833
+ 3, 138, :_reduce_39,
834
+ 1, 138, :_reduce_40,
835
+ 4, 131, :_reduce_41,
836
+ 1, 140, :_reduce_none,
837
+ 1, 140, :_reduce_43,
838
+ 2, 141, :_reduce_44,
839
+ 3, 141, :_reduce_45,
840
+ 7, 141, :_reduce_46,
841
+ 0, 142, :_reduce_47,
842
+ 1, 142, :_reduce_48,
843
+ 1, 119, :_reduce_49,
844
+ 1, 119, :_reduce_50,
845
+ 6, 143, :_reduce_51,
846
+ 8, 144, :_reduce_52,
847
+ 2, 135, :_reduce_53,
848
+ 2, 135, :_reduce_54,
849
+ 1, 135, :_reduce_55,
850
+ 0, 145, :_reduce_56,
851
+ 2, 145, :_reduce_57,
852
+ 2, 148, :_reduce_58,
853
+ 0, 149, :_reduce_59,
854
+ 1, 149, :_reduce_60,
855
+ 3, 149, :_reduce_61,
856
+ 1, 150, :_reduce_62,
857
+ 2, 150, :_reduce_63,
858
+ 4, 150, :_reduce_64,
859
+ 1, 150, :_reduce_65,
860
+ 6, 150, :_reduce_66,
861
+ 3, 150, :_reduce_67,
862
+ 5, 150, :_reduce_68,
863
+ 5, 150, :_reduce_69,
864
+ 1, 150, :_reduce_70,
865
+ 1, 150, :_reduce_none,
866
+ 1, 150, :_reduce_none,
867
+ 1, 150, :_reduce_none,
868
+ 1, 150, :_reduce_74,
869
+ 4, 150, :_reduce_75,
870
+ 1, 150, :_reduce_76,
871
+ 4, 150, :_reduce_77,
872
+ 1, 150, :_reduce_none,
873
+ 5, 163, :_reduce_79,
874
+ 3, 164, :_reduce_80,
875
+ 0, 165, :_reduce_81,
876
+ 1, 165, :_reduce_82,
877
+ 2, 165, :_reduce_83,
878
+ 4, 168, :_reduce_84,
879
+ 0, 166, :_reduce_85,
880
+ 3, 166, :_reduce_86,
881
+ 0, 167, :_reduce_87,
882
+ 3, 167, :_reduce_88,
883
+ 3, 162, :_reduce_89,
884
+ 3, 161, :_reduce_90,
885
+ 3, 160, :_reduce_91,
886
+ 1, 160, :_reduce_none,
887
+ 5, 170, :_reduce_93,
888
+ 5, 170, :_reduce_94,
889
+ 1, 172, :_reduce_none,
890
+ 1, 172, :_reduce_none,
891
+ 1, 173, :_reduce_none,
892
+ 1, 173, :_reduce_none,
893
+ 1, 158, :_reduce_none,
894
+ 1, 158, :_reduce_none,
895
+ 0, 159, :_reduce_101,
896
+ 1, 159, :_reduce_102,
897
+ 5, 159, :_reduce_103,
898
+ 2, 174, :_reduce_104,
899
+ 2, 151, :_reduce_105,
900
+ 3, 175, :_reduce_106,
901
+ 3, 175, :_reduce_107,
902
+ 1, 175, :_reduce_108,
903
+ 1, 175, :_reduce_109,
904
+ 6, 139, :_reduce_110,
905
+ 3, 139, :_reduce_111,
906
+ 1, 177, :_reduce_none,
907
+ 1, 177, :_reduce_none,
908
+ 3, 176, :_reduce_114,
909
+ 0, 132, :_reduce_115,
910
+ 2, 132, :_reduce_116,
911
+ 0, 179, :_reduce_117,
912
+ 1, 179, :_reduce_118,
913
+ 3, 179, :_reduce_119,
914
+ 3, 156, :_reduce_120,
915
+ 3, 156, :_reduce_121,
916
+ 3, 156, :_reduce_122,
917
+ 1, 181, :_reduce_123,
918
+ 1, 181, :_reduce_124,
919
+ 1, 181, :_reduce_125,
920
+ 1, 181, :_reduce_126,
921
+ 1, 181, :_reduce_127,
922
+ 1, 181, :_reduce_128,
923
+ 1, 181, :_reduce_129,
924
+ 1, 181, :_reduce_130,
925
+ 1, 181, :_reduce_131,
926
+ 4, 181, :_reduce_132,
927
+ 5, 181, :_reduce_133,
928
+ 0, 183, :_reduce_134,
929
+ 1, 183, :_reduce_135,
930
+ 4, 183, :_reduce_136,
931
+ 3, 184, :_reduce_137,
932
+ 2, 185, :_reduce_none,
933
+ 2, 146, :_reduce_139,
934
+ 2, 146, :_reduce_140,
935
+ 1, 146, :_reduce_141,
936
+ 2, 146, :_reduce_142,
937
+ 0, 147, :_reduce_143,
938
+ 4, 147, :_reduce_144,
939
+ 1, 186, :_reduce_145,
940
+ 3, 186, :_reduce_146,
941
+ 3, 187, :_reduce_147,
942
+ 2, 187, :_reduce_148,
943
+ 0, 188, :_reduce_149,
944
+ 2, 188, :_reduce_150,
945
+ 1, 157, :_reduce_151,
946
+ 2, 157, :_reduce_152,
947
+ 3, 157, :_reduce_153,
948
+ 3, 157, :_reduce_154,
949
+ 4, 190, :_reduce_155,
950
+ 1, 189, :_reduce_156,
951
+ 1, 189, :_reduce_157,
952
+ 2, 189, :_reduce_158,
953
+ 3, 189, :_reduce_159,
954
+ 3, 171, :_reduce_160,
955
+ 3, 171, :_reduce_161,
956
+ 3, 171, :_reduce_162,
957
+ 3, 171, :_reduce_163,
958
+ 3, 171, :_reduce_164,
959
+ 3, 171, :_reduce_165,
960
+ 3, 171, :_reduce_166,
961
+ 3, 171, :_reduce_167,
962
+ 3, 171, :_reduce_168,
963
+ 3, 171, :_reduce_169,
964
+ 3, 171, :_reduce_170,
965
+ 2, 171, :_reduce_171,
966
+ 2, 171, :_reduce_172,
967
+ 2, 171, :_reduce_173,
968
+ 3, 171, :_reduce_174,
969
+ 1, 171, :_reduce_175,
970
+ 3, 191, :_reduce_176,
971
+ 3, 191, :_reduce_177,
972
+ 3, 191, :_reduce_178,
973
+ 3, 191, :_reduce_179,
974
+ 3, 191, :_reduce_180,
975
+ 3, 191, :_reduce_181,
976
+ 3, 191, :_reduce_182,
977
+ 1, 169, :_reduce_183,
978
+ 1, 169, :_reduce_184,
979
+ 2, 169, :_reduce_185,
980
+ 1, 169, :_reduce_none,
981
+ 5, 169, :_reduce_187,
982
+ 1, 169, :_reduce_188,
983
+ 1, 169, :_reduce_189,
984
+ 2, 193, :_reduce_190,
985
+ 3, 180, :_reduce_191,
986
+ 3, 180, :_reduce_192,
987
+ 0, 192, :_reduce_193,
988
+ 3, 192, :_reduce_194,
989
+ 0, 154, :_reduce_195,
990
+ 1, 154, :_reduce_196,
991
+ 3, 154, :_reduce_197,
992
+ 4, 178, :_reduce_198,
993
+ 1, 125, :_reduce_none,
994
+ 1, 125, :_reduce_none,
995
+ 1, 125, :_reduce_none,
996
+ 1, 125, :_reduce_none,
997
+ 1, 125, :_reduce_none,
998
+ 1, 125, :_reduce_none,
999
+ 1, 125, :_reduce_none,
1000
+ 1, 125, :_reduce_none,
1001
+ 1, 125, :_reduce_none,
1002
+ 1, 125, :_reduce_none,
1003
+ 1, 125, :_reduce_none,
1004
+ 1, 125, :_reduce_none,
1005
+ 1, 125, :_reduce_none,
1006
+ 1, 125, :_reduce_none,
1007
+ 1, 125, :_reduce_none,
1008
+ 1, 125, :_reduce_none,
1009
+ 1, 125, :_reduce_none,
1010
+ 1, 125, :_reduce_none,
1011
+ 1, 125, :_reduce_none,
1012
+ 1, 125, :_reduce_none,
1013
+ 1, 125, :_reduce_none,
1014
+ 1, 125, :_reduce_none,
1015
+ 1, 125, :_reduce_none,
1016
+ 1, 125, :_reduce_none,
1017
+ 1, 125, :_reduce_none,
1018
+ 1, 125, :_reduce_none,
1019
+ 1, 125, :_reduce_225,
1020
+ 0, 152, :_reduce_226,
1021
+ 1, 152, :_reduce_none,
1022
+ 0, 153, :_reduce_228,
1023
+ 1, 153, :_reduce_none,
1024
+ 0, 155, :_reduce_230,
1025
+ 1, 155, :_reduce_none,
1026
+ 0, 112, :_reduce_232,
1027
+ 1, 112, :_reduce_233,
1028
+ 1, 115, :_reduce_234,
1029
+ 2, 115, :_reduce_235,
1030
+ 1, 194, :_reduce_236,
1031
+ 1, 194, :_reduce_none,
1032
+ 0, 182, :_reduce_238,
1033
+ 1, 182, :_reduce_none,
1034
+ 1, 195, :_reduce_none,
1035
+ 2, 195, :_reduce_none,
1036
+ 1, 124, :_reduce_242 ]
1037
+
1038
+ racc_reduce_n = 243
1039
+
1040
+ racc_shift_n = 425
81
1041
 
82
1042
  racc_token_table = {
83
1043
  false => 0,
@@ -85,21 +1045,113 @@ racc_token_table = {
85
1045
  :kDEF => 2,
86
1046
  :kEND => 3,
87
1047
  :kRETURN => 4,
88
- :kDTYPE_I32 => 5,
89
- :tLPAREN => 6,
90
- :tRPAREN => 7,
91
- :tIDENTIFIER => 8,
92
- :tPLUS => 9,
93
- :tNL => 10,
94
- :tCOMMA => 11,
95
- :tEXPO => 12,
96
- :tMULTIPLY => 13,
97
- :tDIVIDE => 14,
98
- :tMODULUS => 15,
99
- :tMINUS => 16,
100
- :tEQUAL => 17 }
101
-
102
- racc_nt_base = 18
1048
+ :kPRINT => 5,
1049
+ :kIF => 6,
1050
+ :kELSIF => 7,
1051
+ :kELSE => 8,
1052
+ :kTHEN => 9,
1053
+ :kSTATIC_ARRAY => 10,
1054
+ :kFOR => 11,
1055
+ :kDOT_EACH => 12,
1056
+ :kDO => 13,
1057
+ :kTRUE => 14,
1058
+ :kFALSE => 15,
1059
+ :kNIL => 16,
1060
+ :kSTRUCT => 17,
1061
+ :kUNION => 18,
1062
+ :kALIAS => 19,
1063
+ :kLIB => 20,
1064
+ :kCFUNC => 21,
1065
+ :kSELF => 22,
1066
+ :kNULL => 23,
1067
+ :kFWD => 24,
1068
+ :kATTACH => 25,
1069
+ :kRAISE => 26,
1070
+ :kBREAK => 27,
1071
+ :kBLOCK_GIVEN => 28,
1072
+ :kYIELD => 29,
1073
+ :kBEGIN => 30,
1074
+ :kRESCUE => 31,
1075
+ :kENSURE => 32,
1076
+ :kWHILE => 33,
1077
+ :kCLASS => 34,
1078
+ :kDATA_VAR => 35,
1079
+ :kDTYPE_UINT => 36,
1080
+ :kDTYPE_LINT => 37,
1081
+ :kDTYPE_LLINT => 38,
1082
+ :kDTYPE_CHAR => 39,
1083
+ :kDTYPE_I8 => 40,
1084
+ :kDTYPE_I16 => 41,
1085
+ :kDTYPE_I32 => 42,
1086
+ :kDTYPE_I64 => 43,
1087
+ :kDTYPE_UI8 => 44,
1088
+ :kDTYPE_UI16 => 45,
1089
+ :kDTYPE_UI32 => 46,
1090
+ :kDTYPE_UI64 => 47,
1091
+ :kDTYPE_INT => 48,
1092
+ :kDTYPE_F32 => 49,
1093
+ :kDTYPE_F64 => 50,
1094
+ :kDTYPE_LF64 => 51,
1095
+ :kDTYPE_ROBJ => 52,
1096
+ :kDTYPE_ULINT => 53,
1097
+ :kDTYPE_ULLINT => 54,
1098
+ :kDTYPE_VOID => 55,
1099
+ :kDTYPE_SIZE_T => 56,
1100
+ :kDTYPE_RB_STR => 57,
1101
+ :kDTYPE_UCHAR => 58,
1102
+ :kDTYPE_BOOL => 59,
1103
+ :tCUSTOM_DTYPE => 60,
1104
+ :kDTYPE_RB_ARR => 61,
1105
+ :kDTYPE_RB_HSH => 62,
1106
+ :tLPAREN => 63,
1107
+ :tRPAREN => 64,
1108
+ :tLSQUARE => 65,
1109
+ :tRSQUARE => 66,
1110
+ :tIDENTIFIER => 67,
1111
+ :tNL => 68,
1112
+ :tCOMMA => 69,
1113
+ :tSQUOTE => 70,
1114
+ :tSCOLON => 71,
1115
+ :EOF => 72,
1116
+ :tDOT => 73,
1117
+ :tQMARK => 74,
1118
+ :tSYMBOL => 75,
1119
+ :tLBRACE => 76,
1120
+ :tRBRACE => 77,
1121
+ :tCOLON => 78,
1122
+ :tPLUS => 79,
1123
+ :tMINUS => 80,
1124
+ :tSTAR => 81,
1125
+ :tDIVIDE => 82,
1126
+ :tEXPO => 83,
1127
+ :tMODULUS => 84,
1128
+ :tASSIGN => 85,
1129
+ :tEQ => 86,
1130
+ :tLT => 87,
1131
+ :tLTEQ => 88,
1132
+ :tGT => 89,
1133
+ :tGTEQ => 90,
1134
+ :tANDOP => 91,
1135
+ :tOROP => 92,
1136
+ :tBANG => 93,
1137
+ :tOP_ASSIGN => 94,
1138
+ :tSTRING => 95,
1139
+ :kSIZEOF => 96,
1140
+ :tBIT_AND => 97,
1141
+ :tBIT_OR => 98,
1142
+ :tBIT_XOR => 99,
1143
+ :tBIT_LSHIFT => 100,
1144
+ :tBIT_RSHIFT => 101,
1145
+ :tBIT_NOT => 102,
1146
+ :tINTEGER => 103,
1147
+ :tFLOAT => 104,
1148
+ :tSINGLE_CHAR => 105,
1149
+ :ADDRESS_OF => 106,
1150
+ :TYPECAST => 107,
1151
+ :UMINUS => 108,
1152
+ :tNEQ => 109 }
1153
+
1154
+ racc_nt_base = 110
103
1155
 
104
1156
  racc_use_result_var = true
105
1157
 
@@ -125,28 +1177,197 @@ Racc_token_to_s_table = [
125
1177
  "kDEF",
126
1178
  "kEND",
127
1179
  "kRETURN",
1180
+ "kPRINT",
1181
+ "kIF",
1182
+ "kELSIF",
1183
+ "kELSE",
1184
+ "kTHEN",
1185
+ "kSTATIC_ARRAY",
1186
+ "kFOR",
1187
+ "kDOT_EACH",
1188
+ "kDO",
1189
+ "kTRUE",
1190
+ "kFALSE",
1191
+ "kNIL",
1192
+ "kSTRUCT",
1193
+ "kUNION",
1194
+ "kALIAS",
1195
+ "kLIB",
1196
+ "kCFUNC",
1197
+ "kSELF",
1198
+ "kNULL",
1199
+ "kFWD",
1200
+ "kATTACH",
1201
+ "kRAISE",
1202
+ "kBREAK",
1203
+ "kBLOCK_GIVEN",
1204
+ "kYIELD",
1205
+ "kBEGIN",
1206
+ "kRESCUE",
1207
+ "kENSURE",
1208
+ "kWHILE",
1209
+ "kCLASS",
1210
+ "kDATA_VAR",
1211
+ "kDTYPE_UINT",
1212
+ "kDTYPE_LINT",
1213
+ "kDTYPE_LLINT",
1214
+ "kDTYPE_CHAR",
1215
+ "kDTYPE_I8",
1216
+ "kDTYPE_I16",
128
1217
  "kDTYPE_I32",
1218
+ "kDTYPE_I64",
1219
+ "kDTYPE_UI8",
1220
+ "kDTYPE_UI16",
1221
+ "kDTYPE_UI32",
1222
+ "kDTYPE_UI64",
1223
+ "kDTYPE_INT",
1224
+ "kDTYPE_F32",
1225
+ "kDTYPE_F64",
1226
+ "kDTYPE_LF64",
1227
+ "kDTYPE_ROBJ",
1228
+ "kDTYPE_ULINT",
1229
+ "kDTYPE_ULLINT",
1230
+ "kDTYPE_VOID",
1231
+ "kDTYPE_SIZE_T",
1232
+ "kDTYPE_RB_STR",
1233
+ "kDTYPE_UCHAR",
1234
+ "kDTYPE_BOOL",
1235
+ "tCUSTOM_DTYPE",
1236
+ "kDTYPE_RB_ARR",
1237
+ "kDTYPE_RB_HSH",
129
1238
  "tLPAREN",
130
1239
  "tRPAREN",
1240
+ "tLSQUARE",
1241
+ "tRSQUARE",
131
1242
  "tIDENTIFIER",
132
- "tPLUS",
133
1243
  "tNL",
134
1244
  "tCOMMA",
135
- "tEXPO",
136
- "tMULTIPLY",
1245
+ "tSQUOTE",
1246
+ "tSCOLON",
1247
+ "EOF",
1248
+ "tDOT",
1249
+ "tQMARK",
1250
+ "tSYMBOL",
1251
+ "tLBRACE",
1252
+ "tRBRACE",
1253
+ "tCOLON",
1254
+ "tPLUS",
1255
+ "tMINUS",
1256
+ "tSTAR",
137
1257
  "tDIVIDE",
1258
+ "tEXPO",
138
1259
  "tMODULUS",
139
- "tMINUS",
140
- "tEQUAL",
1260
+ "tASSIGN",
1261
+ "tEQ",
1262
+ "tLT",
1263
+ "tLTEQ",
1264
+ "tGT",
1265
+ "tGTEQ",
1266
+ "tANDOP",
1267
+ "tOROP",
1268
+ "tBANG",
1269
+ "tOP_ASSIGN",
1270
+ "tSTRING",
1271
+ "kSIZEOF",
1272
+ "tBIT_AND",
1273
+ "tBIT_OR",
1274
+ "tBIT_XOR",
1275
+ "tBIT_LSHIFT",
1276
+ "tBIT_RSHIFT",
1277
+ "tBIT_NOT",
1278
+ "tINTEGER",
1279
+ "tFLOAT",
1280
+ "tSINGLE_CHAR",
1281
+ "ADDRESS_OF",
1282
+ "TYPECAST",
1283
+ "UMINUS",
1284
+ "tNEQ",
141
1285
  "$start",
142
1286
  "program",
1287
+ "opt_terms",
1288
+ "top_compstmts",
1289
+ "top_compstmt",
1290
+ "terms",
1291
+ "c_bindings",
1292
+ "top_stmts",
1293
+ "top_stmt",
1294
+ "methods",
1295
+ "klass",
1296
+ "attached_klass",
1297
+ "struct_or_union_def",
1298
+ "opt_inheritance",
1299
+ "eol",
1300
+ "dtype",
1301
+ "opt_compilation_cmds",
1302
+ "c_declarations",
1303
+ "compilation_cmd",
1304
+ "c_declaration",
1305
+ "c_function_declaration_or_var_decl",
1306
+ "alias_stmt",
1307
+ "opt_star",
1308
+ "opt_c_func_arg_list",
1309
+ "c_func_args",
1310
+ "c_func_normal_arg",
1311
+ "var_decl_stmts",
1312
+ "var_decl_stmt",
1313
+ "var_decls",
1314
+ "normal_decl",
1315
+ "ident_or_custom_dtype",
1316
+ "aliased_type",
1317
+ "opt_identifier",
1318
+ "ruby_method",
1319
+ "c_function",
1320
+ "opt_singleton",
1321
+ "f_name",
1322
+ "f_opt_arglist",
1323
+ "compstmt",
143
1324
  "stmts",
144
1325
  "stmt",
145
- "fname",
146
- "f_arglist",
1326
+ "var_decl_or_init",
1327
+ "opt_expr",
1328
+ "opt_lparen",
1329
+ "command_arg_list",
1330
+ "opt_rparen",
1331
+ "normal_init",
147
1332
  "expr",
1333
+ "then",
1334
+ "if_tail",
1335
+ "for_expr",
1336
+ "op_assign",
1337
+ "forward_declaration",
1338
+ "begin_block",
1339
+ "opt_begin_block_tails",
1340
+ "opt_rescue_blocks",
1341
+ "opt_else_block",
1342
+ "opt_ensure_block",
1343
+ "rescue_block",
1344
+ "atomic_value",
1345
+ "actual_for_expr",
1346
+ "expr_value",
1347
+ "lt_or_lteq",
1348
+ "gt_or_gteq",
1349
+ "opt_else",
1350
+ "decls_or_inits",
1351
+ "var_init",
1352
+ "actual_normal_decl",
1353
+ "array_ref",
1354
+ "array_list",
1355
+ "method_or_attr",
1356
+ "literal",
1357
+ "opt_eols",
1358
+ "hash_data",
1359
+ "hash_data_k_v",
1360
+ "rocket",
148
1361
  "f_args",
149
- "f_normal_arg" ]
1362
+ "f_normal_arg",
1363
+ "opt_default_value",
1364
+ "actual_expr",
1365
+ "typecast",
1366
+ "expr_cmp",
1367
+ "command_opt_args",
1368
+ "command_call",
1369
+ "term",
1370
+ "eols" ]
150
1371
 
151
1372
  Racc_debug_parser = false
152
1373
 
@@ -154,91 +1375,1625 @@ Racc_debug_parser = false
154
1375
 
155
1376
  # reduce 0 omitted
156
1377
 
157
- module_eval(<<'.,.,', 'parser.racc', 15)
1378
+ module_eval(<<'.,.,', 'parser.racc', 47)
158
1379
  def _reduce_1(val, _values, result)
159
- result = Node.new(val[0])
1380
+ result = Node.new(val[1])
160
1381
  result
161
1382
  end
162
1383
  .,.,
163
1384
 
164
- module_eval(<<'.,.,', 'parser.racc', 18)
1385
+ module_eval(<<'.,.,', 'parser.racc', 50)
165
1386
  def _reduce_2(val, _values, result)
166
- result = [val[0], val[1]]
1387
+ result = [val[0]]
167
1388
  result
168
1389
  end
169
1390
  .,.,
170
1391
 
171
- module_eval(<<'.,.,', 'parser.racc', 19)
1392
+ module_eval(<<'.,.,', 'parser.racc', 51)
172
1393
  def _reduce_3(val, _values, result)
173
- result = [val[0]]
1394
+ result = [*val[0], val[2]]
174
1395
  result
175
1396
  end
176
1397
  .,.,
177
1398
 
178
- module_eval(<<'.,.,', 'parser.racc', 24)
1399
+ module_eval(<<'.,.,', 'parser.racc', 54)
179
1400
  def _reduce_4(val, _values, result)
180
- result = RubyMethodDef.new(val[1], val[2])
181
- result.add_statements val[3]
182
-
1401
+
183
1402
  result
184
1403
  end
185
1404
  .,.,
186
1405
 
187
- module_eval(<<'.,.,', 'parser.racc', 27)
1406
+ module_eval(<<'.,.,', 'parser.racc', 55)
188
1407
  def _reduce_5(val, _values, result)
189
- result = Statement::Return.new val[1]
1408
+ result = val[0]
190
1409
  result
191
1410
  end
192
1411
  .,.,
193
1412
 
194
- module_eval(<<'.,.,', 'parser.racc', 28)
1413
+ module_eval(<<'.,.,', 'parser.racc', 58)
195
1414
  def _reduce_6(val, _values, result)
196
-
1415
+ result = []
197
1416
  result
198
1417
  end
199
1418
  .,.,
200
1419
 
201
- module_eval(<<'.,.,', 'parser.racc', 31)
1420
+ module_eval(<<'.,.,', 'parser.racc', 59)
202
1421
  def _reduce_7(val, _values, result)
203
-
1422
+ result = [val[0]]
204
1423
  result
205
1424
  end
206
1425
  .,.,
207
1426
 
208
- module_eval(<<'.,.,', 'parser.racc', 34)
1427
+ module_eval(<<'.,.,', 'parser.racc', 60)
209
1428
  def _reduce_8(val, _values, result)
210
- result = val[1]
1429
+ result = [*val[0], val[2]]
211
1430
  result
212
1431
  end
213
1432
  .,.,
214
1433
 
215
- module_eval(<<'.,.,', 'parser.racc', 39)
1434
+ module_eval(<<'.,.,', 'parser.racc', 63)
216
1435
  def _reduce_9(val, _values, result)
217
- result = ArgumentList.new
218
- result.push val[0]
219
- result.push val[2]
220
-
1436
+
221
1437
  result
222
1438
  end
223
1439
  .,.,
224
1440
 
225
- module_eval(<<'.,.,', 'parser.racc', 43)
1441
+ module_eval(<<'.,.,', 'parser.racc', 64)
226
1442
  def _reduce_10(val, _values, result)
227
-
1443
+
228
1444
  result
229
1445
  end
230
1446
  .,.,
231
1447
 
232
- module_eval(<<'.,.,', 'parser.racc', 46)
1448
+ module_eval(<<'.,.,', 'parser.racc', 65)
233
1449
  def _reduce_11(val, _values, result)
234
- result = CBaseType.new val[0], val[1]
1450
+
235
1451
  result
236
1452
  end
237
1453
  .,.,
238
1454
 
239
- module_eval(<<'.,.,', 'parser.racc', 49)
1455
+ module_eval(<<'.,.,', 'parser.racc', 66)
240
1456
  def _reduce_12(val, _values, result)
241
- result = Expression::Addition.new val[0], val[2]
1457
+
1458
+ result
1459
+ end
1460
+ .,.,
1461
+
1462
+ module_eval(<<'.,.,', 'parser.racc', 71)
1463
+ def _reduce_13(val, _values, result)
1464
+ raise Rubex::SyntaxError unless val[1][0].match(/[A-Z]/)
1465
+ result = TopStatement::Klass.new val[1], val[2], val[4]
1466
+
1467
+ result
1468
+ end
1469
+ .,.,
1470
+
1471
+ module_eval(<<'.,.,', 'parser.racc', 78)
1472
+ def _reduce_14(val, _values, result)
1473
+ raise Rubex::SyntaxError unless val[1][0].match(/[A-Z]/)
1474
+ result = TopStatement::AttachedKlass.new(val[1], val[3], val[4], val[6],
1475
+ location)
1476
+
1477
+ result
1478
+ end
1479
+ .,.,
1480
+
1481
+ module_eval(<<'.,.,', 'parser.racc', 84)
1482
+ def _reduce_15(val, _values, result)
1483
+ result = nil
1484
+ result
1485
+ end
1486
+ .,.,
1487
+
1488
+ module_eval(<<'.,.,', 'parser.racc', 85)
1489
+ def _reduce_16(val, _values, result)
1490
+ result = val[1]
1491
+ result
1492
+ end
1493
+ .,.,
1494
+
1495
+ module_eval(<<'.,.,', 'parser.racc', 90)
1496
+ def _reduce_17(val, _values, result)
1497
+ result = TopStatement::CBindings.new val[1], val[2], val[3], location
1498
+
1499
+ result
1500
+ end
1501
+ .,.,
1502
+
1503
+ module_eval(<<'.,.,', 'parser.racc', 94)
1504
+ def _reduce_18(val, _values, result)
1505
+ result = [{}]
1506
+ result
1507
+ end
1508
+ .,.,
1509
+
1510
+ module_eval(<<'.,.,', 'parser.racc', 95)
1511
+ def _reduce_19(val, _values, result)
1512
+ result = [val[0]]
1513
+ result
1514
+ end
1515
+ .,.,
1516
+
1517
+ module_eval(<<'.,.,', 'parser.racc', 96)
1518
+ def _reduce_20(val, _values, result)
1519
+ result = [*val[0], val[2]]
1520
+ result
1521
+ end
1522
+ .,.,
1523
+
1524
+ module_eval(<<'.,.,', 'parser.racc', 101)
1525
+ def _reduce_21(val, _values, result)
1526
+ if val[0] == 'link'
1527
+ result = { link: val[2] }
1528
+ end
1529
+
1530
+ result
1531
+ end
1532
+ .,.,
1533
+
1534
+ module_eval(<<'.,.,', 'parser.racc', 107)
1535
+ def _reduce_22(val, _values, result)
1536
+
1537
+ result
1538
+ end
1539
+ .,.,
1540
+
1541
+ module_eval(<<'.,.,', 'parser.racc', 108)
1542
+ def _reduce_23(val, _values, result)
1543
+ result = [val[0]]
1544
+ result
1545
+ end
1546
+ .,.,
1547
+
1548
+ module_eval(<<'.,.,', 'parser.racc', 109)
1549
+ def _reduce_24(val, _values, result)
1550
+ result = [*val[0], val[2]]
1551
+ result
1552
+ end
1553
+ .,.,
1554
+
1555
+ # reduce 25 omitted
1556
+
1557
+ # reduce 26 omitted
1558
+
1559
+ # reduce 27 omitted
1560
+
1561
+ module_eval(<<'.,.,', 'parser.racc', 119)
1562
+ def _reduce_28(val, _values, result)
1563
+ if !val[3].empty? # function decl
1564
+ val[3].pop # HACK: because declared external C functions don't have implicit self argument.
1565
+ result = Statement::CFunctionDecl.new val[0], val[1], val[2], val[3]
1566
+ else # var/macro decl
1567
+ result = variable_decl_nodes([{
1568
+ dtype: val[0],
1569
+ variables: [{
1570
+ ptr_level: val[1],
1571
+ ident: val[2]
1572
+ }]
1573
+ }])[0]
1574
+ end
1575
+
1576
+ result
1577
+ end
1578
+ .,.,
1579
+
1580
+ module_eval(<<'.,.,', 'parser.racc', 134)
1581
+ def _reduce_29(val, _values, result)
1582
+ result = []
1583
+ result
1584
+ end
1585
+ .,.,
1586
+
1587
+ module_eval(<<'.,.,', 'parser.racc', 135)
1588
+ def _reduce_30(val, _values, result)
1589
+ result = [Expression::ArgDeclaration.new(val[0])]
1590
+ result
1591
+ end
1592
+ .,.,
1593
+
1594
+ module_eval(<<'.,.,', 'parser.racc', 138)
1595
+ def _reduce_31(val, _values, result)
1596
+ result = [*val[0], Expression::ArgDeclaration.new(val[2])]
1597
+
1598
+ result
1599
+ end
1600
+ .,.,
1601
+
1602
+ module_eval(<<'.,.,', 'parser.racc', 142)
1603
+ def _reduce_32(val, _values, result)
1604
+ result = Statement::ArgumentList.new([])
1605
+ result
1606
+ end
1607
+ .,.,
1608
+
1609
+ module_eval(<<'.,.,', 'parser.racc', 145)
1610
+ def _reduce_33(val, _values, result)
1611
+ # self is a compulsory implicit argument for C methods.
1612
+ val[1] << Expression::ArgDeclaration.new(
1613
+ { dtype: 'object', variables: [ {ident: 'self' }] })
1614
+ result = Statement::ArgumentList.new(val[1])
1615
+
1616
+ result
1617
+ end
1618
+ .,.,
1619
+
1620
+ module_eval(<<'.,.,', 'parser.racc', 154)
1621
+ def _reduce_34(val, _values, result)
1622
+ add_dtype_to_lexer val[1]
1623
+ result = Statement::CStructOrUnionDef.new(val[0], val[1], val[3].flatten,
1624
+ location)
1625
+
1626
+ result
1627
+ end
1628
+ .,.,
1629
+
1630
+ module_eval(<<'.,.,', 'parser.racc', 160)
1631
+ def _reduce_35(val, _values, result)
1632
+ result = []
1633
+ result
1634
+ end
1635
+ .,.,
1636
+
1637
+ module_eval(<<'.,.,', 'parser.racc', 161)
1638
+ def _reduce_36(val, _values, result)
1639
+ result = [*val[0]]
1640
+ result
1641
+ end
1642
+ .,.,
1643
+
1644
+ module_eval(<<'.,.,', 'parser.racc', 162)
1645
+ def _reduce_37(val, _values, result)
1646
+ result = [*val[0], val[2]]
1647
+ result
1648
+ end
1649
+ .,.,
1650
+
1651
+ module_eval(<<'.,.,', 'parser.racc', 167)
1652
+ def _reduce_38(val, _values, result)
1653
+ result = variable_decl_nodes([{ dtype: val[0], variables: val[1] }])
1654
+
1655
+ result
1656
+ end
1657
+ .,.,
1658
+
1659
+ module_eval(<<'.,.,', 'parser.racc', 171)
1660
+ def _reduce_39(val, _values, result)
1661
+ result = [*val[0], val[2]]
1662
+ result
1663
+ end
1664
+ .,.,
1665
+
1666
+ module_eval(<<'.,.,', 'parser.racc', 172)
1667
+ def _reduce_40(val, _values, result)
1668
+ result = [val[0]]
1669
+ result
1670
+ end
1671
+ .,.,
1672
+
1673
+ module_eval(<<'.,.,', 'parser.racc', 176)
1674
+ def _reduce_41(val, _values, result)
1675
+ # TODO: take hash from aliased_type and turn into nodes.
1676
+ add_dtype_to_lexer val[1]
1677
+ result = Statement::Alias.new val[1], val[3], location
1678
+
1679
+ result
1680
+ end
1681
+ .,.,
1682
+
1683
+ # reduce 42 omitted
1684
+
1685
+ module_eval(<<'.,.,', 'parser.racc', 182)
1686
+ def _reduce_43(val, _values, result)
1687
+
1688
+ result
1689
+ end
1690
+ .,.,
1691
+
1692
+ module_eval(<<'.,.,', 'parser.racc', 187)
1693
+ def _reduce_44(val, _values, result)
1694
+ result = {
1695
+ dtype: val[0],
1696
+ variables: [
1697
+ {
1698
+ ptr_level: val[1],
1699
+ ident: ""
1700
+ }
1701
+ ]
1702
+ }
1703
+
1704
+ result
1705
+ end
1706
+ .,.,
1707
+
1708
+ module_eval(<<'.,.,', 'parser.racc', 199)
1709
+ def _reduce_45(val, _values, result)
1710
+ result = {
1711
+ dtype: "#{val[0]}#{val[1]}",
1712
+ variables: [
1713
+ {
1714
+ ptr_level: val[2],
1715
+ ident: ""
1716
+ }
1717
+ ]
1718
+ }
1719
+
1720
+ result
1721
+ end
1722
+ .,.,
1723
+
1724
+ module_eval(<<'.,.,', 'parser.racc', 211)
1725
+ def _reduce_46(val, _values, result)
1726
+ result = {
1727
+ dtype: val[0],
1728
+ variables: [
1729
+ {
1730
+ ptr_level: val[3],
1731
+ ident:{
1732
+ return_ptr_level: val[1],
1733
+ arg_list: val[6],
1734
+ name: val[4]
1735
+ }
1736
+ }
1737
+ ]
1738
+ }
1739
+
1740
+ result
1741
+ end
1742
+ .,.,
1743
+
1744
+ module_eval(<<'.,.,', 'parser.racc', 227)
1745
+ def _reduce_47(val, _values, result)
1746
+ result = nil
1747
+ result
1748
+ end
1749
+ .,.,
1750
+
1751
+ module_eval(<<'.,.,', 'parser.racc', 228)
1752
+ def _reduce_48(val, _values, result)
1753
+
1754
+ result
1755
+ end
1756
+ .,.,
1757
+
1758
+ module_eval(<<'.,.,', 'parser.racc', 231)
1759
+ def _reduce_49(val, _values, result)
1760
+ result = val[0]
1761
+ result
1762
+ end
1763
+ .,.,
1764
+
1765
+ module_eval(<<'.,.,', 'parser.racc', 232)
1766
+ def _reduce_50(val, _values, result)
1767
+ result = val[0]
1768
+ result
1769
+ end
1770
+ .,.,
1771
+
1772
+ module_eval(<<'.,.,', 'parser.racc', 237)
1773
+ def _reduce_51(val, _values, result)
1774
+ result = TopStatement::RubyMethodDef.new(
1775
+ val[2], val[3], val[4], singleton: val[1])
1776
+
1777
+ result
1778
+ end
1779
+ .,.,
1780
+
1781
+ module_eval(<<'.,.,', 'parser.racc', 244)
1782
+ def _reduce_52(val, _values, result)
1783
+ if val[4].empty? # since last arg of cfunc must be self.
1784
+ val[4] = Statement::ArgumentList.new(
1785
+ [
1786
+ Expression::ArgDeclaration.new(
1787
+ { dtype: 'object', variables: [ { ident: 'self' }] }
1788
+ )
1789
+ ]
1790
+ )
1791
+ end
1792
+ result = TopStatement::CFunctionDef.new(val[1], val[2], val[3],
1793
+ val[4], val[6])
1794
+
1795
+ result
1796
+ end
1797
+ .,.,
1798
+
1799
+ module_eval(<<'.,.,', 'parser.racc', 260)
1800
+ def _reduce_53(val, _values, result)
1801
+ result = {
1802
+ dtype: val[0],
1803
+ variables: [
1804
+ {
1805
+ ptr_level: val[1],
1806
+ ident: ""
1807
+ }
1808
+ ]
1809
+ }
1810
+
1811
+ result
1812
+ end
1813
+ .,.,
1814
+
1815
+ module_eval(<<'.,.,', 'parser.racc', 270)
1816
+ def _reduce_54(val, _values, result)
1817
+ result = { dtype: val[0] , variables: [val[1]] }
1818
+ result
1819
+ end
1820
+ .,.,
1821
+
1822
+ module_eval(<<'.,.,', 'parser.racc', 271)
1823
+ def _reduce_55(val, _values, result)
1824
+ result = { dtype: 'object', variables: [val[0]] }
1825
+ result
1826
+ end
1827
+ .,.,
1828
+
1829
+ module_eval(<<'.,.,', 'parser.racc', 274)
1830
+ def _reduce_56(val, _values, result)
1831
+ result = false
1832
+ result
1833
+ end
1834
+ .,.,
1835
+
1836
+ module_eval(<<'.,.,', 'parser.racc', 275)
1837
+ def _reduce_57(val, _values, result)
1838
+ result = true
1839
+ result
1840
+ end
1841
+ .,.,
1842
+
1843
+ module_eval(<<'.,.,', 'parser.racc', 278)
1844
+ def _reduce_58(val, _values, result)
1845
+ result = val[0]
1846
+ result
1847
+ end
1848
+ .,.,
1849
+
1850
+ module_eval(<<'.,.,', 'parser.racc', 281)
1851
+ def _reduce_59(val, _values, result)
1852
+ result = []
1853
+ result
1854
+ end
1855
+ .,.,
1856
+
1857
+ module_eval(<<'.,.,', 'parser.racc', 282)
1858
+ def _reduce_60(val, _values, result)
1859
+ result = [*val[0]]
1860
+ result
1861
+ end
1862
+ .,.,
1863
+
1864
+ module_eval(<<'.,.,', 'parser.racc', 283)
1865
+ def _reduce_61(val, _values, result)
1866
+ result = [*val[0], *val[2]]
1867
+ result
1868
+ end
1869
+ .,.,
1870
+
1871
+ module_eval(<<'.,.,', 'parser.racc', 287)
1872
+ def _reduce_62(val, _values, result)
1873
+ result = variable_decl_nodes val
1874
+ result
1875
+ end
1876
+ .,.,
1877
+
1878
+ module_eval(<<'.,.,', 'parser.racc', 288)
1879
+ def _reduce_63(val, _values, result)
1880
+ result = Statement::Return.new val[1], location
1881
+ result
1882
+ end
1883
+ .,.,
1884
+
1885
+ module_eval(<<'.,.,', 'parser.racc', 290)
1886
+ def _reduce_64(val, _values, result)
1887
+ result = Statement::Print.new val[2], location
1888
+ result
1889
+ end
1890
+ .,.,
1891
+
1892
+ module_eval(<<'.,.,', 'parser.racc', 293)
1893
+ def _reduce_65(val, _values, result)
1894
+ match = val[0]
1895
+ result = Statement::Assign.new match[:name], match[:value], location
1896
+
1897
+ result
1898
+ end
1899
+ .,.,
1900
+
1901
+ module_eval(<<'.,.,', 'parser.racc', 298)
1902
+ def _reduce_66(val, _values, result)
1903
+ result = Statement::IfBlock.new val[1], [*val[3]], val[4], location
1904
+
1905
+ result
1906
+ end
1907
+ .,.,
1908
+
1909
+ module_eval(<<'.,.,', 'parser.racc', 302)
1910
+ def _reduce_67(val, _values, result)
1911
+ set_location
1912
+ result = Statement::IfBlock.new val[2], [*val[0]], nil, location
1913
+
1914
+ result
1915
+ end
1916
+ .,.,
1917
+
1918
+ module_eval(<<'.,.,', 'parser.racc', 307)
1919
+ def _reduce_68(val, _values, result)
1920
+ result = Statement::For.new *val[1], val[3], location
1921
+
1922
+ result
1923
+ end
1924
+ .,.,
1925
+
1926
+ module_eval(<<'.,.,', 'parser.racc', 311)
1927
+ def _reduce_69(val, _values, result)
1928
+ result = Statement::While.new val[1], val[3], location
1929
+
1930
+ result
1931
+ end
1932
+ .,.,
1933
+
1934
+ module_eval(<<'.,.,', 'parser.racc', 313)
1935
+ def _reduce_70(val, _values, result)
1936
+
1937
+ result
1938
+ end
1939
+ .,.,
1940
+
1941
+ # reduce 71 omitted
1942
+
1943
+ # reduce 72 omitted
1944
+
1945
+ # reduce 73 omitted
1946
+
1947
+ module_eval(<<'.,.,', 'parser.racc', 317)
1948
+ def _reduce_74(val, _values, result)
1949
+ result = Statement::Expression.new(val[0], location)
1950
+ result
1951
+ end
1952
+ .,.,
1953
+
1954
+ module_eval(<<'.,.,', 'parser.racc', 320)
1955
+ def _reduce_75(val, _values, result)
1956
+ result = Statement::Raise.new(Statement::ActualArgList.new(val[2]))
1957
+
1958
+ result
1959
+ end
1960
+ .,.,
1961
+
1962
+ module_eval(<<'.,.,', 'parser.racc', 322)
1963
+ def _reduce_76(val, _values, result)
1964
+ result = Statement::Break.new(location)
1965
+ result
1966
+ end
1967
+ .,.,
1968
+
1969
+ module_eval(<<'.,.,', 'parser.racc', 325)
1970
+ def _reduce_77(val, _values, result)
1971
+ result = Statement::Yield.new(Statement::ActualArgList.new(val[2]))
1972
+
1973
+ result
1974
+ end
1975
+ .,.,
1976
+
1977
+ # reduce 78 omitted
1978
+
1979
+ module_eval(<<'.,.,', 'parser.racc', 332)
1980
+ def _reduce_79(val, _values, result)
1981
+ result = Statement::BeginBlock::Begin.new val[2], val[3], location
1982
+
1983
+ result
1984
+ end
1985
+ .,.,
1986
+
1987
+ module_eval(<<'.,.,', 'parser.racc', 338)
1988
+ def _reduce_80(val, _values, result)
1989
+ tails = []
1990
+ tails.concat(val[0]) if val[0]
1991
+ tails << val[1] if val[1]
1992
+ tails << val[2] if val[2]
1993
+
1994
+ result = tails
1995
+
1996
+ result
1997
+ end
1998
+ .,.,
1999
+
2000
+ module_eval(<<'.,.,', 'parser.racc', 347)
2001
+ def _reduce_81(val, _values, result)
2002
+ result = nil
2003
+ result
2004
+ end
2005
+ .,.,
2006
+
2007
+ module_eval(<<'.,.,', 'parser.racc', 348)
2008
+ def _reduce_82(val, _values, result)
2009
+ result = [val[0]]
2010
+ result
2011
+ end
2012
+ .,.,
2013
+
2014
+ module_eval(<<'.,.,', 'parser.racc', 349)
2015
+ def _reduce_83(val, _values, result)
2016
+ result = [*val[0], val[1]]
2017
+ result
2018
+ end
2019
+ .,.,
2020
+
2021
+ module_eval(<<'.,.,', 'parser.racc', 354)
2022
+ def _reduce_84(val, _values, result)
2023
+ err = Expression::Name.new(val[1])
2024
+ result = Statement::BeginBlock::Rescue.new err, nil, val[3] || [], location
2025
+
2026
+ result
2027
+ end
2028
+ .,.,
2029
+
2030
+ module_eval(<<'.,.,', 'parser.racc', 359)
2031
+ def _reduce_85(val, _values, result)
2032
+ result = nil
2033
+ result
2034
+ end
2035
+ .,.,
2036
+
2037
+ module_eval(<<'.,.,', 'parser.racc', 361)
2038
+ def _reduce_86(val, _values, result)
2039
+ result = Statement::BeginBlock::Else.new val[2] || [], location
2040
+ result
2041
+ end
2042
+ .,.,
2043
+
2044
+ module_eval(<<'.,.,', 'parser.racc', 364)
2045
+ def _reduce_87(val, _values, result)
2046
+ result = nil
2047
+ result
2048
+ end
2049
+ .,.,
2050
+
2051
+ module_eval(<<'.,.,', 'parser.racc', 366)
2052
+ def _reduce_88(val, _values, result)
2053
+ result = Statement::BeginBlock::Ensure.new val[2] || [], location
2054
+ result
2055
+ end
2056
+ .,.,
2057
+
2058
+ module_eval(<<'.,.,', 'parser.racc', 371)
2059
+ def _reduce_89(val, _values, result)
2060
+ val.flatten!
2061
+ add_dtype_to_lexer val[2]
2062
+ result = Statement::ForwardDecl.new val[1], val[2], location
2063
+
2064
+ result
2065
+ end
2066
+ .,.,
2067
+
2068
+ module_eval(<<'.,.,', 'parser.racc', 379)
2069
+ def _reduce_90(val, _values, result)
2070
+ # TODO: error if lvalue is a literal
2071
+ result = op_assign val
2072
+
2073
+ result
2074
+ end
2075
+ .,.,
2076
+
2077
+ module_eval(<<'.,.,', 'parser.racc', 384)
2078
+ def _reduce_91(val, _values, result)
2079
+ result = val[1]
2080
+ result
2081
+ end
2082
+ .,.,
2083
+
2084
+ # reduce 92 omitted
2085
+
2086
+ module_eval(<<'.,.,', 'parser.racc', 388)
2087
+ def _reduce_93(val, _values, result)
2088
+ result = val
2089
+ result
2090
+ end
2091
+ .,.,
2092
+
2093
+ module_eval(<<'.,.,', 'parser.racc', 389)
2094
+ def _reduce_94(val, _values, result)
2095
+ result = val
2096
+ result
2097
+ end
2098
+ .,.,
2099
+
2100
+ # reduce 95 omitted
2101
+
2102
+ # reduce 96 omitted
2103
+
2104
+ # reduce 97 omitted
2105
+
2106
+ # reduce 98 omitted
2107
+
2108
+ # reduce 99 omitted
2109
+
2110
+ # reduce 100 omitted
2111
+
2112
+ module_eval(<<'.,.,', 'parser.racc', 401)
2113
+ def _reduce_101(val, _values, result)
2114
+
2115
+ result
2116
+ end
2117
+ .,.,
2118
+
2119
+ module_eval(<<'.,.,', 'parser.racc', 402)
2120
+ def _reduce_102(val, _values, result)
2121
+
2122
+ result
2123
+ end
2124
+ .,.,
2125
+
2126
+ module_eval(<<'.,.,', 'parser.racc', 405)
2127
+ def _reduce_103(val, _values, result)
2128
+ result = Statement::IfBlock::Elsif.new val[1], [*val[3]], val[4], location
2129
+
2130
+ result
2131
+ end
2132
+ .,.,
2133
+
2134
+ module_eval(<<'.,.,', 'parser.racc', 409)
2135
+ def _reduce_104(val, _values, result)
2136
+ result = Statement::IfBlock::Else.new val[1], location
2137
+ result
2138
+ end
2139
+ .,.,
2140
+
2141
+ module_eval(<<'.,.,', 'parser.racc', 414)
2142
+ def _reduce_105(val, _values, result)
2143
+ result = {
2144
+ dtype: val[0],
2145
+ variables: val[1]
2146
+ }
2147
+
2148
+ result
2149
+ end
2150
+ .,.,
2151
+
2152
+ module_eval(<<'.,.,', 'parser.racc', 421)
2153
+ def _reduce_106(val, _values, result)
2154
+ result = [*val[0], val[2]]
2155
+ result
2156
+ end
2157
+ .,.,
2158
+
2159
+ module_eval(<<'.,.,', 'parser.racc', 422)
2160
+ def _reduce_107(val, _values, result)
2161
+ result = [*val[0], val[2]]
2162
+ result
2163
+ end
2164
+ .,.,
2165
+
2166
+ module_eval(<<'.,.,', 'parser.racc', 423)
2167
+ def _reduce_108(val, _values, result)
2168
+ result = [val[0]]
2169
+ result
2170
+ end
2171
+ .,.,
2172
+
2173
+ module_eval(<<'.,.,', 'parser.racc', 424)
2174
+ def _reduce_109(val, _values, result)
2175
+ result = [val[0]]
2176
+ result
2177
+ end
2178
+ .,.,
2179
+
2180
+ module_eval(<<'.,.,', 'parser.racc', 430)
2181
+ def _reduce_110(val, _values, result)
2182
+ result = {}
2183
+
2184
+ if val[5] # function (pointer) decl
2185
+ result[:ptr_level] = val[2]
2186
+ result[:ident] = {
2187
+ :return_ptr_level => val[0],
2188
+ :name => val[3],
2189
+ :arg_list => val[5]
2190
+ }
2191
+ else
2192
+ result[:ptr_level] = val[0].join val[2]
2193
+ result[:ident] = val[3]
2194
+ end
2195
+
2196
+ result
2197
+ end
2198
+ .,.,
2199
+
2200
+ module_eval(<<'.,.,', 'parser.racc', 446)
2201
+ def _reduce_111(val, _values, result)
2202
+ result = {}
2203
+
2204
+ if !val[2].empty?
2205
+ result[:ptr_level] = val[0]
2206
+ result[:ident] = {
2207
+ :name => val[1],
2208
+ :arg_list => val[2]
2209
+ }
2210
+ else
2211
+ result[:ptr_level] = val[0]
2212
+ result[:ident] = val[1]
2213
+ end
2214
+
2215
+ result
2216
+ end
2217
+ .,.,
2218
+
2219
+ # reduce 112 omitted
2220
+
2221
+ # reduce 113 omitted
2222
+
2223
+ module_eval(<<'.,.,', 'parser.racc', 465)
2224
+ def _reduce_114(val, _values, result)
2225
+ result = val[0]
2226
+ value = val[2]
2227
+
2228
+ value.c_array = true if value.is_a?(Expression::Literal::ArrayLit)
2229
+ result[:value] = value
2230
+
2231
+ result
2232
+ end
2233
+ .,.,
2234
+
2235
+ module_eval(<<'.,.,', 'parser.racc', 473)
2236
+ def _reduce_115(val, _values, result)
2237
+ result = nil
2238
+ result
2239
+ end
2240
+ .,.,
2241
+
2242
+ module_eval(<<'.,.,', 'parser.racc', 474)
2243
+ def _reduce_116(val, _values, result)
2244
+ result = val.join
2245
+ result
2246
+ end
2247
+ .,.,
2248
+
2249
+ module_eval(<<'.,.,', 'parser.racc', 477)
2250
+ def _reduce_117(val, _values, result)
2251
+ result = []
2252
+ result
2253
+ end
2254
+ .,.,
2255
+
2256
+ module_eval(<<'.,.,', 'parser.racc', 478)
2257
+ def _reduce_118(val, _values, result)
2258
+ result = [*val[0]]
2259
+ result
2260
+ end
2261
+ .,.,
2262
+
2263
+ module_eval(<<'.,.,', 'parser.racc', 479)
2264
+ def _reduce_119(val, _values, result)
2265
+ result = [*val[0], val[2]]
2266
+ result
2267
+ end
2268
+ .,.,
2269
+
2270
+ module_eval(<<'.,.,', 'parser.racc', 484)
2271
+ def _reduce_120(val, _values, result)
2272
+ result = {
2273
+ name: Expression::Name.new(val[0]),
2274
+ value: val[2]
2275
+ }
2276
+
2277
+ result
2278
+ end
2279
+ .,.,
2280
+
2281
+ module_eval(<<'.,.,', 'parser.racc', 489)
2282
+ def _reduce_121(val, _values, result)
2283
+ result = { name: val[0], value: val[2] }
2284
+ result
2285
+ end
2286
+ .,.,
2287
+
2288
+ module_eval(<<'.,.,', 'parser.racc', 492)
2289
+ def _reduce_122(val, _values, result)
2290
+ result = {
2291
+ name: Expression::CommandCall.new(val[0][0], val[0][1], []),
2292
+ value: val[2]
2293
+ }
2294
+
2295
+ result
2296
+ end
2297
+ .,.,
2298
+
2299
+ module_eval(<<'.,.,', 'parser.racc', 499)
2300
+ def _reduce_123(val, _values, result)
2301
+ result = Expression::Literal::Int.new val[0]
2302
+ result
2303
+ end
2304
+ .,.,
2305
+
2306
+ module_eval(<<'.,.,', 'parser.racc', 500)
2307
+ def _reduce_124(val, _values, result)
2308
+ result = Expression::Literal::Double.new val[0]
2309
+ result
2310
+ end
2311
+ .,.,
2312
+
2313
+ module_eval(<<'.,.,', 'parser.racc', 501)
2314
+ def _reduce_125(val, _values, result)
2315
+ result = Expression::Literal::Char.new val[0]
2316
+ result
2317
+ end
2318
+ .,.,
2319
+
2320
+ module_eval(<<'.,.,', 'parser.racc', 502)
2321
+ def _reduce_126(val, _values, result)
2322
+ result = Expression::Literal::StringLit.new val[0]
2323
+ result
2324
+ end
2325
+ .,.,
2326
+
2327
+ module_eval(<<'.,.,', 'parser.racc', 503)
2328
+ def _reduce_127(val, _values, result)
2329
+ result = Expression::Literal::True.new 'Qtrue'
2330
+ result
2331
+ end
2332
+ .,.,
2333
+
2334
+ module_eval(<<'.,.,', 'parser.racc', 504)
2335
+ def _reduce_128(val, _values, result)
2336
+ result = Expression::Literal::False.new 'Qfalse'
2337
+ result
2338
+ end
2339
+ .,.,
2340
+
2341
+ module_eval(<<'.,.,', 'parser.racc', 505)
2342
+ def _reduce_129(val, _values, result)
2343
+ result = Expression::Literal::Nil.new 'Qnil'
2344
+ result
2345
+ end
2346
+ .,.,
2347
+
2348
+ module_eval(<<'.,.,', 'parser.racc', 506)
2349
+ def _reduce_130(val, _values, result)
2350
+ result = Expression::Literal::RubySymbol.new val[0]
2351
+ result
2352
+ end
2353
+ .,.,
2354
+
2355
+ module_eval(<<'.,.,', 'parser.racc', 507)
2356
+ def _reduce_131(val, _values, result)
2357
+ result = Expression::Literal::CNull.new val[0]
2358
+ result
2359
+ end
2360
+ .,.,
2361
+
2362
+ module_eval(<<'.,.,', 'parser.racc', 509)
2363
+ def _reduce_132(val, _values, result)
2364
+ result = Expression::Literal::ArrayLit.new val[2]
2365
+ result
2366
+ end
2367
+ .,.,
2368
+
2369
+ module_eval(<<'.,.,', 'parser.racc', 511)
2370
+ def _reduce_133(val, _values, result)
2371
+ result = Expression::Literal::HashLit.new val[2]
2372
+ result
2373
+ end
2374
+ .,.,
2375
+
2376
+ module_eval(<<'.,.,', 'parser.racc', 514)
2377
+ def _reduce_134(val, _values, result)
2378
+ result = []
2379
+ result
2380
+ end
2381
+ .,.,
2382
+
2383
+ module_eval(<<'.,.,', 'parser.racc', 515)
2384
+ def _reduce_135(val, _values, result)
2385
+ result = [val[0]]
2386
+ result
2387
+ end
2388
+ .,.,
2389
+
2390
+ module_eval(<<'.,.,', 'parser.racc', 516)
2391
+ def _reduce_136(val, _values, result)
2392
+ result = [*val[0], val[3]]
2393
+ result
2394
+ end
2395
+ .,.,
2396
+
2397
+ module_eval(<<'.,.,', 'parser.racc', 519)
2398
+ def _reduce_137(val, _values, result)
2399
+ result = [val[0], val[2]]
2400
+ result
2401
+ end
2402
+ .,.,
2403
+
2404
+ # reduce 138 omitted
2405
+
2406
+ module_eval(<<'.,.,', 'parser.racc', 525)
2407
+ def _reduce_139(val, _values, result)
2408
+ result = "#{val[0]}#{val[1]}"
2409
+ result
2410
+ end
2411
+ .,.,
2412
+
2413
+ module_eval(<<'.,.,', 'parser.racc', 526)
2414
+ def _reduce_140(val, _values, result)
2415
+ result = "#{val[0]}#{val[1]}"
2416
+ result
2417
+ end
2418
+ .,.,
2419
+
2420
+ module_eval(<<'.,.,', 'parser.racc', 527)
2421
+ def _reduce_141(val, _values, result)
2422
+ result = val[0]
2423
+ result
2424
+ end
2425
+ .,.,
2426
+
2427
+ module_eval(<<'.,.,', 'parser.racc', 528)
2428
+ def _reduce_142(val, _values, result)
2429
+ result = "#{val[0]}#{val[1]}"
2430
+ result
2431
+ end
2432
+ .,.,
2433
+
2434
+ module_eval(<<'.,.,', 'parser.racc', 531)
2435
+ def _reduce_143(val, _values, result)
2436
+ result = Statement::ArgumentList.new([])
2437
+ result
2438
+ end
2439
+ .,.,
2440
+
2441
+ module_eval(<<'.,.,', 'parser.racc', 532)
2442
+ def _reduce_144(val, _values, result)
2443
+ result = Statement::ArgumentList.new val[1]
2444
+ result
2445
+ end
2446
+ .,.,
2447
+
2448
+ module_eval(<<'.,.,', 'parser.racc', 537)
2449
+ def _reduce_145(val, _values, result)
2450
+ result = [Expression::ArgDeclaration.new(val[0])]
2451
+
2452
+ result
2453
+ end
2454
+ .,.,
2455
+
2456
+ module_eval(<<'.,.,', 'parser.racc', 541)
2457
+ def _reduce_146(val, _values, result)
2458
+ result = [*val[0], Expression::ArgDeclaration.new(val[2])]
2459
+
2460
+ result
2461
+ end
2462
+ .,.,
2463
+
2464
+ module_eval(<<'.,.,', 'parser.racc', 547)
2465
+ def _reduce_147(val, _values, result)
2466
+ result = {
2467
+ dtype: val[0],
2468
+ variables: [
2469
+ {
2470
+ ident: val[1],
2471
+ value: val[2]
2472
+ }
2473
+ ]
2474
+ }
2475
+
2476
+ result
2477
+ end
2478
+ .,.,
2479
+
2480
+ module_eval(<<'.,.,', 'parser.racc', 559)
2481
+ def _reduce_148(val, _values, result)
2482
+ result = {
2483
+ dtype: 'object',
2484
+ variables: [
2485
+ {
2486
+ ident: val[0],
2487
+ value: val[1]
2488
+ }
2489
+ ]
2490
+ }
2491
+
2492
+ result
2493
+ end
2494
+ .,.,
2495
+
2496
+ module_eval(<<'.,.,', 'parser.racc', 571)
2497
+ def _reduce_149(val, _values, result)
2498
+ result = nil
2499
+ result
2500
+ end
2501
+ .,.,
2502
+
2503
+ module_eval(<<'.,.,', 'parser.racc', 572)
2504
+ def _reduce_150(val, _values, result)
2505
+ result = val[1]
2506
+ result
2507
+ end
2508
+ .,.,
2509
+
2510
+ module_eval(<<'.,.,', 'parser.racc', 575)
2511
+ def _reduce_151(val, _values, result)
2512
+
2513
+ result
2514
+ end
2515
+ .,.,
2516
+
2517
+ module_eval(<<'.,.,', 'parser.racc', 578)
2518
+ def _reduce_152(val, _values, result)
2519
+ val[1].typecast = val[0]
2520
+ result = val[1]
2521
+
2522
+ result
2523
+ end
2524
+ .,.,
2525
+
2526
+ module_eval(<<'.,.,', 'parser.racc', 581)
2527
+ def _reduce_153(val, _values, result)
2528
+ result = binary_op val
2529
+ result
2530
+ end
2531
+ .,.,
2532
+
2533
+ module_eval(<<'.,.,', 'parser.racc', 582)
2534
+ def _reduce_154(val, _values, result)
2535
+ result = binary_op val
2536
+ result
2537
+ end
2538
+ .,.,
2539
+
2540
+ module_eval(<<'.,.,', 'parser.racc', 585)
2541
+ def _reduce_155(val, _values, result)
2542
+ result = Expression::Typecast.new(val[1], val[2])
2543
+ result
2544
+ end
2545
+ .,.,
2546
+
2547
+ module_eval(<<'.,.,', 'parser.racc', 588)
2548
+ def _reduce_156(val, _values, result)
2549
+
2550
+ result
2551
+ end
2552
+ .,.,
2553
+
2554
+ module_eval(<<'.,.,', 'parser.racc', 589)
2555
+ def _reduce_157(val, _values, result)
2556
+
2557
+ result
2558
+ end
2559
+ .,.,
2560
+
2561
+ module_eval(<<'.,.,', 'parser.racc', 590)
2562
+ def _reduce_158(val, _values, result)
2563
+ result = unary_op val
2564
+ result
2565
+ end
2566
+ .,.,
2567
+
2568
+ module_eval(<<'.,.,', 'parser.racc', 591)
2569
+ def _reduce_159(val, _values, result)
2570
+ result = val[1]
2571
+ result
2572
+ end
2573
+ .,.,
2574
+
2575
+ module_eval(<<'.,.,', 'parser.racc', 594)
2576
+ def _reduce_160(val, _values, result)
2577
+ result = binary_op val
2578
+ result
2579
+ end
2580
+ .,.,
2581
+
2582
+ module_eval(<<'.,.,', 'parser.racc', 595)
2583
+ def _reduce_161(val, _values, result)
2584
+ result = binary_op val
2585
+ result
2586
+ end
2587
+ .,.,
2588
+
2589
+ module_eval(<<'.,.,', 'parser.racc', 596)
2590
+ def _reduce_162(val, _values, result)
2591
+ result = binary_op val
2592
+ result
2593
+ end
2594
+ .,.,
2595
+
2596
+ module_eval(<<'.,.,', 'parser.racc', 597)
2597
+ def _reduce_163(val, _values, result)
2598
+ result = binary_op val
2599
+ result
2600
+ end
2601
+ .,.,
2602
+
2603
+ module_eval(<<'.,.,', 'parser.racc', 598)
2604
+ def _reduce_164(val, _values, result)
2605
+ result = binary_op val
2606
+ result
2607
+ end
2608
+ .,.,
2609
+
2610
+ module_eval(<<'.,.,', 'parser.racc', 599)
2611
+ def _reduce_165(val, _values, result)
2612
+ result = binary_op val
2613
+ result
2614
+ end
2615
+ .,.,
2616
+
2617
+ module_eval(<<'.,.,', 'parser.racc', 600)
2618
+ def _reduce_166(val, _values, result)
2619
+ result = binary_op val
2620
+ result
2621
+ end
2622
+ .,.,
2623
+
2624
+ module_eval(<<'.,.,', 'parser.racc', 601)
2625
+ def _reduce_167(val, _values, result)
2626
+ result = binary_op val
2627
+ result
2628
+ end
2629
+ .,.,
2630
+
2631
+ module_eval(<<'.,.,', 'parser.racc', 602)
2632
+ def _reduce_168(val, _values, result)
2633
+ result = binary_op val
2634
+ result
2635
+ end
2636
+ .,.,
2637
+
2638
+ module_eval(<<'.,.,', 'parser.racc', 603)
2639
+ def _reduce_169(val, _values, result)
2640
+ result = binary_op val
2641
+ result
2642
+ end
2643
+ .,.,
2644
+
2645
+ module_eval(<<'.,.,', 'parser.racc', 604)
2646
+ def _reduce_170(val, _values, result)
2647
+ result = binary_op val
2648
+ result
2649
+ end
2650
+ .,.,
2651
+
2652
+ module_eval(<<'.,.,', 'parser.racc', 605)
2653
+ def _reduce_171(val, _values, result)
2654
+ result = unary_op val
2655
+ result
2656
+ end
2657
+ .,.,
2658
+
2659
+ module_eval(<<'.,.,', 'parser.racc', 606)
2660
+ def _reduce_172(val, _values, result)
2661
+ result = unary_op val
2662
+ result
2663
+ end
2664
+ .,.,
2665
+
2666
+ module_eval(<<'.,.,', 'parser.racc', 607)
2667
+ def _reduce_173(val, _values, result)
2668
+ result = unary_op val
2669
+ result
2670
+ end
2671
+ .,.,
2672
+
2673
+ module_eval(<<'.,.,', 'parser.racc', 608)
2674
+ def _reduce_174(val, _values, result)
2675
+ result = val[1]
2676
+ result
2677
+ end
2678
+ .,.,
2679
+
2680
+ module_eval(<<'.,.,', 'parser.racc', 609)
2681
+ def _reduce_175(val, _values, result)
2682
+
2683
+ result
2684
+ end
2685
+ .,.,
2686
+
2687
+ module_eval(<<'.,.,', 'parser.racc', 612)
2688
+ def _reduce_176(val, _values, result)
2689
+ result = binary_op val
2690
+ result
2691
+ end
2692
+ .,.,
2693
+
2694
+ module_eval(<<'.,.,', 'parser.racc', 613)
2695
+ def _reduce_177(val, _values, result)
2696
+ result = binary_op val
2697
+ result
2698
+ end
2699
+ .,.,
2700
+
2701
+ module_eval(<<'.,.,', 'parser.racc', 614)
2702
+ def _reduce_178(val, _values, result)
2703
+ result = binary_op val
2704
+ result
2705
+ end
2706
+ .,.,
2707
+
2708
+ module_eval(<<'.,.,', 'parser.racc', 615)
2709
+ def _reduce_179(val, _values, result)
2710
+ result = binary_op val
2711
+ result
2712
+ end
2713
+ .,.,
2714
+
2715
+ module_eval(<<'.,.,', 'parser.racc', 616)
2716
+ def _reduce_180(val, _values, result)
2717
+ result = binary_op val
2718
+ result
2719
+ end
2720
+ .,.,
2721
+
2722
+ module_eval(<<'.,.,', 'parser.racc', 617)
2723
+ def _reduce_181(val, _values, result)
2724
+ result = binary_op val
2725
+ result
2726
+ end
2727
+ .,.,
2728
+
2729
+ module_eval(<<'.,.,', 'parser.racc', 618)
2730
+ def _reduce_182(val, _values, result)
2731
+ result = val[1]
2732
+ result
2733
+ end
2734
+ .,.,
2735
+
2736
+ module_eval(<<'.,.,', 'parser.racc', 621)
2737
+ def _reduce_183(val, _values, result)
2738
+
2739
+ result
2740
+ end
2741
+ .,.,
2742
+
2743
+ module_eval(<<'.,.,', 'parser.racc', 622)
2744
+ def _reduce_184(val, _values, result)
2745
+
2746
+ result
2747
+ end
2748
+ .,.,
2749
+
2750
+ module_eval(<<'.,.,', 'parser.racc', 625)
2751
+ def _reduce_185(val, _values, result)
2752
+ args = val[1]
2753
+ result =
2754
+ if args.empty?
2755
+ Expression::Name.new val[0]
2756
+ else
2757
+ Expression::CommandCall.new nil, val[0], args
2758
+ end
2759
+
2760
+ result
2761
+ end
2762
+ .,.,
2763
+
2764
+ # reduce 186 omitted
2765
+
2766
+ module_eval(<<'.,.,', 'parser.racc', 636)
2767
+ def _reduce_187(val, _values, result)
2768
+ result = Expression::SizeOf.new(val[2], val[3])
2769
+
2770
+ result
2771
+ end
2772
+ .,.,
2773
+
2774
+ module_eval(<<'.,.,', 'parser.racc', 638)
2775
+ def _reduce_188(val, _values, result)
2776
+ result = Expression::BlockGiven.new
2777
+ result
2778
+ end
2779
+ .,.,
2780
+
2781
+ module_eval(<<'.,.,', 'parser.racc', 641)
2782
+ def _reduce_189(val, _values, result)
2783
+ result = Expression::ElementRef.new('data',
2784
+ Expression::Literal::Int.new('0'))
2785
+
2786
+ result
2787
+ end
2788
+ .,.,
2789
+
2790
+ module_eval(<<'.,.,', 'parser.racc', 648)
2791
+ def _reduce_190(val, _values, result)
2792
+ result = Expression::CommandCall.new val[0][0], val[0][1], val[1]
2793
+
2794
+ result
2795
+ end
2796
+ .,.,
2797
+
2798
+ module_eval(<<'.,.,', 'parser.racc', 654)
2799
+ def _reduce_191(val, _values, result)
2800
+ result = [val[0], val[2]]
2801
+
2802
+ result
2803
+ end
2804
+ .,.,
2805
+
2806
+ module_eval(<<'.,.,', 'parser.racc', 658)
2807
+ def _reduce_192(val, _values, result)
2808
+ result = [val[0], val[2]]
2809
+
2810
+ result
2811
+ end
2812
+ .,.,
2813
+
2814
+ module_eval(<<'.,.,', 'parser.racc', 662)
2815
+ def _reduce_193(val, _values, result)
2816
+ result = []
2817
+ result
2818
+ end
2819
+ .,.,
2820
+
2821
+ module_eval(<<'.,.,', 'parser.racc', 663)
2822
+ def _reduce_194(val, _values, result)
2823
+ result = val[1]
2824
+ result
2825
+ end
2826
+ .,.,
2827
+
2828
+ module_eval(<<'.,.,', 'parser.racc', 666)
2829
+ def _reduce_195(val, _values, result)
2830
+ result = []
2831
+ result
2832
+ end
2833
+ .,.,
2834
+
2835
+ module_eval(<<'.,.,', 'parser.racc', 667)
2836
+ def _reduce_196(val, _values, result)
2837
+ result = val
2838
+ result
2839
+ end
2840
+ .,.,
2841
+
2842
+ module_eval(<<'.,.,', 'parser.racc', 668)
2843
+ def _reduce_197(val, _values, result)
2844
+ result = [*val[0], val[2]]
2845
+ result
2846
+ end
2847
+ .,.,
2848
+
2849
+ module_eval(<<'.,.,', 'parser.racc', 673)
2850
+ def _reduce_198(val, _values, result)
2851
+ result = Expression::ElementRef.new val[0], val[2]
2852
+
2853
+ result
2854
+ end
2855
+ .,.,
2856
+
2857
+ # reduce 199 omitted
2858
+
2859
+ # reduce 200 omitted
2860
+
2861
+ # reduce 201 omitted
2862
+
2863
+ # reduce 202 omitted
2864
+
2865
+ # reduce 203 omitted
2866
+
2867
+ # reduce 204 omitted
2868
+
2869
+ # reduce 205 omitted
2870
+
2871
+ # reduce 206 omitted
2872
+
2873
+ # reduce 207 omitted
2874
+
2875
+ # reduce 208 omitted
2876
+
2877
+ # reduce 209 omitted
2878
+
2879
+ # reduce 210 omitted
2880
+
2881
+ # reduce 211 omitted
2882
+
2883
+ # reduce 212 omitted
2884
+
2885
+ # reduce 213 omitted
2886
+
2887
+ # reduce 214 omitted
2888
+
2889
+ # reduce 215 omitted
2890
+
2891
+ # reduce 216 omitted
2892
+
2893
+ # reduce 217 omitted
2894
+
2895
+ # reduce 218 omitted
2896
+
2897
+ # reduce 219 omitted
2898
+
2899
+ # reduce 220 omitted
2900
+
2901
+ # reduce 221 omitted
2902
+
2903
+ # reduce 222 omitted
2904
+
2905
+ # reduce 223 omitted
2906
+
2907
+ # reduce 224 omitted
2908
+
2909
+ module_eval(<<'.,.,', 'parser.racc', 684)
2910
+ def _reduce_225(val, _values, result)
2911
+ result = val[0]
2912
+
2913
+ result
2914
+ end
2915
+ .,.,
2916
+
2917
+ module_eval(<<'.,.,', 'parser.racc', 688)
2918
+ def _reduce_226(val, _values, result)
2919
+ result = nil
2920
+ result
2921
+ end
2922
+ .,.,
2923
+
2924
+ # reduce 227 omitted
2925
+
2926
+ module_eval(<<'.,.,', 'parser.racc', 692)
2927
+ def _reduce_228(val, _values, result)
2928
+
2929
+ result
2930
+ end
2931
+ .,.,
2932
+
2933
+ # reduce 229 omitted
2934
+
2935
+ module_eval(<<'.,.,', 'parser.racc', 696)
2936
+ def _reduce_230(val, _values, result)
2937
+
2938
+ result
2939
+ end
2940
+ .,.,
2941
+
2942
+ # reduce 231 omitted
2943
+
2944
+ module_eval(<<'.,.,', 'parser.racc', 700)
2945
+ def _reduce_232(val, _values, result)
2946
+
2947
+ result
2948
+ end
2949
+ .,.,
2950
+
2951
+ module_eval(<<'.,.,', 'parser.racc', 701)
2952
+ def _reduce_233(val, _values, result)
2953
+
2954
+ result
2955
+ end
2956
+ .,.,
2957
+
2958
+ module_eval(<<'.,.,', 'parser.racc', 704)
2959
+ def _reduce_234(val, _values, result)
2960
+
2961
+ result
2962
+ end
2963
+ .,.,
2964
+
2965
+ module_eval(<<'.,.,', 'parser.racc', 705)
2966
+ def _reduce_235(val, _values, result)
2967
+
2968
+ result
2969
+ end
2970
+ .,.,
2971
+
2972
+ module_eval(<<'.,.,', 'parser.racc', 708)
2973
+ def _reduce_236(val, _values, result)
2974
+
2975
+ result
2976
+ end
2977
+ .,.,
2978
+
2979
+ # reduce 237 omitted
2980
+
2981
+ module_eval(<<'.,.,', 'parser.racc', 712)
2982
+ def _reduce_238(val, _values, result)
2983
+
2984
+ result
2985
+ end
2986
+ .,.,
2987
+
2988
+ # reduce 239 omitted
2989
+
2990
+ # reduce 240 omitted
2991
+
2992
+ # reduce 241 omitted
2993
+
2994
+ module_eval(<<'.,.,', 'parser.racc', 720)
2995
+ def _reduce_242(val, _values, result)
2996
+ result = val[0]
242
2997
  result
243
2998
  end
244
2999
  .,.,