rubex 0.0.1 → 0.1

Sign up to get free protection for your applications and to get access to all the features.
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
  .,.,