rubex 0.1.1 → 0.1.2

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