rubex 0.1 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (197) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +3 -2
  3. data/.travis.yml +9 -1
  4. data/CONTRIBUTING.md +2 -2
  5. data/README.md +4 -1
  6. data/Rakefile +2 -2
  7. data/bin/rubex +4 -5
  8. data/lib/rubex.rb +4 -4
  9. data/lib/rubex/ast.rb +4 -1
  10. data/lib/rubex/ast/expression.rb +22 -1191
  11. data/lib/rubex/ast/expression/actual_arg_list.rb +40 -0
  12. data/lib/rubex/ast/expression/analysed_element_ref.rb +26 -0
  13. data/lib/rubex/ast/expression/analysed_element_ref/c_var_element_ref.rb +30 -0
  14. data/lib/rubex/ast/expression/analysed_element_ref/ruby_object_element_ref.rb +42 -0
  15. data/lib/rubex/ast/expression/arg_declaration.rb +43 -0
  16. data/lib/rubex/ast/expression/binary.rb +57 -0
  17. data/lib/rubex/ast/expression/binary/binary_boolean.rb +23 -0
  18. data/lib/rubex/ast/expression/binary/binary_boolean_special_op.rb +20 -0
  19. data/lib/rubex/ast/expression/binary/empty_classes.rb +62 -0
  20. data/lib/rubex/ast/expression/block_given.rb +15 -0
  21. data/lib/rubex/ast/expression/coerce_object.rb +15 -0
  22. data/lib/rubex/ast/expression/command_call.rb +74 -0
  23. data/lib/rubex/ast/expression/command_call/struct_or_union_member_call.rb +38 -0
  24. data/lib/rubex/ast/expression/element_ref.rb +64 -0
  25. data/lib/rubex/ast/expression/empty.rb +13 -0
  26. data/lib/rubex/ast/expression/from_ruby_object.rb +20 -0
  27. data/lib/rubex/ast/expression/func_ptr_arg_declaration.rb +21 -0
  28. data/lib/rubex/ast/expression/func_ptr_internal_arg_declaration.rb +13 -0
  29. data/lib/rubex/ast/expression/literal.rb +30 -0
  30. data/lib/rubex/ast/expression/literal/array_lit.rb +51 -0
  31. data/lib/rubex/ast/expression/literal/c_null.rb +15 -0
  32. data/lib/rubex/ast/expression/literal/char.rb +36 -0
  33. data/lib/rubex/ast/expression/literal/double.rb +14 -0
  34. data/lib/rubex/ast/expression/literal/false.rb +33 -0
  35. data/lib/rubex/ast/expression/literal/hash_lit.rb +45 -0
  36. data/lib/rubex/ast/expression/literal/int.rb +14 -0
  37. data/lib/rubex/ast/expression/literal/nil.rb +14 -0
  38. data/lib/rubex/ast/expression/literal/ruby_symbol.rb +22 -0
  39. data/lib/rubex/ast/expression/literal/string_lit.rb +45 -0
  40. data/lib/rubex/ast/expression/literal/true.rb +29 -0
  41. data/lib/rubex/ast/expression/method_call.rb +52 -0
  42. data/lib/rubex/ast/expression/method_call/c_function_call.rb +40 -0
  43. data/lib/rubex/ast/expression/method_call/ruby_method_call.rb +83 -0
  44. data/lib/rubex/ast/expression/name.rb +127 -0
  45. data/lib/rubex/ast/expression/ruby_constant.rb +25 -0
  46. data/lib/rubex/ast/expression/ruby_object_element_ref/ruby_array_element_ref.rb +20 -0
  47. data/lib/rubex/ast/expression/ruby_object_element_ref/ruby_hash_element_ref.rb +22 -0
  48. data/lib/rubex/ast/expression/self.rb +15 -0
  49. data/lib/rubex/ast/expression/size_of.rb +22 -0
  50. data/lib/rubex/ast/expression/struct_or_union_member_call/element_ref_member_call.rb +23 -0
  51. data/lib/rubex/ast/expression/to_ruby_object.rb +21 -0
  52. data/lib/rubex/ast/expression/typecast.rb +20 -0
  53. data/lib/rubex/ast/expression/typecast_to.rb +10 -0
  54. data/lib/rubex/ast/expression/unary.rb +37 -0
  55. data/lib/rubex/ast/expression/unary_base.rb +24 -0
  56. data/lib/rubex/ast/expression/unary_base/ampersand.rb +16 -0
  57. data/lib/rubex/ast/expression/unary_base/unary_bit_not.rb +18 -0
  58. data/lib/rubex/ast/expression/unary_base/unary_not.rb +18 -0
  59. data/lib/rubex/ast/expression/unary_base/unary_sub.rb +18 -0
  60. data/lib/rubex/ast/node.rb +111 -111
  61. data/lib/rubex/ast/statement.rb +9 -1160
  62. data/lib/rubex/ast/statement/alias.rb +43 -0
  63. data/lib/rubex/ast/statement/argument_list.rb +59 -0
  64. data/lib/rubex/ast/statement/assign.rb +35 -0
  65. data/lib/rubex/ast/statement/begin_block.rb +14 -0
  66. data/lib/rubex/ast/statement/begin_block/begin.rb +202 -0
  67. data/lib/rubex/ast/statement/begin_block/else.rb +21 -0
  68. data/lib/rubex/ast/statement/begin_block/ensure.rb +21 -0
  69. data/lib/rubex/ast/statement/begin_block/rescue.rb +34 -0
  70. data/lib/rubex/ast/statement/break.rb +18 -0
  71. data/lib/rubex/ast/statement/c_array_decl.rb +49 -0
  72. data/lib/rubex/ast/statement/c_base_type.rb +26 -0
  73. data/lib/rubex/ast/statement/c_function_decl.rb +30 -0
  74. data/lib/rubex/ast/statement/c_ptr_decl.rb +52 -0
  75. data/lib/rubex/ast/statement/c_ptr_decl/c_ptr_func_decl.rb +25 -0
  76. data/lib/rubex/ast/statement/c_struct_or_union_def.rb +49 -0
  77. data/lib/rubex/ast/statement/expression.rb +26 -0
  78. data/lib/rubex/ast/statement/for.rb +73 -0
  79. data/lib/rubex/ast/statement/forward_decl.rb +31 -0
  80. data/lib/rubex/ast/statement/if_block.rb +64 -0
  81. data/lib/rubex/ast/statement/if_block/else.rb +30 -0
  82. data/lib/rubex/ast/statement/if_block/elsif.rb +22 -0
  83. data/lib/rubex/ast/statement/if_block/helper.rb +38 -0
  84. data/lib/rubex/ast/statement/print.rb +49 -0
  85. data/lib/rubex/ast/statement/raise.rb +66 -0
  86. data/lib/rubex/ast/statement/return.rb +45 -0
  87. data/lib/rubex/ast/statement/var_decl.rb +49 -0
  88. data/lib/rubex/ast/statement/while.rb +34 -0
  89. data/lib/rubex/ast/statement/yield.rb +41 -0
  90. data/lib/rubex/ast/top_statement.rb +1 -815
  91. data/lib/rubex/ast/top_statement/c_bindings.rb +145 -0
  92. data/lib/rubex/ast/top_statement/klass.rb +125 -0
  93. data/lib/rubex/ast/top_statement/klass/attached_klass.rb +417 -0
  94. data/lib/rubex/ast/top_statement/method_def.rb +110 -0
  95. data/lib/rubex/ast/top_statement/method_def/c_function_def.rb +26 -0
  96. data/lib/rubex/ast/top_statement/method_def/ruby_method_def.rb +33 -0
  97. data/lib/rubex/cli.rb +26 -0
  98. data/lib/rubex/code_writer.rb +1 -1
  99. data/lib/rubex/compiler.rb +49 -28
  100. data/lib/rubex/compiler_config.rb +4 -2
  101. data/lib/rubex/constants.rb +71 -71
  102. data/lib/rubex/data_type.rb +9 -675
  103. data/lib/rubex/data_type/c_array.rb +33 -0
  104. data/lib/rubex/data_type/c_function.rb +23 -0
  105. data/lib/rubex/data_type/c_ptr.rb +71 -0
  106. data/lib/rubex/data_type/c_str.rb +23 -0
  107. data/lib/rubex/data_type/c_struct_or_union.rb +23 -0
  108. data/lib/rubex/data_type/char.rb +30 -0
  109. data/lib/rubex/data_type/f_32.rb +38 -0
  110. data/lib/rubex/data_type/f_64.rb +38 -0
  111. data/lib/rubex/data_type/int.rb +32 -0
  112. data/lib/rubex/data_type/int/c_boolean.rb +13 -0
  113. data/lib/rubex/data_type/int_16.rb +32 -0
  114. data/lib/rubex/data_type/int_32.rb +32 -0
  115. data/lib/rubex/data_type/int_64.rb +36 -0
  116. data/lib/rubex/data_type/int_8.rb +33 -0
  117. data/lib/rubex/data_type/l_int.rb +38 -0
  118. data/lib/rubex/data_type/l_l_int.rb +26 -0
  119. data/lib/rubex/data_type/ruby_method.rb +22 -0
  120. data/lib/rubex/data_type/ruby_object.rb +19 -0
  121. data/lib/rubex/data_type/ruby_object/boolean.rb +11 -0
  122. data/lib/rubex/data_type/ruby_object/boolean/false_type.rb +5 -0
  123. data/lib/rubex/data_type/ruby_object/boolean/true_type.rb +5 -0
  124. data/lib/rubex/data_type/ruby_object/nil_type.rb +9 -0
  125. data/lib/rubex/data_type/ruby_object/ruby_array.rb +10 -0
  126. data/lib/rubex/data_type/ruby_object/ruby_constant.rb +18 -0
  127. data/lib/rubex/data_type/ruby_object/ruby_constant/ruby_class.rb +18 -0
  128. data/lib/rubex/data_type/ruby_object/ruby_hash.rb +9 -0
  129. data/lib/rubex/data_type/ruby_object/ruby_string.rb +10 -0
  130. data/lib/rubex/data_type/ruby_object/ruby_symbol.rb +10 -0
  131. data/lib/rubex/data_type/type_def.rb +34 -0
  132. data/lib/rubex/data_type/u_char.rb +27 -0
  133. data/lib/rubex/data_type/u_int.rb +32 -0
  134. data/lib/rubex/data_type/u_int_16.rb +22 -0
  135. data/lib/rubex/data_type/u_int_32.rb +22 -0
  136. data/lib/rubex/data_type/u_int_64.rb +26 -0
  137. data/lib/rubex/data_type/u_int_8.rb +22 -0
  138. data/lib/rubex/data_type/u_l_int.rb +36 -0
  139. data/lib/rubex/data_type/u_l_int/size_t.rb +10 -0
  140. data/lib/rubex/data_type/u_l_l_int.rb +26 -0
  141. data/lib/rubex/data_type/void.rb +15 -0
  142. data/lib/rubex/data_type_helpers/float_helpers.rb +8 -0
  143. data/lib/rubex/data_type_helpers/helpers.rb +48 -0
  144. data/lib/rubex/data_type_helpers/int_helpers.rb +10 -0
  145. data/lib/rubex/data_type_helpers/u_int_helpers.rb +11 -0
  146. data/lib/rubex/helpers.rb +35 -118
  147. data/lib/rubex/helpers/node_type_methods.rb +9 -0
  148. data/lib/rubex/helpers/writers.rb +79 -0
  149. data/lib/rubex/parser.racc +83 -34
  150. data/lib/rubex/parser.racc.rb +233 -184
  151. data/lib/rubex/version.rb +2 -2
  152. data/rubex.gemspec +2 -0
  153. data/spec/basic_ruby_method_spec.rb +1 -1
  154. data/spec/binding_ptr_args_spec.rb +2 -2
  155. data/spec/bitwise_operators_spec.rb +1 -1
  156. data/spec/blocks_spec.rb +2 -2
  157. data/spec/c_bindings_spec.rb +1 -1
  158. data/spec/c_constants_spec.rb +1 -1
  159. data/spec/c_function_ptrs_spec.rb +1 -1
  160. data/spec/c_functions_spec.rb +2 -2
  161. data/spec/c_struct_interface_spec.rb +1 -1
  162. data/spec/call_by_reference_spec.rb +2 -2
  163. data/spec/class_methods_spec.rb +2 -2
  164. data/spec/class_spec.rb +4 -4
  165. data/spec/cli_spec.rb +43 -0
  166. data/spec/comments_spec.rb +2 -2
  167. data/spec/default_args_spec.rb +21 -23
  168. data/spec/error_handling_spec.rb +1 -1
  169. data/spec/examples_spec.rb +4 -4
  170. data/spec/expressions_spec.rb +1 -1
  171. data/spec/fixtures/cli/cli.rubex +3 -0
  172. data/spec/fixtures/examples/array_to_hash.rubex +1 -1
  173. data/spec/fixtures/examples/rcsv.rubex +10 -6
  174. data/spec/fixtures/loops/loops.rubex +1 -1
  175. data/spec/fixtures/ruby_strings/string_blank_bm.rb +7 -5
  176. data/spec/fixtures/struct/struct.rubex +7 -2
  177. data/spec/fixtures/temp_allocation/temp_allocation.rubex +8 -0
  178. data/spec/if_else_spec.rb +3 -7
  179. data/spec/implicit_lib_include_spec.rb +1 -1
  180. data/spec/init_ruby_objects_with_literal_syntax_spec.rb +1 -1
  181. data/spec/loops_spec.rb +1 -1
  182. data/spec/recursion_spec.rb +18 -21
  183. data/spec/ruby_constant_method_calls_spec.rb +4 -4
  184. data/spec/ruby_operators_spec.rb +1 -1
  185. data/spec/ruby_raise_spec.rb +1 -1
  186. data/spec/ruby_strings_spec.rb +3 -3
  187. data/spec/ruby_symbols_spec.rb +1 -1
  188. data/spec/ruby_types_spec.rb +2 -2
  189. data/spec/spec_helper.rb +42 -10
  190. data/spec/statement_expression_spec.rb +3 -3
  191. data/spec/static_array_spec.rb +3 -3
  192. data/spec/string_literals_spec.rb +2 -2
  193. data/spec/struct_spec.rb +4 -4
  194. data/spec/temp_allocation_spec.rb +35 -0
  195. data/spec/typecasting_spec.rb +2 -2
  196. data/spec/var_declarions_spec.rb +2 -2
  197. metadata +168 -3
