rubex 0.1 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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