@@ -8,13 +8,15 @@ require 'racc/parser.rb'
8
8
 
9
9
  require_relative 'lexer.rex.rb'
10
10
  require_relative 'ast.rb'
11
+ require_relative 'helpers.rb'
11
12
 
12
13
  include Rubex::AST
14
+ include Rubex::Helpers
13
15
 
14
16
  module Rubex
15
17
  class Parser < Racc::Parser
16
18
 
17
- module_eval(<<'...end parser.racc/module_eval...', 'parser.racc', 731)
19
+ module_eval(<<'...end parser.racc/module_eval...', 'parser.racc', 737)
18
20
 
19
21
  attr_reader :lineno, :location, :string
20
22
 
@@ -154,6 +156,10 @@ def check_for_primitive_dtype token
154
156
  token
155
157
  end
156
158
 
159
+ def construct_function_argument data
160
+ Rubex::Helpers.construct_function_argument data
161
+ end
162
+
157
163
  def binary_op val
158
164
  Expression::Binary.new val[0], val[1], val[2]
159
165
  end
@@ -164,7 +170,40 @@ end
164
170
 
165
171
  # expr, op_assign, expr => expr = expr op expr
166
172
  def op_assign val
167
- Statement::Assign.new(val[0], binary_op([val[0], val[1][0], val[2]]), location)
173
+ left = val[0]
174
+ right = val[2]
175
+ operator = val[1][0]
176
+
177
+ expression =
178
+ case operator
179
+ when '+'
180
+ Expression::BinaryAdd.new(left, operator, right)
181
+ when '-'
182
+ Expression::BinaryMinus.new(left, operator, right)
183
+ when '*'
184
+ Expression::BinaryMultiply.new(left, operator, right)
185
+ when '/'
186
+ Expression::BinaryDivide.new(left, operator, right)
187
+ when '**'
188
+ Expression::BinaryExpo.new(left, operator, right)
189
+ when '%'
190
+ Expression::BinaryMod.new(left, operator, right)
191
+ when '&'
192
+ Expression::BinaryAnd.new(left, operator, right)
193
+ when '|'
194
+ Expression::BinaryOr.new(left, operator, right)
195
+ when '<<'
196
+ Expression::BinaryLShift.new(left, operator, right)
197
+ when '>>'
198
+ Expression::BinaryRShift.new(left, operator, right)
199
+ when '^'
200
+ Expression::BinaryXor.new(left, operator, right)
201
+ else
202
+ raise "Cannot identify operator #{operator}"
203
+ end
204
+
205
+
206
+ Statement::Assign.new(left.dup, expression, location)
168
207
  end
169
208
 
170
209
  def variable_decl_nodes val
@@ -178,7 +217,7 @@ def variable_decl_nodes val
178
217
  statement =
179
218
  if ident.is_a?(Hash) # only if function pointer
180
219
  dtype = { dtype: type, ident: ident }
181
- Statement::CPtrDecl.new(dtype, ident[:name], var[:value], ptr_level,
220
+ Statement::CPtrFuncDecl.new(dtype, ident[:name], var[:value], ptr_level,
182
221
  location)
183
222
  else
184
223
  if ptr_level
@@ -200,6 +239,12 @@ end
200
239
  def add_dtype_to_lexer dtype
201
240
  @custom_dtypes[dtype] = true
202
241
  end
242
+
243
+ def force_into_func_ptr_internal_args data
244
+ data.map! do |arg|
245
+ Expression::FuncPtrInternalArgDeclaration.new(arg.data_hash)
246
+ end
247
+ end
203
248
  ...end parser.racc/module_eval...
204
249
  ##### State transition tables begin ###
205
250
 
@@ -1586,14 +1631,14 @@ module_eval(<<'.,.,', 'parser.racc', 134)
1586
1631
 
1587
1632
  module_eval(<<'.,.,', 'parser.racc', 135)
1588
1633
  def _reduce_30(val, _values, result)
1589
- result = [Expression::ArgDeclaration.new(val[0])]
1634
+ result = [construct_function_argument(val[0])]
1590
1635
  result
1591
1636
  end
1592
1637
  .,.,
1593
1638
 
1594
1639
  module_eval(<<'.,.,', 'parser.racc', 138)
1595
1640
  def _reduce_31(val, _values, result)
1596
- result = [*val[0], Expression::ArgDeclaration.new(val[2])]
1641
+ result = [*val[0], construct_function_argument(val[2])]
1597
1642
 
1598
1643
  result
1599
1644
  end
@@ -1609,7 +1654,7 @@ module_eval(<<'.,.,', 'parser.racc', 142)
1609
1654
  module_eval(<<'.,.,', 'parser.racc', 145)
1610
1655
  def _reduce_33(val, _values, result)
1611
1656
  # self is a compulsory implicit argument for C methods.
1612
- val[1] << Expression::ArgDeclaration.new(
1657
+ val[1] << construct_function_argument(
1613
1658
  { dtype: 'object', variables: [ {ident: 'self' }] })
1614
1659
  result = Statement::ArgumentList.new(val[1])
1615
1660
 
@@ -1723,7 +1768,9 @@ module_eval(<<'.,.,', 'parser.racc', 199)
1723
1768
 
1724
1769
  module_eval(<<'.,.,', 'parser.racc', 211)
1725
1770
  def _reduce_46(val, _values, result)
1726
- result = {
1771
+ force_into_func_ptr_internal_args(val[6])
1772
+
1773
+ result = {
1727
1774
  dtype: val[0],
1728
1775
  variables: [
1729
1776
  {
@@ -1741,35 +1788,35 @@ module_eval(<<'.,.,', 'parser.racc', 211)
1741
1788
  end
1742
1789
  .,.,
1743
1790
 
1744
- module_eval(<<'.,.,', 'parser.racc', 227)
1791
+ module_eval(<<'.,.,', 'parser.racc', 229)
1745
1792
  def _reduce_47(val, _values, result)
1746
1793
  result = nil
1747
1794
  result
1748
1795
  end
1749
1796
  .,.,
1750
1797
 
1751
- module_eval(<<'.,.,', 'parser.racc', 228)
1798
+ module_eval(<<'.,.,', 'parser.racc', 230)
1752
1799
  def _reduce_48(val, _values, result)
1753
1800
 
1754
1801
  result
1755
1802
  end
1756
1803
  .,.,
1757
1804
 
1758
- module_eval(<<'.,.,', 'parser.racc', 231)
1805
+ module_eval(<<'.,.,', 'parser.racc', 233)
1759
1806
  def _reduce_49(val, _values, result)
1760
1807
  result = val[0]
1761
1808
  result
1762
1809
  end
1763
1810
  .,.,
1764
1811
 
1765
- module_eval(<<'.,.,', 'parser.racc', 232)
1812
+ module_eval(<<'.,.,', 'parser.racc', 234)
1766
1813
  def _reduce_50(val, _values, result)
1767
1814
  result = val[0]
1768
1815
  result
1769
1816
  end
1770
1817
  .,.,
1771
1818
 
1772
- module_eval(<<'.,.,', 'parser.racc', 237)
1819
+ module_eval(<<'.,.,', 'parser.racc', 239)
1773
1820
  def _reduce_51(val, _values, result)
1774
1821
  result = TopStatement::RubyMethodDef.new(
1775
1822
  val[2], val[3], val[4], singleton: val[1])
@@ -1778,12 +1825,12 @@ module_eval(<<'.,.,', 'parser.racc', 237)
1778
1825
  end
1779
1826
  .,.,
1780
1827
 
1781
- module_eval(<<'.,.,', 'parser.racc', 244)
1828
+ module_eval(<<'.,.,', 'parser.racc', 246)
1782
1829
  def _reduce_52(val, _values, result)
1783
1830
  if val[4].empty? # since last arg of cfunc must be self.
1784
1831
  val[4] = Statement::ArgumentList.new(
1785
1832
  [
1786
- Expression::ArgDeclaration.new(
1833
+ construct_function_argument(
1787
1834
  { dtype: 'object', variables: [ { ident: 'self' }] }
1788
1835
  )
1789
1836
  ]
@@ -1796,7 +1843,7 @@ module_eval(<<'.,.,', 'parser.racc', 244)
1796
1843
  end
1797
1844
  .,.,
1798
1845
 
1799
- module_eval(<<'.,.,', 'parser.racc', 260)
1846
+ module_eval(<<'.,.,', 'parser.racc', 262)
1800
1847
  def _reduce_53(val, _values, result)
1801
1848
  result = {
1802
1849
  dtype: val[0],
@@ -1812,84 +1859,84 @@ module_eval(<<'.,.,', 'parser.racc', 260)
1812
1859
  end
1813
1860
  .,.,
1814
1861
 
1815
- module_eval(<<'.,.,', 'parser.racc', 270)
1862
+ module_eval(<<'.,.,', 'parser.racc', 272)
1816
1863
  def _reduce_54(val, _values, result)
1817
1864
  result = { dtype: val[0] , variables: [val[1]] }
1818
1865
  result
1819
1866
  end
1820
1867
  .,.,
1821
1868
 
1822
- module_eval(<<'.,.,', 'parser.racc', 271)
1869
+ module_eval(<<'.,.,', 'parser.racc', 273)
1823
1870
  def _reduce_55(val, _values, result)
1824
1871
  result = { dtype: 'object', variables: [val[0]] }
1825
1872
  result
1826
1873
  end
1827
1874
  .,.,
1828
1875
 
1829
- module_eval(<<'.,.,', 'parser.racc', 274)
1876
+ module_eval(<<'.,.,', 'parser.racc', 276)
1830
1877
  def _reduce_56(val, _values, result)
1831
1878
  result = false
1832
1879
  result
1833
1880
  end
1834
1881
  .,.,
1835
1882
 
1836
- module_eval(<<'.,.,', 'parser.racc', 275)
1883
+ module_eval(<<'.,.,', 'parser.racc', 277)
1837
1884
  def _reduce_57(val, _values, result)
1838
1885
  result = true
1839
1886
  result
1840
1887
  end
1841
1888
  .,.,
1842
1889
 
1843
- module_eval(<<'.,.,', 'parser.racc', 278)
1890
+ module_eval(<<'.,.,', 'parser.racc', 280)
1844
1891
  def _reduce_58(val, _values, result)
1845
1892
  result = val[0]
1846
1893
  result
1847
1894
  end
1848
1895
  .,.,
1849
1896
 
1850
- module_eval(<<'.,.,', 'parser.racc', 281)
1897
+ module_eval(<<'.,.,', 'parser.racc', 283)
1851
1898
  def _reduce_59(val, _values, result)
1852
1899
  result = []
1853
1900
  result
1854
1901
  end
1855
1902
  .,.,
1856
1903
 
1857
- module_eval(<<'.,.,', 'parser.racc', 282)
1904
+ module_eval(<<'.,.,', 'parser.racc', 284)
1858
1905
  def _reduce_60(val, _values, result)
1859
1906
  result = [*val[0]]
1860
1907
  result
1861
1908
  end
1862
1909
  .,.,
1863
1910
 
1864
- module_eval(<<'.,.,', 'parser.racc', 283)
1911
+ module_eval(<<'.,.,', 'parser.racc', 285)
1865
1912
  def _reduce_61(val, _values, result)
1866
1913
  result = [*val[0], *val[2]]
1867
1914
  result
1868
1915
  end
1869
1916
  .,.,
1870
1917
 
1871
- module_eval(<<'.,.,', 'parser.racc', 287)
1918
+ module_eval(<<'.,.,', 'parser.racc', 289)
1872
1919
  def _reduce_62(val, _values, result)
1873
1920
  result = variable_decl_nodes val
1874
1921
  result
1875
1922
  end
1876
1923
  .,.,
1877
1924
 
1878
- module_eval(<<'.,.,', 'parser.racc', 288)
1925
+ module_eval(<<'.,.,', 'parser.racc', 290)
1879
1926
  def _reduce_63(val, _values, result)
1880
1927
  result = Statement::Return.new val[1], location
1881
1928
  result
1882
1929
  end
1883
1930
  .,.,
1884
1931
 
1885
- module_eval(<<'.,.,', 'parser.racc', 290)
1932
+ module_eval(<<'.,.,', 'parser.racc', 292)
1886
1933
  def _reduce_64(val, _values, result)
1887
1934
  result = Statement::Print.new val[2], location
1888
1935
  result
1889
1936
  end
1890
1937
  .,.,
1891
1938
 
1892
- module_eval(<<'.,.,', 'parser.racc', 293)
1939
+ module_eval(<<'.,.,', 'parser.racc', 295)
1893
1940
  def _reduce_65(val, _values, result)
1894
1941
  match = val[0]
1895
1942
  result = Statement::Assign.new match[:name], match[:value], location
@@ -1898,7 +1945,7 @@ module_eval(<<'.,.,', 'parser.racc', 293)
1898
1945
  end
1899
1946
  .,.,
1900
1947
 
1901
- module_eval(<<'.,.,', 'parser.racc', 298)
1948
+ module_eval(<<'.,.,', 'parser.racc', 300)
1902
1949
  def _reduce_66(val, _values, result)
1903
1950
  result = Statement::IfBlock.new val[1], [*val[3]], val[4], location
1904
1951
 
@@ -1906,7 +1953,7 @@ module_eval(<<'.,.,', 'parser.racc', 298)
1906
1953
  end
1907
1954
  .,.,
1908
1955
 
1909
- module_eval(<<'.,.,', 'parser.racc', 302)
1956
+ module_eval(<<'.,.,', 'parser.racc', 304)
1910
1957
  def _reduce_67(val, _values, result)
1911
1958
  set_location
1912
1959
  result = Statement::IfBlock.new val[2], [*val[0]], nil, location
@@ -1915,7 +1962,7 @@ module_eval(<<'.,.,', 'parser.racc', 302)
1915
1962
  end
1916
1963
  .,.,
1917
1964
 
1918
- module_eval(<<'.,.,', 'parser.racc', 307)
1965
+ module_eval(<<'.,.,', 'parser.racc', 309)
1919
1966
  def _reduce_68(val, _values, result)
1920
1967
  result = Statement::For.new *val[1], val[3], location
1921
1968
 
@@ -1923,7 +1970,7 @@ module_eval(<<'.,.,', 'parser.racc', 307)
1923
1970
  end
1924
1971
  .,.,
1925
1972
 
1926
- module_eval(<<'.,.,', 'parser.racc', 311)
1973
+ module_eval(<<'.,.,', 'parser.racc', 313)
1927
1974
  def _reduce_69(val, _values, result)
1928
1975
  result = Statement::While.new val[1], val[3], location
1929
1976
 
@@ -1931,9 +1978,9 @@ module_eval(<<'.,.,', 'parser.racc', 311)
1931
1978
  end
1932
1979
  .,.,
1933
1980
 
1934
- module_eval(<<'.,.,', 'parser.racc', 313)
1981
+ module_eval(<<'.,.,', 'parser.racc', 315)
1935
1982
  def _reduce_70(val, _values, result)
1936
-
1983
+ result = val[0]
1937
1984
  result
1938
1985
  end
1939
1986
  .,.,
@@ -1944,31 +1991,31 @@ module_eval(<<'.,.,', 'parser.racc', 313)
1944
1991
 
1945
1992
  # reduce 73 omitted
1946
1993
 
1947
- module_eval(<<'.,.,', 'parser.racc', 317)
1994
+ module_eval(<<'.,.,', 'parser.racc', 319)
1948
1995
  def _reduce_74(val, _values, result)
1949
1996
  result = Statement::Expression.new(val[0], location)
1950
1997
  result
1951
1998
  end
1952
1999
  .,.,
1953
2000
 
1954
- module_eval(<<'.,.,', 'parser.racc', 320)
2001
+ module_eval(<<'.,.,', 'parser.racc', 322)
1955
2002
  def _reduce_75(val, _values, result)
1956
- result = Statement::Raise.new(Statement::ActualArgList.new(val[2]))
2003
+ result = Statement::Raise.new(Expression::ActualArgList.new(val[2]))
1957
2004
 
1958
2005
  result
1959
2006
  end
1960
2007
  .,.,
1961
2008
 
1962
- module_eval(<<'.,.,', 'parser.racc', 322)
2009
+ module_eval(<<'.,.,', 'parser.racc', 324)
1963
2010
  def _reduce_76(val, _values, result)
1964
2011
  result = Statement::Break.new(location)
1965
2012
  result
1966
2013
  end
1967
2014
  .,.,
1968
2015
 
1969
- module_eval(<<'.,.,', 'parser.racc', 325)
2016
+ module_eval(<<'.,.,', 'parser.racc', 327)
1970
2017
  def _reduce_77(val, _values, result)
1971
- result = Statement::Yield.new(Statement::ActualArgList.new(val[2]))
2018
+ result = Statement::Yield.new(Expression::ActualArgList.new(val[2]))
1972
2019
 
1973
2020
  result
1974
2021
  end
@@ -1976,7 +2023,7 @@ module_eval(<<'.,.,', 'parser.racc', 325)
1976
2023
 
1977
2024
  # reduce 78 omitted
1978
2025
 
1979
- module_eval(<<'.,.,', 'parser.racc', 332)
2026
+ module_eval(<<'.,.,', 'parser.racc', 334)
1980
2027
  def _reduce_79(val, _values, result)
1981
2028
  result = Statement::BeginBlock::Begin.new val[2], val[3], location
1982
2029
 
@@ -1984,7 +2031,7 @@ module_eval(<<'.,.,', 'parser.racc', 332)
1984
2031
  end
1985
2032
  .,.,
1986
2033
 
1987
- module_eval(<<'.,.,', 'parser.racc', 338)
2034
+ module_eval(<<'.,.,', 'parser.racc', 340)
1988
2035
  def _reduce_80(val, _values, result)
1989
2036
  tails = []
1990
2037
  tails.concat(val[0]) if val[0]
@@ -1997,28 +2044,28 @@ module_eval(<<'.,.,', 'parser.racc', 338)
1997
2044
  end
1998
2045
  .,.,
1999
2046
 
2000
- module_eval(<<'.,.,', 'parser.racc', 347)
2047
+ module_eval(<<'.,.,', 'parser.racc', 349)
2001
2048
  def _reduce_81(val, _values, result)
2002
2049
  result = nil
2003
2050
  result
2004
2051
  end
2005
2052
  .,.,
2006
2053
 
2007
- module_eval(<<'.,.,', 'parser.racc', 348)
2054
+ module_eval(<<'.,.,', 'parser.racc', 350)
2008
2055
  def _reduce_82(val, _values, result)
2009
2056
  result = [val[0]]
2010
2057
  result
2011
2058
  end
2012
2059
  .,.,
2013
2060
 
2014
- module_eval(<<'.,.,', 'parser.racc', 349)
2061
+ module_eval(<<'.,.,', 'parser.racc', 351)
2015
2062
  def _reduce_83(val, _values, result)
2016
2063
  result = [*val[0], val[1]]
2017
2064
  result
2018
2065
  end
2019
2066
  .,.,
2020
2067
 
2021
- module_eval(<<'.,.,', 'parser.racc', 354)
2068
+ module_eval(<<'.,.,', 'parser.racc', 356)
2022
2069
  def _reduce_84(val, _values, result)
2023
2070
  err = Expression::Name.new(val[1])
2024
2071
  result = Statement::BeginBlock::Rescue.new err, nil, val[3] || [], location
@@ -2027,35 +2074,35 @@ module_eval(<<'.,.,', 'parser.racc', 354)
2027
2074
  end
2028
2075
  .,.,
2029
2076
 
2030
- module_eval(<<'.,.,', 'parser.racc', 359)
2077
+ module_eval(<<'.,.,', 'parser.racc', 361)
2031
2078
  def _reduce_85(val, _values, result)
2032
2079
  result = nil
2033
2080
  result
2034
2081
  end
2035
2082
  .,.,
2036
2083
 
2037
- module_eval(<<'.,.,', 'parser.racc', 361)
2084
+ module_eval(<<'.,.,', 'parser.racc', 363)
2038
2085
  def _reduce_86(val, _values, result)
2039
2086
  result = Statement::BeginBlock::Else.new val[2] || [], location
2040
2087
  result
2041
2088
  end
2042
2089
  .,.,
2043
2090
 
2044
- module_eval(<<'.,.,', 'parser.racc', 364)
2091
+ module_eval(<<'.,.,', 'parser.racc', 366)
2045
2092
  def _reduce_87(val, _values, result)
2046
2093
  result = nil
2047
2094
  result
2048
2095
  end
2049
2096
  .,.,
2050
2097
 
2051
- module_eval(<<'.,.,', 'parser.racc', 366)
2098
+ module_eval(<<'.,.,', 'parser.racc', 368)
2052
2099
  def _reduce_88(val, _values, result)
2053
2100
  result = Statement::BeginBlock::Ensure.new val[2] || [], location
2054
2101
  result
2055
2102
  end
2056
2103
  .,.,
2057
2104
 
2058
- module_eval(<<'.,.,', 'parser.racc', 371)
2105
+ module_eval(<<'.,.,', 'parser.racc', 373)
2059
2106
  def _reduce_89(val, _values, result)
2060
2107
  val.flatten!
2061
2108
  add_dtype_to_lexer val[2]
@@ -2065,7 +2112,7 @@ module_eval(<<'.,.,', 'parser.racc', 371)
2065
2112
  end
2066
2113
  .,.,
2067
2114
 
2068
- module_eval(<<'.,.,', 'parser.racc', 379)
2115
+ module_eval(<<'.,.,', 'parser.racc', 381)
2069
2116
  def _reduce_90(val, _values, result)
2070
2117
  # TODO: error if lvalue is a literal
2071
2118
  result = op_assign val
@@ -2074,7 +2121,7 @@ module_eval(<<'.,.,', 'parser.racc', 379)
2074
2121
  end
2075
2122
  .,.,
2076
2123
 
2077
- module_eval(<<'.,.,', 'parser.racc', 384)
2124
+ module_eval(<<'.,.,', 'parser.racc', 386)
2078
2125
  def _reduce_91(val, _values, result)
2079
2126
  result = val[1]
2080
2127
  result
@@ -2083,14 +2130,14 @@ module_eval(<<'.,.,', 'parser.racc', 384)
2083
2130
 
2084
2131
  # reduce 92 omitted
2085
2132
 
2086
- module_eval(<<'.,.,', 'parser.racc', 388)
2133
+ module_eval(<<'.,.,', 'parser.racc', 390)
2087
2134
  def _reduce_93(val, _values, result)
2088
2135
  result = val
2089
2136
  result
2090
2137
  end
2091
2138
  .,.,
2092
2139
 
2093
- module_eval(<<'.,.,', 'parser.racc', 389)
2140
+ module_eval(<<'.,.,', 'parser.racc', 391)
2094
2141
  def _reduce_94(val, _values, result)
2095
2142
  result = val
2096
2143
  result
@@ -2109,21 +2156,21 @@ module_eval(<<'.,.,', 'parser.racc', 389)
2109
2156
 
2110
2157
  # reduce 100 omitted
2111
2158
 
2112
- module_eval(<<'.,.,', 'parser.racc', 401)
2159
+ module_eval(<<'.,.,', 'parser.racc', 403)
2113
2160
  def _reduce_101(val, _values, result)
2114
2161
 
2115
2162
  result
2116
2163
  end
2117
2164
  .,.,
2118
2165
 
2119
- module_eval(<<'.,.,', 'parser.racc', 402)
2166
+ module_eval(<<'.,.,', 'parser.racc', 404)
2120
2167
  def _reduce_102(val, _values, result)
2121
2168
 
2122
2169
  result
2123
2170
  end
2124
2171
  .,.,
2125
2172
 
2126
- module_eval(<<'.,.,', 'parser.racc', 405)
2173
+ module_eval(<<'.,.,', 'parser.racc', 407)
2127
2174
  def _reduce_103(val, _values, result)
2128
2175
  result = Statement::IfBlock::Elsif.new val[1], [*val[3]], val[4], location
2129
2176
 
@@ -2131,14 +2178,14 @@ module_eval(<<'.,.,', 'parser.racc', 405)
2131
2178
  end
2132
2179
  .,.,
2133
2180
 
2134
- module_eval(<<'.,.,', 'parser.racc', 409)
2181
+ module_eval(<<'.,.,', 'parser.racc', 411)
2135
2182
  def _reduce_104(val, _values, result)
2136
2183
  result = Statement::IfBlock::Else.new val[1], location
2137
2184
  result
2138
2185
  end
2139
2186
  .,.,
2140
2187
 
2141
- module_eval(<<'.,.,', 'parser.racc', 414)
2188
+ module_eval(<<'.,.,', 'parser.racc', 416)
2142
2189
  def _reduce_105(val, _values, result)
2143
2190
  result = {
2144
2191
  dtype: val[0],
@@ -2149,39 +2196,40 @@ module_eval(<<'.,.,', 'parser.racc', 414)
2149
2196
  end
2150
2197
  .,.,
2151
2198
 
2152
- module_eval(<<'.,.,', 'parser.racc', 421)
2199
+ module_eval(<<'.,.,', 'parser.racc', 423)
2153
2200
  def _reduce_106(val, _values, result)
2154
2201
  result = [*val[0], val[2]]
2155
2202
  result
2156
2203
  end
2157
2204
  .,.,
2158
2205
 
2159
- module_eval(<<'.,.,', 'parser.racc', 422)
2206
+ module_eval(<<'.,.,', 'parser.racc', 424)
2160
2207
  def _reduce_107(val, _values, result)
2161
2208
  result = [*val[0], val[2]]
2162
2209
  result
2163
2210
  end
2164
2211
  .,.,
2165
2212
 
2166
- module_eval(<<'.,.,', 'parser.racc', 423)
2213
+ module_eval(<<'.,.,', 'parser.racc', 425)
2167
2214
  def _reduce_108(val, _values, result)
2168
2215
  result = [val[0]]
2169
2216
  result
2170
2217
  end
2171
2218
  .,.,
2172
2219
 
2173
- module_eval(<<'.,.,', 'parser.racc', 424)
2220
+ module_eval(<<'.,.,', 'parser.racc', 426)
2174
2221
  def _reduce_109(val, _values, result)
2175
2222
  result = [val[0]]
2176
2223
  result
2177
2224
  end
2178
2225
  .,.,
2179
2226
 
2180
- module_eval(<<'.,.,', 'parser.racc', 430)
2227
+ module_eval(<<'.,.,', 'parser.racc', 432)
2181
2228
  def _reduce_110(val, _values, result)
2182
2229
  result = {}
2183
2230
 
2184
2231
  if val[5] # function (pointer) decl
2232
+ force_into_func_ptr_internal_args(val[5])
2185
2233
  result[:ptr_level] = val[2]
2186
2234
  result[:ident] = {
2187
2235
  :return_ptr_level => val[0],
@@ -2197,11 +2245,12 @@ module_eval(<<'.,.,', 'parser.racc', 430)
2197
2245
  end
2198
2246
  .,.,
2199
2247
 
2200
- module_eval(<<'.,.,', 'parser.racc', 446)
2248
+ module_eval(<<'.,.,', 'parser.racc', 449)
2201
2249
  def _reduce_111(val, _values, result)
2202
2250
  result = {}
2203
2251
 
2204
- if !val[2].empty?
2252
+ if !val[2].empty? # function pointer
2253
+ force_into_func_ptr_internal_args(val[5])
2205
2254
  result[:ptr_level] = val[0]
2206
2255
  result[:ident] = {
2207
2256
  :name => val[1],
@@ -2220,7 +2269,7 @@ module_eval(<<'.,.,', 'parser.racc', 446)
2220
2269
 
2221
2270
  # reduce 113 omitted
2222
2271
 
2223
- module_eval(<<'.,.,', 'parser.racc', 465)
2272
+ module_eval(<<'.,.,', 'parser.racc', 469)
2224
2273
  def _reduce_114(val, _values, result)
2225
2274
  result = val[0]
2226
2275
  value = val[2]
@@ -2232,42 +2281,42 @@ module_eval(<<'.,.,', 'parser.racc', 465)
2232
2281
  end
2233
2282
  .,.,
2234
2283
 
2235
- module_eval(<<'.,.,', 'parser.racc', 473)
2284
+ module_eval(<<'.,.,', 'parser.racc', 477)
2236
2285
  def _reduce_115(val, _values, result)
2237
2286
  result = nil
2238
2287
  result
2239
2288
  end
2240
2289
  .,.,
2241
2290
 
2242
- module_eval(<<'.,.,', 'parser.racc', 474)
2291
+ module_eval(<<'.,.,', 'parser.racc', 478)
2243
2292
  def _reduce_116(val, _values, result)
2244
2293
  result = val.join
2245
2294
  result
2246
2295
  end
2247
2296
  .,.,
2248
2297
 
2249
- module_eval(<<'.,.,', 'parser.racc', 477)
2298
+ module_eval(<<'.,.,', 'parser.racc', 481)
2250
2299
  def _reduce_117(val, _values, result)
2251
2300
  result = []
2252
2301
  result
2253
2302
  end
2254
2303
  .,.,
2255
2304
 
2256
- module_eval(<<'.,.,', 'parser.racc', 478)
2305
+ module_eval(<<'.,.,', 'parser.racc', 482)
2257
2306
  def _reduce_118(val, _values, result)
2258
2307
  result = [*val[0]]
2259
2308
  result
2260
2309
  end
2261
2310
  .,.,
2262
2311
 
2263
- module_eval(<<'.,.,', 'parser.racc', 479)
2312
+ module_eval(<<'.,.,', 'parser.racc', 483)
2264
2313
  def _reduce_119(val, _values, result)
2265
2314
  result = [*val[0], val[2]]
2266
2315
  result
2267
2316
  end
2268
2317
  .,.,
2269
2318
 
2270
- module_eval(<<'.,.,', 'parser.racc', 484)
2319
+ module_eval(<<'.,.,', 'parser.racc', 488)
2271
2320
  def _reduce_120(val, _values, result)
2272
2321
  result = {
2273
2322
  name: Expression::Name.new(val[0]),
@@ -2278,17 +2327,17 @@ module_eval(<<'.,.,', 'parser.racc', 484)
2278
2327
  end
2279
2328
  .,.,
2280
2329
 
2281
- module_eval(<<'.,.,', 'parser.racc', 489)
2330
+ module_eval(<<'.,.,', 'parser.racc', 493)
2282
2331
  def _reduce_121(val, _values, result)
2283
2332
  result = { name: val[0], value: val[2] }
2284
2333
  result
2285
2334
  end
2286
2335
  .,.,
2287
2336
 
2288
- module_eval(<<'.,.,', 'parser.racc', 492)
2337
+ module_eval(<<'.,.,', 'parser.racc', 496)
2289
2338
  def _reduce_122(val, _values, result)
2290
2339
  result = {
2291
- name: Expression::CommandCall.new(val[0][0], val[0][1], []),
2340
+ name: Expression::CommandCall.new(val[0][0], val[0][1], Expression::ActualArgList.new([])),
2292
2341
  value: val[2]
2293
2342
  }
2294
2343
 
@@ -2296,105 +2345,105 @@ module_eval(<<'.,.,', 'parser.racc', 492)
2296
2345
  end
2297
2346
  .,.,
2298
2347
 
2299
- module_eval(<<'.,.,', 'parser.racc', 499)
2348
+ module_eval(<<'.,.,', 'parser.racc', 503)
2300
2349
  def _reduce_123(val, _values, result)
2301
2350
  result = Expression::Literal::Int.new val[0]
2302
2351
  result
2303
2352
  end
2304
2353
  .,.,
2305
2354
 
2306
- module_eval(<<'.,.,', 'parser.racc', 500)
2355
+ module_eval(<<'.,.,', 'parser.racc', 504)
2307
2356
  def _reduce_124(val, _values, result)
2308
2357
  result = Expression::Literal::Double.new val[0]
2309
2358
  result
2310
2359
  end
2311
2360
  .,.,
2312
2361
 
2313
- module_eval(<<'.,.,', 'parser.racc', 501)
2362
+ module_eval(<<'.,.,', 'parser.racc', 505)
2314
2363
  def _reduce_125(val, _values, result)
2315
2364
  result = Expression::Literal::Char.new val[0]
2316
2365
  result
2317
2366
  end
2318
2367
  .,.,
2319
2368
 
2320
- module_eval(<<'.,.,', 'parser.racc', 502)
2369
+ module_eval(<<'.,.,', 'parser.racc', 506)
2321
2370
  def _reduce_126(val, _values, result)
2322
2371
  result = Expression::Literal::StringLit.new val[0]
2323
2372
  result
2324
2373
  end
2325
2374
  .,.,
2326
2375
 
2327
- module_eval(<<'.,.,', 'parser.racc', 503)
2376
+ module_eval(<<'.,.,', 'parser.racc', 507)
2328
2377
  def _reduce_127(val, _values, result)
2329
2378
  result = Expression::Literal::True.new 'Qtrue'
2330
2379
  result
2331
2380
  end
2332
2381
  .,.,
2333
2382
 
2334
- module_eval(<<'.,.,', 'parser.racc', 504)
2383
+ module_eval(<<'.,.,', 'parser.racc', 508)
2335
2384
  def _reduce_128(val, _values, result)
2336
2385
  result = Expression::Literal::False.new 'Qfalse'
2337
2386
  result
2338
2387
  end
2339
2388
  .,.,
2340
2389
 
2341
- module_eval(<<'.,.,', 'parser.racc', 505)
2390
+ module_eval(<<'.,.,', 'parser.racc', 509)
2342
2391
  def _reduce_129(val, _values, result)
2343
2392
  result = Expression::Literal::Nil.new 'Qnil'
2344
2393
  result
2345
2394
  end
2346
2395
  .,.,
2347
2396
 
2348
- module_eval(<<'.,.,', 'parser.racc', 506)
2397
+ module_eval(<<'.,.,', 'parser.racc', 510)
2349
2398
  def _reduce_130(val, _values, result)
2350
2399
  result = Expression::Literal::RubySymbol.new val[0]
2351
2400
  result
2352
2401
  end
2353
2402
  .,.,
2354
2403
 
2355
- module_eval(<<'.,.,', 'parser.racc', 507)
2404
+ module_eval(<<'.,.,', 'parser.racc', 511)
2356
2405
  def _reduce_131(val, _values, result)
2357
2406
  result = Expression::Literal::CNull.new val[0]
2358
2407
  result
2359
2408
  end
2360
2409
  .,.,
2361
2410
 
2362
- module_eval(<<'.,.,', 'parser.racc', 509)
2411
+ module_eval(<<'.,.,', 'parser.racc', 513)
2363
2412
  def _reduce_132(val, _values, result)
2364
2413
  result = Expression::Literal::ArrayLit.new val[2]
2365
2414
  result
2366
2415
  end
2367
2416
  .,.,
2368
2417
 
2369
- module_eval(<<'.,.,', 'parser.racc', 511)
2418
+ module_eval(<<'.,.,', 'parser.racc', 515)
2370
2419
  def _reduce_133(val, _values, result)
2371
2420
  result = Expression::Literal::HashLit.new val[2]
2372
2421
  result
2373
2422
  end
2374
2423
  .,.,
2375
2424
 
2376
- module_eval(<<'.,.,', 'parser.racc', 514)
2425
+ module_eval(<<'.,.,', 'parser.racc', 518)
2377
2426
  def _reduce_134(val, _values, result)
2378
2427
  result = []
2379
2428
  result
2380
2429
  end
2381
2430
  .,.,
2382
2431
 
2383
- module_eval(<<'.,.,', 'parser.racc', 515)
2432
+ module_eval(<<'.,.,', 'parser.racc', 519)
2384
2433
  def _reduce_135(val, _values, result)
2385
2434
  result = [val[0]]
2386
2435
  result
2387
2436
  end
2388
2437
  .,.,
2389
2438
 
2390
- module_eval(<<'.,.,', 'parser.racc', 516)
2439
+ module_eval(<<'.,.,', 'parser.racc', 520)
2391
2440
  def _reduce_136(val, _values, result)
2392
2441
  result = [*val[0], val[3]]
2393
2442
  result
2394
2443
  end
2395
2444
  .,.,
2396
2445
 
2397
- module_eval(<<'.,.,', 'parser.racc', 519)
2446
+ module_eval(<<'.,.,', 'parser.racc', 523)
2398
2447
  def _reduce_137(val, _values, result)
2399
2448
  result = [val[0], val[2]]
2400
2449
  result
@@ -2403,65 +2452,65 @@ module_eval(<<'.,.,', 'parser.racc', 519)
2403
2452
 
2404
2453
  # reduce 138 omitted
2405
2454
 
2406
- module_eval(<<'.,.,', 'parser.racc', 525)
2455
+ module_eval(<<'.,.,', 'parser.racc', 529)
2407
2456
  def _reduce_139(val, _values, result)
2408
2457
  result = "#{val[0]}#{val[1]}"
2409
2458
  result
2410
2459
  end
2411
2460
  .,.,
2412
2461
 
2413
- module_eval(<<'.,.,', 'parser.racc', 526)
2462
+ module_eval(<<'.,.,', 'parser.racc', 530)
2414
2463
  def _reduce_140(val, _values, result)
2415
2464
  result = "#{val[0]}#{val[1]}"
2416
2465
  result
2417
2466
  end
2418
2467
  .,.,
2419
2468
 
2420
- module_eval(<<'.,.,', 'parser.racc', 527)
2469
+ module_eval(<<'.,.,', 'parser.racc', 531)
2421
2470
  def _reduce_141(val, _values, result)
2422
2471
  result = val[0]
2423
2472
  result
2424
2473
  end
2425
2474
  .,.,
2426
2475
 
2427
- module_eval(<<'.,.,', 'parser.racc', 528)
2476
+ module_eval(<<'.,.,', 'parser.racc', 532)
2428
2477
  def _reduce_142(val, _values, result)
2429
2478
  result = "#{val[0]}#{val[1]}"
2430
2479
  result
2431
2480
  end
2432
2481
  .,.,
2433
2482
 
2434
- module_eval(<<'.,.,', 'parser.racc', 531)
2483
+ module_eval(<<'.,.,', 'parser.racc', 535)
2435
2484
  def _reduce_143(val, _values, result)
2436
2485
  result = Statement::ArgumentList.new([])
2437
2486
  result
2438
2487
  end
2439
2488
  .,.,
2440
2489
 
2441
- module_eval(<<'.,.,', 'parser.racc', 532)
2490
+ module_eval(<<'.,.,', 'parser.racc', 536)
2442
2491
  def _reduce_144(val, _values, result)
2443
2492
  result = Statement::ArgumentList.new val[1]
2444
2493
  result
2445
2494
  end
2446
2495
  .,.,
2447
2496
 
2448
- module_eval(<<'.,.,', 'parser.racc', 537)
2497
+ module_eval(<<'.,.,', 'parser.racc', 541)
2449
2498
  def _reduce_145(val, _values, result)
2450
- result = [Expression::ArgDeclaration.new(val[0])]
2499
+ result = [construct_function_argument(val[0])]
2451
2500
 
2452
2501
  result
2453
2502
  end
2454
2503
  .,.,
2455
2504
 
2456
- module_eval(<<'.,.,', 'parser.racc', 541)
2505
+ module_eval(<<'.,.,', 'parser.racc', 545)
2457
2506
  def _reduce_146(val, _values, result)
2458
- result = [*val[0], Expression::ArgDeclaration.new(val[2])]
2507
+ result = [*val[0], construct_function_argument(val[2])]
2459
2508
 
2460
2509
  result
2461
2510
  end
2462
2511
  .,.,
2463
2512
 
2464
- module_eval(<<'.,.,', 'parser.racc', 547)
2513
+ module_eval(<<'.,.,', 'parser.racc', 551)
2465
2514
  def _reduce_147(val, _values, result)
2466
2515
  result = {
2467
2516
  dtype: val[0],
@@ -2477,7 +2526,7 @@ module_eval(<<'.,.,', 'parser.racc', 547)
2477
2526
  end
2478
2527
  .,.,
2479
2528
 
2480
- module_eval(<<'.,.,', 'parser.racc', 559)
2529
+ module_eval(<<'.,.,', 'parser.racc', 563)
2481
2530
  def _reduce_148(val, _values, result)
2482
2531
  result = {
2483
2532
  dtype: 'object',
@@ -2493,28 +2542,28 @@ module_eval(<<'.,.,', 'parser.racc', 559)
2493
2542
  end
2494
2543
  .,.,
2495
2544
 
2496
- module_eval(<<'.,.,', 'parser.racc', 571)
2545
+ module_eval(<<'.,.,', 'parser.racc', 575)
2497
2546
  def _reduce_149(val, _values, result)
2498
2547
  result = nil
2499
2548
  result
2500
2549
  end
2501
2550
  .,.,
2502
2551
 
2503
- module_eval(<<'.,.,', 'parser.racc', 572)
2552
+ module_eval(<<'.,.,', 'parser.racc', 576)
2504
2553
  def _reduce_150(val, _values, result)
2505
2554
  result = val[1]
2506
2555
  result
2507
2556
  end
2508
2557
  .,.,
2509
2558
 
2510
- module_eval(<<'.,.,', 'parser.racc', 575)
2559
+ module_eval(<<'.,.,', 'parser.racc', 579)
2511
2560
  def _reduce_151(val, _values, result)
2512
2561
 
2513
2562
  result
2514
2563
  end
2515
2564
  .,.,
2516
2565
 
2517
- module_eval(<<'.,.,', 'parser.racc', 578)
2566
+ module_eval(<<'.,.,', 'parser.racc', 582)
2518
2567
  def _reduce_152(val, _values, result)
2519
2568
  val[1].typecast = val[0]
2520
2569
  result = val[1]
@@ -2523,231 +2572,231 @@ module_eval(<<'.,.,', 'parser.racc', 578)
2523
2572
  end
2524
2573
  .,.,
2525
2574
 
2526
- module_eval(<<'.,.,', 'parser.racc', 581)
2575
+ module_eval(<<'.,.,', 'parser.racc', 585)
2527
2576
  def _reduce_153(val, _values, result)
2528
- result = binary_op val
2577
+ result = Expression::BinaryBoolAnd.new(val[0], val[1], val[2])
2529
2578
  result
2530
2579
  end
2531
2580
  .,.,
2532
2581
 
2533
- module_eval(<<'.,.,', 'parser.racc', 582)
2582
+ module_eval(<<'.,.,', 'parser.racc', 586)
2534
2583
  def _reduce_154(val, _values, result)
2535
- result = binary_op val
2584
+ result = Expression::BinaryBoolOr.new(val[0], val[1], val[2])
2536
2585
  result
2537
2586
  end
2538
2587
  .,.,
2539
2588
 
2540
- module_eval(<<'.,.,', 'parser.racc', 585)
2589
+ module_eval(<<'.,.,', 'parser.racc', 589)
2541
2590
  def _reduce_155(val, _values, result)
2542
2591
  result = Expression::Typecast.new(val[1], val[2])
2543
2592
  result
2544
2593
  end
2545
2594
  .,.,
2546
2595
 
2547
- module_eval(<<'.,.,', 'parser.racc', 588)
2596
+ module_eval(<<'.,.,', 'parser.racc', 592)
2548
2597
  def _reduce_156(val, _values, result)
2549
2598
 
2550
2599
  result
2551
2600
  end
2552
2601
  .,.,
2553
2602
 
2554
- module_eval(<<'.,.,', 'parser.racc', 589)
2603
+ module_eval(<<'.,.,', 'parser.racc', 593)
2555
2604
  def _reduce_157(val, _values, result)
2556
2605
 
2557
2606
  result
2558
2607
  end
2559
2608
  .,.,
2560
2609
 
2561
- module_eval(<<'.,.,', 'parser.racc', 590)
2610
+ module_eval(<<'.,.,', 'parser.racc', 594)
2562
2611
  def _reduce_158(val, _values, result)
2563
2612
  result = unary_op val
2564
2613
  result
2565
2614
  end
2566
2615
  .,.,
2567
2616
 
2568
- module_eval(<<'.,.,', 'parser.racc', 591)
2617
+ module_eval(<<'.,.,', 'parser.racc', 595)
2569
2618
  def _reduce_159(val, _values, result)
2570
2619
  result = val[1]
2571
2620
  result
2572
2621
  end
2573
2622
  .,.,
2574
2623
 
2575
- module_eval(<<'.,.,', 'parser.racc', 594)
2624
+ module_eval(<<'.,.,', 'parser.racc', 598)
2576
2625
  def _reduce_160(val, _values, result)
2577
- result = binary_op val
2626
+ result = Expression::BinaryAdd.new(val[0], val[1], val[2])
2578
2627
  result
2579
2628
  end
2580
2629
  .,.,
2581
2630
 
2582
- module_eval(<<'.,.,', 'parser.racc', 595)
2631
+ module_eval(<<'.,.,', 'parser.racc', 599)
2583
2632
  def _reduce_161(val, _values, result)
2584
- result = binary_op val
2633
+ result = Expression::BinaryMinus.new(val[0], val[1], val[2])
2585
2634
  result
2586
2635
  end
2587
2636
  .,.,
2588
2637
 
2589
- module_eval(<<'.,.,', 'parser.racc', 596)
2638
+ module_eval(<<'.,.,', 'parser.racc', 600)
2590
2639
  def _reduce_162(val, _values, result)
2591
- result = binary_op val
2640
+ result = Expression::BinaryMultiply.new(val[0], val[1], val[2])
2592
2641
  result
2593
2642
  end
2594
2643
  .,.,
2595
2644
 
2596
- module_eval(<<'.,.,', 'parser.racc', 597)
2645
+ module_eval(<<'.,.,', 'parser.racc', 601)
2597
2646
  def _reduce_163(val, _values, result)
2598
- result = binary_op val
2647
+ result = Expression::BinaryDivide.new(val[0], val[1], val[2])
2599
2648
  result
2600
2649
  end
2601
2650
  .,.,
2602
2651
 
2603
- module_eval(<<'.,.,', 'parser.racc', 598)
2652
+ module_eval(<<'.,.,', 'parser.racc', 602)
2604
2653
  def _reduce_164(val, _values, result)
2605
- result = binary_op val
2654
+ result = Expression::BinaryExpo.new(val[0], val[1], val[2])
2606
2655
  result
2607
2656
  end
2608
2657
  .,.,
2609
2658
 
2610
- module_eval(<<'.,.,', 'parser.racc', 599)
2659
+ module_eval(<<'.,.,', 'parser.racc', 603)
2611
2660
  def _reduce_165(val, _values, result)
2612
- result = binary_op val
2661
+ result = Expression::BinaryMod.new(val[0], val[1], val[2])
2613
2662
  result
2614
2663
  end
2615
2664
  .,.,
2616
2665
 
2617
- module_eval(<<'.,.,', 'parser.racc', 600)
2666
+ module_eval(<<'.,.,', 'parser.racc', 604)
2618
2667
  def _reduce_166(val, _values, result)
2619
- result = binary_op val
2668
+ result = Expression::BinaryAnd.new(val[0], val[1], val[2])
2620
2669
  result
2621
2670
  end
2622
2671
  .,.,
2623
2672
 
2624
- module_eval(<<'.,.,', 'parser.racc', 601)
2673
+ module_eval(<<'.,.,', 'parser.racc', 605)
2625
2674
  def _reduce_167(val, _values, result)
2626
- result = binary_op val
2675
+ result = Expression::BinaryOr.new(val[0], val[1], val[2])
2627
2676
  result
2628
2677
  end
2629
2678
  .,.,
2630
2679
 
2631
- module_eval(<<'.,.,', 'parser.racc', 602)
2680
+ module_eval(<<'.,.,', 'parser.racc', 606)
2632
2681
  def _reduce_168(val, _values, result)
2633
- result = binary_op val
2682
+ result = Expression::BinaryXor.new(val[0], val[1], val[2])
2634
2683
  result
2635
2684
  end
2636
2685
  .,.,
2637
2686
 
2638
- module_eval(<<'.,.,', 'parser.racc', 603)
2687
+ module_eval(<<'.,.,', 'parser.racc', 607)
2639
2688
  def _reduce_169(val, _values, result)
2640
- result = binary_op val
2689
+ result = Expression::BinaryLShift.new(val[0], val[1], val[2])
2641
2690
  result
2642
2691
  end
2643
2692
  .,.,
2644
2693
 
2645
- module_eval(<<'.,.,', 'parser.racc', 604)
2694
+ module_eval(<<'.,.,', 'parser.racc', 608)
2646
2695
  def _reduce_170(val, _values, result)
2647
- result = binary_op val
2696
+ result = Expression::BinaryRShift.new(val[0], val[1], val[2])
2648
2697
  result
2649
2698
  end
2650
2699
  .,.,
2651
2700
 
2652
- module_eval(<<'.,.,', 'parser.racc', 605)
2701
+ module_eval(<<'.,.,', 'parser.racc', 609)
2653
2702
  def _reduce_171(val, _values, result)
2654
2703
  result = unary_op val
2655
2704
  result
2656
2705
  end
2657
2706
  .,.,
2658
2707
 
2659
- module_eval(<<'.,.,', 'parser.racc', 606)
2708
+ module_eval(<<'.,.,', 'parser.racc', 610)
2660
2709
  def _reduce_172(val, _values, result)
2661
2710
  result = unary_op val
2662
2711
  result
2663
2712
  end
2664
2713
  .,.,
2665
2714
 
2666
- module_eval(<<'.,.,', 'parser.racc', 607)
2715
+ module_eval(<<'.,.,', 'parser.racc', 611)
2667
2716
  def _reduce_173(val, _values, result)
2668
2717
  result = unary_op val
2669
2718
  result
2670
2719
  end
2671
2720
  .,.,
2672
2721
 
2673
- module_eval(<<'.,.,', 'parser.racc', 608)
2722
+ module_eval(<<'.,.,', 'parser.racc', 612)
2674
2723
  def _reduce_174(val, _values, result)
2675
2724
  result = val[1]
2676
2725
  result
2677
2726
  end
2678
2727
  .,.,
2679
2728
 
2680
- module_eval(<<'.,.,', 'parser.racc', 609)
2729
+ module_eval(<<'.,.,', 'parser.racc', 613)
2681
2730
  def _reduce_175(val, _values, result)
2682
2731
 
2683
2732
  result
2684
2733
  end
2685
2734
  .,.,
2686
2735
 
2687
- module_eval(<<'.,.,', 'parser.racc', 612)
2736
+ module_eval(<<'.,.,', 'parser.racc', 616)
2688
2737
  def _reduce_176(val, _values, result)
2689
- result = binary_op val
2738
+ result = Expression::BinaryBoolEq.new(val[0], val[1], val[2])
2690
2739
  result
2691
2740
  end
2692
2741
  .,.,
2693
2742
 
2694
- module_eval(<<'.,.,', 'parser.racc', 613)
2743
+ module_eval(<<'.,.,', 'parser.racc', 617)
2695
2744
  def _reduce_177(val, _values, result)
2696
- result = binary_op val
2745
+ result = Expression::BinaryBoolNEq.new(val[0], val[1], val[2])
2697
2746
  result
2698
2747
  end
2699
2748
  .,.,
2700
2749
 
2701
- module_eval(<<'.,.,', 'parser.racc', 614)
2750
+ module_eval(<<'.,.,', 'parser.racc', 618)
2702
2751
  def _reduce_178(val, _values, result)
2703
- result = binary_op val
2752
+ result = Expression::BinaryBoolLt.new(val[0], val[1], val[2])
2704
2753
  result
2705
2754
  end
2706
2755
  .,.,
2707
2756
 
2708
- module_eval(<<'.,.,', 'parser.racc', 615)
2757
+ module_eval(<<'.,.,', 'parser.racc', 619)
2709
2758
  def _reduce_179(val, _values, result)
2710
- result = binary_op val
2759
+ result = Expression::BinaryBoolLtEq.new(val[0], val[1], val[2])
2711
2760
  result
2712
2761
  end
2713
2762
  .,.,
2714
2763
 
2715
- module_eval(<<'.,.,', 'parser.racc', 616)
2764
+ module_eval(<<'.,.,', 'parser.racc', 620)
2716
2765
  def _reduce_180(val, _values, result)
2717
- result = binary_op val
2766
+ result = Expression::BinaryBoolGt.new(val[0], val[1], val[2])
2718
2767
  result
2719
2768
  end
2720
2769
  .,.,
2721
2770
 
2722
- module_eval(<<'.,.,', 'parser.racc', 617)
2771
+ module_eval(<<'.,.,', 'parser.racc', 621)
2723
2772
  def _reduce_181(val, _values, result)
2724
- result = binary_op val
2773
+ result = Expression::BinaryBoolGtEq.new(val[0], val[1], val[2])
2725
2774
  result
2726
2775
  end
2727
2776
  .,.,
2728
2777
 
2729
- module_eval(<<'.,.,', 'parser.racc', 618)
2778
+ module_eval(<<'.,.,', 'parser.racc', 622)
2730
2779
  def _reduce_182(val, _values, result)
2731
2780
  result = val[1]
2732
2781
  result
2733
2782
  end
2734
2783
  .,.,
2735
2784
 
2736
- module_eval(<<'.,.,', 'parser.racc', 621)
2785
+ module_eval(<<'.,.,', 'parser.racc', 625)
2737
2786
  def _reduce_183(val, _values, result)
2738
2787
 
2739
2788
  result
2740
2789
  end
2741
2790
  .,.,
2742
2791
 
2743
- module_eval(<<'.,.,', 'parser.racc', 622)
2792
+ module_eval(<<'.,.,', 'parser.racc', 626)
2744
2793
  def _reduce_184(val, _values, result)
2745
2794
 
2746
2795
  result
2747
2796
  end
2748
2797
  .,.,
2749
2798
 
2750
- module_eval(<<'.,.,', 'parser.racc', 625)
2799
+ module_eval(<<'.,.,', 'parser.racc', 629)
2751
2800
  def _reduce_185(val, _values, result)
2752
2801
  args = val[1]
2753
2802
  result =
@@ -2763,7 +2812,7 @@ module_eval(<<'.,.,', 'parser.racc', 625)
2763
2812
 
2764
2813
  # reduce 186 omitted
2765
2814
 
2766
- module_eval(<<'.,.,', 'parser.racc', 636)
2815
+ module_eval(<<'.,.,', 'parser.racc', 640)
2767
2816
  def _reduce_187(val, _values, result)
2768
2817
  result = Expression::SizeOf.new(val[2], val[3])
2769
2818
 
@@ -2771,14 +2820,14 @@ module_eval(<<'.,.,', 'parser.racc', 636)
2771
2820
  end
2772
2821
  .,.,
2773
2822
 
2774
- module_eval(<<'.,.,', 'parser.racc', 638)
2823
+ module_eval(<<'.,.,', 'parser.racc', 642)
2775
2824
  def _reduce_188(val, _values, result)
2776
2825
  result = Expression::BlockGiven.new
2777
2826
  result
2778
2827
  end
2779
2828
  .,.,
2780
2829
 
2781
- module_eval(<<'.,.,', 'parser.racc', 641)
2830
+ module_eval(<<'.,.,', 'parser.racc', 645)
2782
2831
  def _reduce_189(val, _values, result)
2783
2832
  result = Expression::ElementRef.new('data',
2784
2833
  Expression::Literal::Int.new('0'))
@@ -2787,7 +2836,7 @@ module_eval(<<'.,.,', 'parser.racc', 641)
2787
2836
  end
2788
2837
  .,.,
2789
2838
 
2790
- module_eval(<<'.,.,', 'parser.racc', 648)
2839
+ module_eval(<<'.,.,', 'parser.racc', 652)
2791
2840
  def _reduce_190(val, _values, result)
2792
2841
  result = Expression::CommandCall.new val[0][0], val[0][1], val[1]
2793
2842
 
@@ -2795,7 +2844,7 @@ module_eval(<<'.,.,', 'parser.racc', 648)
2795
2844
  end
2796
2845
  .,.,
2797
2846
 
2798
- module_eval(<<'.,.,', 'parser.racc', 654)
2847
+ module_eval(<<'.,.,', 'parser.racc', 658)
2799
2848
  def _reduce_191(val, _values, result)
2800
2849
  result = [val[0], val[2]]
2801
2850
 
@@ -2803,7 +2852,7 @@ module_eval(<<'.,.,', 'parser.racc', 654)
2803
2852
  end
2804
2853
  .,.,
2805
2854
 
2806
- module_eval(<<'.,.,', 'parser.racc', 658)
2855
+ module_eval(<<'.,.,', 'parser.racc', 662)
2807
2856
  def _reduce_192(val, _values, result)
2808
2857
  result = [val[0], val[2]]
2809
2858
 
@@ -2811,42 +2860,42 @@ module_eval(<<'.,.,', 'parser.racc', 658)
2811
2860
  end
2812
2861
  .,.,
2813
2862
 
2814
- module_eval(<<'.,.,', 'parser.racc', 662)
2863
+ module_eval(<<'.,.,', 'parser.racc', 666)
2815
2864
  def _reduce_193(val, _values, result)
2816
- result = []
2865
+ result = Expression::ActualArgList.new([])
2817
2866
  result
2818
2867
  end
2819
2868
  .,.,
2820
2869
 
2821
- module_eval(<<'.,.,', 'parser.racc', 663)
2870
+ module_eval(<<'.,.,', 'parser.racc', 667)
2822
2871
  def _reduce_194(val, _values, result)
2823
- result = val[1]
2872
+ result = Expression::ActualArgList.new(val[1])
2824
2873
  result
2825
2874
  end
2826
2875
  .,.,
2827
2876
 
2828
- module_eval(<<'.,.,', 'parser.racc', 666)
2877
+ module_eval(<<'.,.,', 'parser.racc', 670)
2829
2878
  def _reduce_195(val, _values, result)
2830
2879
  result = []
2831
2880
  result
2832
2881
  end
2833
2882
  .,.,
2834
2883
 
2835
- module_eval(<<'.,.,', 'parser.racc', 667)
2884
+ module_eval(<<'.,.,', 'parser.racc', 671)
2836
2885
  def _reduce_196(val, _values, result)
2837
2886
  result = val
2838
2887
  result
2839
2888
  end
2840
2889
  .,.,
2841
2890
 
2842
- module_eval(<<'.,.,', 'parser.racc', 668)
2891
+ module_eval(<<'.,.,', 'parser.racc', 672)
2843
2892
  def _reduce_197(val, _values, result)
2844
2893
  result = [*val[0], val[2]]
2845
2894
  result
2846
2895
  end
2847
2896
  .,.,
2848
2897
 
2849
- module_eval(<<'.,.,', 'parser.racc', 673)
2898
+ module_eval(<<'.,.,', 'parser.racc', 677)
2850
2899
  def _reduce_198(val, _values, result)
2851
2900
  result = Expression::ElementRef.new val[0], val[2]
2852
2901
 
@@ -2906,7 +2955,7 @@ module_eval(<<'.,.,', 'parser.racc', 673)
2906
2955
 
2907
2956
  # reduce 224 omitted
2908
2957
 
2909
- module_eval(<<'.,.,', 'parser.racc', 684)
2958
+ module_eval(<<'.,.,', 'parser.racc', 688)
2910
2959
  def _reduce_225(val, _values, result)
2911
2960
  result = val[0]
2912
2961
 
@@ -2914,7 +2963,7 @@ module_eval(<<'.,.,', 'parser.racc', 684)
2914
2963
  end
2915
2964
  .,.,
2916
2965
 
2917
- module_eval(<<'.,.,', 'parser.racc', 688)
2966
+ module_eval(<<'.,.,', 'parser.racc', 692)
2918
2967
  def _reduce_226(val, _values, result)
2919
2968
  result = nil
2920
2969
  result
@@ -2923,7 +2972,7 @@ module_eval(<<'.,.,', 'parser.racc', 688)
2923
2972
 
2924
2973
  # reduce 227 omitted
2925
2974
 
2926
- module_eval(<<'.,.,', 'parser.racc', 692)
2975
+ module_eval(<<'.,.,', 'parser.racc', 696)
2927
2976
  def _reduce_228(val, _values, result)
2928
2977
 
2929
2978
  result
@@ -2932,7 +2981,7 @@ module_eval(<<'.,.,', 'parser.racc', 692)
2932
2981
 
2933
2982
  # reduce 229 omitted
2934
2983
 
2935
- module_eval(<<'.,.,', 'parser.racc', 696)
2984
+ module_eval(<<'.,.,', 'parser.racc', 700)
2936
2985
  def _reduce_230(val, _values, result)
2937
2986
 
2938
2987
  result
@@ -2941,35 +2990,35 @@ module_eval(<<'.,.,', 'parser.racc', 696)
2941
2990
 
2942
2991
  # reduce 231 omitted
2943
2992
 
2944
- module_eval(<<'.,.,', 'parser.racc', 700)
2993
+ module_eval(<<'.,.,', 'parser.racc', 704)
2945
2994
  def _reduce_232(val, _values, result)
2946
2995
 
2947
2996
  result
2948
2997
  end
2949
2998
  .,.,
2950
2999
 
2951
- module_eval(<<'.,.,', 'parser.racc', 701)
3000
+ module_eval(<<'.,.,', 'parser.racc', 705)
2952
3001
  def _reduce_233(val, _values, result)
2953
3002
 
2954
3003
  result
2955
3004
  end
2956
3005
  .,.,
2957
3006
 
2958
- module_eval(<<'.,.,', 'parser.racc', 704)
3007
+ module_eval(<<'.,.,', 'parser.racc', 708)
2959
3008
  def _reduce_234(val, _values, result)
2960
3009
 
2961
3010
  result
2962
3011
  end
2963
3012
  .,.,
2964
3013
 
2965
- module_eval(<<'.,.,', 'parser.racc', 705)
3014
+ module_eval(<<'.,.,', 'parser.racc', 709)
2966
3015
  def _reduce_235(val, _values, result)
2967
3016
 
2968
3017
  result
2969
3018
  end
2970
3019
  .,.,
2971
3020
 
2972
- module_eval(<<'.,.,', 'parser.racc', 708)
3021
+ module_eval(<<'.,.,', 'parser.racc', 712)
2973
3022
  def _reduce_236(val, _values, result)
2974
3023
 
2975
3024
  result
@@ -2978,7 +3027,7 @@ module_eval(<<'.,.,', 'parser.racc', 708)
2978
3027
 
2979
3028
  # reduce 237 omitted
2980
3029
 
2981
- module_eval(<<'.,.,', 'parser.racc', 712)
3030
+ module_eval(<<'.,.,', 'parser.racc', 716)
2982
3031
  def _reduce_238(val, _values, result)
2983
3032
 
2984
3033
  result
@@ -2991,7 +3040,7 @@ module_eval(<<'.,.,', 'parser.racc', 712)
2991
3040
 
2992
3041
  # reduce 241 omitted
2993
3042
 
2994
- module_eval(<<'.,.,', 'parser.racc', 720)
3043
+ module_eval(<<'.,.,', 'parser.racc', 724)
2995
3044
  def _reduce_242(val, _values, result)
2996
3045
  result = val[0]
2997
3046
  result