kumi 0.0.31 → 0.0.33

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 (294) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -1
  3. data/README.md +31 -99
  4. data/data/kernels/ruby/core/arithmetic.yaml +2 -2
  5. data/docs/COMPOSED_SCHEMAS.md +137 -0
  6. data/docs/SCHEMA_IMPORTS.md +275 -0
  7. data/docs/SYNTAX.md +48 -0
  8. data/golden/array_element/expected/schema_ruby.rb +2 -27
  9. data/golden/array_index/expected/nast.txt +6 -6
  10. data/golden/array_index/expected/schema_ruby.rb +4 -31
  11. data/golden/array_operations/expected/lir_06_const_prop.txt +4 -8
  12. data/golden/array_operations/expected/schema_javascript.mjs +4 -8
  13. data/golden/array_operations/expected/schema_ruby.rb +10 -43
  14. data/golden/cascade_logic/expected/lir_06_const_prop.txt +7 -14
  15. data/golden/cascade_logic/expected/schema_javascript.mjs +7 -14
  16. data/golden/cascade_logic/expected/schema_ruby.rb +11 -45
  17. data/golden/chained_fusion/expected/lir_06_const_prop.txt +8 -18
  18. data/golden/chained_fusion/expected/schema_javascript.mjs +8 -18
  19. data/golden/chained_fusion/expected/schema_ruby.rb +14 -53
  20. data/golden/decimal_explicit/expected/schema_ruby.rb +4 -31
  21. data/golden/element_arrays/expected/lir_06_const_prop.txt +5 -11
  22. data/golden/element_arrays/expected/schema_javascript.mjs +5 -11
  23. data/golden/element_arrays/expected/schema_ruby.rb +13 -50
  24. data/golden/empty_and_null_inputs/expected/schema_ruby.rb +4 -31
  25. data/golden/example_xpto/expected/ast.txt +23 -0
  26. data/golden/example_xpto/expected/input_plan.txt +1 -0
  27. data/golden/example_xpto/expected/lir_00_unoptimized.txt +16 -0
  28. data/golden/example_xpto/expected/lir_01_hoist_scalar_references.txt +16 -0
  29. data/golden/example_xpto/expected/lir_02_inlined.txt +16 -0
  30. data/golden/example_xpto/expected/lir_03_cse.txt +16 -0
  31. data/golden/example_xpto/expected/lir_04_1_loop_fusion.txt +16 -0
  32. data/golden/example_xpto/expected/lir_04_loop_invcm.txt +16 -0
  33. data/golden/example_xpto/expected/lir_06_const_prop.txt +13 -0
  34. data/golden/example_xpto/expected/nast.txt +17 -0
  35. data/golden/example_xpto/expected/schema_javascript.mjs +13 -0
  36. data/golden/example_xpto/expected/schema_ruby.rb +13 -0
  37. data/golden/example_xpto/expected/snast.txt +17 -0
  38. data/golden/example_xpto/expected.json +4 -0
  39. data/golden/example_xpto/input.json +3 -0
  40. data/golden/example_xpto/schema.kumi +8 -0
  41. data/golden/function_overload/expected/schema_ruby.rb +2 -27
  42. data/golden/game_of_life/expected/lir_06_const_prop.txt +236 -287
  43. data/golden/game_of_life/expected/schema_javascript.mjs +32 -39
  44. data/golden/game_of_life/expected/schema_ruby.rb +34 -66
  45. data/golden/hash_keys/expected/lir_06_const_prop.txt +4 -10
  46. data/golden/hash_keys/expected/schema_javascript.mjs +6 -12
  47. data/golden/hash_keys/expected/schema_ruby.rb +8 -39
  48. data/golden/hash_value/expected/lir_06_const_prop.txt +3 -6
  49. data/golden/hash_value/expected/schema_javascript.mjs +3 -6
  50. data/golden/hash_value/expected/schema_ruby.rb +7 -37
  51. data/golden/hierarchical_complex/expected/lir_06_const_prop.txt +9 -18
  52. data/golden/hierarchical_complex/expected/schema_javascript.mjs +9 -18
  53. data/golden/hierarchical_complex/expected/schema_ruby.rb +14 -51
  54. data/golden/inline_rename_scope_leak/expected/lir_06_const_prop.txt +2 -6
  55. data/golden/inline_rename_scope_leak/expected/schema_javascript.mjs +2 -6
  56. data/golden/inline_rename_scope_leak/expected/schema_ruby.rb +7 -39
  57. data/golden/input_reference/expected/schema_ruby.rb +6 -35
  58. data/golden/interleaved_fusion/expected/lir_06_const_prop.txt +6 -14
  59. data/golden/interleaved_fusion/expected/schema_javascript.mjs +6 -14
  60. data/golden/interleaved_fusion/expected/schema_ruby.rb +11 -47
  61. data/golden/let_inline/expected/lir_06_const_prop.txt +1 -2
  62. data/golden/let_inline/expected/schema_javascript.mjs +1 -2
  63. data/golden/let_inline/expected/schema_ruby.rb +3 -29
  64. data/golden/loop_fusion/expected/lir_06_const_prop.txt +4 -10
  65. data/golden/loop_fusion/expected/schema_javascript.mjs +4 -10
  66. data/golden/loop_fusion/expected/schema_ruby.rb +8 -41
  67. data/golden/min_reduce_scope/expected/lir_06_const_prop.txt +3 -6
  68. data/golden/min_reduce_scope/expected/schema_javascript.mjs +3 -6
  69. data/golden/min_reduce_scope/expected/schema_ruby.rb +8 -39
  70. data/golden/mixed_dimensions/expected/lir_06_const_prop.txt +1 -2
  71. data/golden/mixed_dimensions/expected/schema_javascript.mjs +1 -2
  72. data/golden/mixed_dimensions/expected/schema_ruby.rb +5 -33
  73. data/golden/multirank_hoisting/expected/lir_06_const_prop.txt +9 -18
  74. data/golden/multirank_hoisting/expected/schema_javascript.mjs +9 -18
  75. data/golden/multirank_hoisting/expected/schema_ruby.rb +16 -55
  76. data/golden/nested_hash/expected/lir_06_const_prop.txt +1 -2
  77. data/golden/nested_hash/expected/schema_javascript.mjs +1 -2
  78. data/golden/nested_hash/expected/schema_ruby.rb +3 -29
  79. data/golden/reduction_broadcast/expected/schema_ruby.rb +5 -33
  80. data/golden/roll/expected/lir_06_const_prop.txt +8 -15
  81. data/golden/roll/expected/schema_javascript.mjs +8 -15
  82. data/golden/roll/expected/schema_ruby.rb +13 -48
  83. data/golden/schema_imports_broadcasting_with_imports/expected/ast.txt +26 -0
  84. data/golden/schema_imports_broadcasting_with_imports/expected/input_plan.txt +5 -0
  85. data/golden/schema_imports_broadcasting_with_imports/expected/lir_00_unoptimized.txt +20 -0
  86. data/golden/schema_imports_broadcasting_with_imports/expected/lir_01_hoist_scalar_references.txt +20 -0
  87. data/golden/schema_imports_broadcasting_with_imports/expected/lir_02_inlined.txt +22 -0
  88. data/golden/schema_imports_broadcasting_with_imports/expected/lir_03_cse.txt +21 -0
  89. data/golden/schema_imports_broadcasting_with_imports/expected/lir_04_1_loop_fusion.txt +21 -0
  90. data/golden/schema_imports_broadcasting_with_imports/expected/lir_04_loop_invcm.txt +21 -0
  91. data/golden/schema_imports_broadcasting_with_imports/expected/lir_06_const_prop.txt +21 -0
  92. data/golden/schema_imports_broadcasting_with_imports/expected/nast.txt +12 -0
  93. data/golden/schema_imports_broadcasting_with_imports/expected/schema_javascript.mjs +22 -0
  94. data/golden/schema_imports_broadcasting_with_imports/expected/schema_ruby.rb +24 -0
  95. data/golden/schema_imports_broadcasting_with_imports/expected/snast.txt +12 -0
  96. data/golden/schema_imports_broadcasting_with_imports/expected.json +4 -0
  97. data/golden/schema_imports_broadcasting_with_imports/input.json +7 -0
  98. data/golden/schema_imports_broadcasting_with_imports/schema.kumi +14 -0
  99. data/golden/schema_imports_complex_order_calc/expected/ast.txt +82 -0
  100. data/golden/schema_imports_complex_order_calc/expected/input_plan.txt +16 -0
  101. data/golden/schema_imports_complex_order_calc/expected/lir_00_unoptimized.txt +94 -0
  102. data/golden/schema_imports_complex_order_calc/expected/lir_01_hoist_scalar_references.txt +94 -0
  103. data/golden/schema_imports_complex_order_calc/expected/lir_02_inlined.txt +187 -0
  104. data/golden/schema_imports_complex_order_calc/expected/lir_03_cse.txt +131 -0
  105. data/golden/schema_imports_complex_order_calc/expected/lir_04_1_loop_fusion.txt +131 -0
  106. data/golden/schema_imports_complex_order_calc/expected/lir_04_loop_invcm.txt +131 -0
  107. data/golden/schema_imports_complex_order_calc/expected/lir_06_const_prop.txt +131 -0
  108. data/golden/schema_imports_complex_order_calc/expected/nast.txt +56 -0
  109. data/golden/schema_imports_complex_order_calc/expected/schema_javascript.mjs +147 -0
  110. data/golden/schema_imports_complex_order_calc/expected/schema_ruby.rb +149 -0
  111. data/golden/schema_imports_complex_order_calc/expected/snast.txt +56 -0
  112. data/golden/schema_imports_complex_order_calc/expected.json +12 -0
  113. data/golden/schema_imports_complex_order_calc/input.json +20 -0
  114. data/golden/schema_imports_complex_order_calc/schema.kumi +33 -0
  115. data/golden/schema_imports_composed_order/expected/ast.txt +33 -0
  116. data/golden/schema_imports_composed_order/expected/input_plan.txt +3 -0
  117. data/golden/schema_imports_composed_order/expected/lir_00_unoptimized.txt +25 -0
  118. data/golden/schema_imports_composed_order/expected/lir_01_hoist_scalar_references.txt +25 -0
  119. data/golden/schema_imports_composed_order/expected/lir_02_inlined.txt +33 -0
  120. data/golden/schema_imports_composed_order/expected/lir_03_cse.txt +33 -0
  121. data/golden/schema_imports_composed_order/expected/lir_04_1_loop_fusion.txt +33 -0
  122. data/golden/schema_imports_composed_order/expected/lir_04_loop_invcm.txt +33 -0
  123. data/golden/schema_imports_composed_order/expected/lir_06_const_prop.txt +33 -0
  124. data/golden/schema_imports_composed_order/expected/nast.txt +25 -0
  125. data/golden/schema_imports_composed_order/expected/schema_javascript.mjs +35 -0
  126. data/golden/schema_imports_composed_order/expected/schema_ruby.rb +33 -0
  127. data/golden/schema_imports_composed_order/expected/snast.txt +25 -0
  128. data/golden/schema_imports_composed_order/expected.json +6 -0
  129. data/golden/schema_imports_composed_order/input.json +5 -0
  130. data/golden/schema_imports_composed_order/schema.kumi +15 -0
  131. data/golden/schema_imports_discount_with_tax/expected/ast.txt +37 -0
  132. data/golden/schema_imports_discount_with_tax/expected/input_plan.txt +2 -0
  133. data/golden/schema_imports_discount_with_tax/expected/lir_00_unoptimized.txt +30 -0
  134. data/golden/schema_imports_discount_with_tax/expected/lir_01_hoist_scalar_references.txt +30 -0
  135. data/golden/schema_imports_discount_with_tax/expected/lir_02_inlined.txt +37 -0
  136. data/golden/schema_imports_discount_with_tax/expected/lir_03_cse.txt +34 -0
  137. data/golden/schema_imports_discount_with_tax/expected/lir_04_1_loop_fusion.txt +34 -0
  138. data/golden/schema_imports_discount_with_tax/expected/lir_04_loop_invcm.txt +34 -0
  139. data/golden/schema_imports_discount_with_tax/expected/lir_06_const_prop.txt +34 -0
  140. data/golden/schema_imports_discount_with_tax/expected/nast.txt +30 -0
  141. data/golden/schema_imports_discount_with_tax/expected/schema_javascript.mjs +37 -0
  142. data/golden/schema_imports_discount_with_tax/expected/schema_ruby.rb +34 -0
  143. data/golden/schema_imports_discount_with_tax/expected/snast.txt +30 -0
  144. data/golden/schema_imports_discount_with_tax/expected.json +7 -0
  145. data/golden/schema_imports_discount_with_tax/input.json +4 -0
  146. data/golden/schema_imports_discount_with_tax/schema.kumi +15 -0
  147. data/golden/schema_imports_line_items/expected/ast.txt +35 -0
  148. data/golden/schema_imports_line_items/expected/input_plan.txt +8 -0
  149. data/golden/schema_imports_line_items/expected/lir_00_unoptimized.txt +19 -0
  150. data/golden/schema_imports_line_items/expected/lir_01_hoist_scalar_references.txt +19 -0
  151. data/golden/schema_imports_line_items/expected/lir_02_inlined.txt +24 -0
  152. data/golden/schema_imports_line_items/expected/lir_03_cse.txt +22 -0
  153. data/golden/schema_imports_line_items/expected/lir_04_1_loop_fusion.txt +22 -0
  154. data/golden/schema_imports_line_items/expected/lir_04_loop_invcm.txt +22 -0
  155. data/golden/schema_imports_line_items/expected/lir_06_const_prop.txt +22 -0
  156. data/golden/schema_imports_line_items/expected/nast.txt +19 -0
  157. data/golden/schema_imports_line_items/expected/schema_javascript.mjs +23 -0
  158. data/golden/schema_imports_line_items/expected/schema_ruby.rb +22 -0
  159. data/golden/schema_imports_line_items/expected/snast.txt +19 -0
  160. data/golden/schema_imports_line_items/expected.json +5 -0
  161. data/golden/schema_imports_line_items/input.json +13 -0
  162. data/golden/schema_imports_line_items/schema.kumi +17 -0
  163. data/golden/schema_imports_multiple/expected/ast.txt +35 -0
  164. data/golden/schema_imports_multiple/expected/input_plan.txt +2 -0
  165. data/golden/schema_imports_multiple/expected/lir_00_unoptimized.txt +29 -0
  166. data/golden/schema_imports_multiple/expected/lir_01_hoist_scalar_references.txt +29 -0
  167. data/golden/schema_imports_multiple/expected/lir_02_inlined.txt +41 -0
  168. data/golden/schema_imports_multiple/expected/lir_03_cse.txt +37 -0
  169. data/golden/schema_imports_multiple/expected/lir_04_1_loop_fusion.txt +37 -0
  170. data/golden/schema_imports_multiple/expected/lir_04_loop_invcm.txt +37 -0
  171. data/golden/schema_imports_multiple/expected/lir_06_const_prop.txt +37 -0
  172. data/golden/schema_imports_multiple/expected/nast.txt +28 -0
  173. data/golden/schema_imports_multiple/expected/schema_javascript.mjs +40 -0
  174. data/golden/schema_imports_multiple/expected/schema_ruby.rb +37 -0
  175. data/golden/schema_imports_multiple/expected/snast.txt +28 -0
  176. data/golden/schema_imports_multiple/expected.json +7 -0
  177. data/golden/schema_imports_multiple/input.json +4 -0
  178. data/golden/schema_imports_multiple/schema.kumi +15 -0
  179. data/golden/schema_imports_nested_expressions/expected/ast.txt +31 -0
  180. data/golden/schema_imports_nested_expressions/expected/input_plan.txt +3 -0
  181. data/golden/schema_imports_nested_expressions/expected/lir_00_unoptimized.txt +22 -0
  182. data/golden/schema_imports_nested_expressions/expected/lir_01_hoist_scalar_references.txt +22 -0
  183. data/golden/schema_imports_nested_expressions/expected/lir_02_inlined.txt +32 -0
  184. data/golden/schema_imports_nested_expressions/expected/lir_03_cse.txt +32 -0
  185. data/golden/schema_imports_nested_expressions/expected/lir_04_1_loop_fusion.txt +32 -0
  186. data/golden/schema_imports_nested_expressions/expected/lir_04_loop_invcm.txt +32 -0
  187. data/golden/schema_imports_nested_expressions/expected/lir_06_const_prop.txt +28 -0
  188. data/golden/schema_imports_nested_expressions/expected/nast.txt +23 -0
  189. data/golden/schema_imports_nested_expressions/expected/schema_javascript.mjs +29 -0
  190. data/golden/schema_imports_nested_expressions/expected/schema_ruby.rb +28 -0
  191. data/golden/schema_imports_nested_expressions/expected/snast.txt +23 -0
  192. data/golden/schema_imports_nested_expressions/expected.json +5 -0
  193. data/golden/schema_imports_nested_expressions/input.json +5 -0
  194. data/golden/schema_imports_nested_expressions/schema.kumi +13 -0
  195. data/golden/schema_imports_nested_with_reductions/expected/ast.txt +47 -0
  196. data/golden/schema_imports_nested_with_reductions/expected/input_plan.txt +12 -0
  197. data/golden/schema_imports_nested_with_reductions/expected/lir_00_unoptimized.txt +31 -0
  198. data/golden/schema_imports_nested_with_reductions/expected/lir_01_hoist_scalar_references.txt +31 -0
  199. data/golden/schema_imports_nested_with_reductions/expected/lir_02_inlined.txt +58 -0
  200. data/golden/schema_imports_nested_with_reductions/expected/lir_03_cse.txt +49 -0
  201. data/golden/schema_imports_nested_with_reductions/expected/lir_04_1_loop_fusion.txt +51 -0
  202. data/golden/schema_imports_nested_with_reductions/expected/lir_04_loop_invcm.txt +49 -0
  203. data/golden/schema_imports_nested_with_reductions/expected/lir_06_const_prop.txt +49 -0
  204. data/golden/schema_imports_nested_with_reductions/expected/nast.txt +23 -0
  205. data/golden/schema_imports_nested_with_reductions/expected/schema_javascript.mjs +49 -0
  206. data/golden/schema_imports_nested_with_reductions/expected/schema_ruby.rb +52 -0
  207. data/golden/schema_imports_nested_with_reductions/expected/snast.txt +23 -0
  208. data/golden/schema_imports_nested_with_reductions/expected.json +6 -0
  209. data/golden/schema_imports_nested_with_reductions/input.json +16 -0
  210. data/golden/schema_imports_nested_with_reductions/schema.kumi +23 -0
  211. data/golden/schema_imports_with_imports/expected/ast.txt +19 -0
  212. data/golden/schema_imports_with_imports/expected/input_plan.txt +1 -0
  213. data/golden/schema_imports_with_imports/expected/lir_00_unoptimized.txt +13 -0
  214. data/golden/schema_imports_with_imports/expected/lir_01_hoist_scalar_references.txt +13 -0
  215. data/golden/schema_imports_with_imports/expected/lir_02_inlined.txt +14 -0
  216. data/golden/schema_imports_with_imports/expected/lir_03_cse.txt +13 -0
  217. data/golden/schema_imports_with_imports/expected/lir_04_1_loop_fusion.txt +13 -0
  218. data/golden/schema_imports_with_imports/expected/lir_04_loop_invcm.txt +13 -0
  219. data/golden/schema_imports_with_imports/expected/lir_06_const_prop.txt +13 -0
  220. data/golden/schema_imports_with_imports/expected/nast.txt +13 -0
  221. data/golden/schema_imports_with_imports/expected/schema_javascript.mjs +13 -0
  222. data/golden/schema_imports_with_imports/expected/schema_ruby.rb +13 -0
  223. data/golden/schema_imports_with_imports/expected/snast.txt +13 -0
  224. data/golden/schema_imports_with_imports/expected.json +4 -0
  225. data/golden/schema_imports_with_imports/input.json +3 -0
  226. data/golden/schema_imports_with_imports/schema.kumi +10 -0
  227. data/golden/shift/expected/lir_06_const_prop.txt +18 -30
  228. data/golden/shift/expected/schema_javascript.mjs +18 -30
  229. data/golden/shift/expected/schema_ruby.rb +25 -67
  230. data/golden/shift_2d/expected/lir_06_const_prop.txt +36 -60
  231. data/golden/shift_2d/expected/schema_javascript.mjs +36 -60
  232. data/golden/shift_2d/expected/schema_ruby.rb +49 -109
  233. data/golden/simple_math/expected/lir_06_const_prop.txt +3 -6
  234. data/golden/simple_math/expected/schema_javascript.mjs +3 -6
  235. data/golden/simple_math/expected/schema_ruby.rb +8 -39
  236. data/golden/streaming_basics/expected/lir_06_const_prop.txt +6 -12
  237. data/golden/streaming_basics/expected/schema_javascript.mjs +6 -12
  238. data/golden/streaming_basics/expected/schema_ruby.rb +14 -51
  239. data/golden/tuples/expected/lir_06_const_prop.txt +5 -22
  240. data/golden/tuples/expected/schema_javascript.mjs +5 -22
  241. data/golden/tuples/expected/schema_ruby.rb +11 -57
  242. data/golden/tuples_and_arrays/expected/lir_06_const_prop.txt +4 -8
  243. data/golden/tuples_and_arrays/expected/schema_javascript.mjs +4 -8
  244. data/golden/tuples_and_arrays/expected/schema_ruby.rb +9 -41
  245. data/golden/us_tax_2024/expected/lir_06_const_prop.txt +94 -171
  246. data/golden/us_tax_2024/expected/schema_javascript.mjs +13 -21
  247. data/golden/us_tax_2024/expected/schema_ruby.rb +15 -48
  248. data/golden/with_constants/expected/lir_06_const_prop.txt +3 -8
  249. data/golden/with_constants/expected/schema_javascript.mjs +3 -8
  250. data/golden/with_constants/expected/schema_ruby.rb +5 -35
  251. data/lib/kumi/analyzer.rb +8 -7
  252. data/lib/kumi/configuration.rb +7 -6
  253. data/lib/kumi/core/analyzer/passes/attach_anchors_pass.rb +1 -1
  254. data/lib/kumi/core/analyzer/passes/attach_terminal_info_pass.rb +1 -1
  255. data/lib/kumi/core/analyzer/passes/codegen/js/declaration_emitter.rb +20 -0
  256. data/lib/kumi/core/analyzer/passes/codegen/ruby/declaration_emitter.rb +16 -7
  257. data/lib/kumi/core/analyzer/passes/codegen/ruby/output_buffer.rb +3 -35
  258. data/lib/kumi/core/analyzer/passes/dependency_resolver.rb +6 -0
  259. data/lib/kumi/core/analyzer/passes/import_analysis_pass.rb +90 -0
  260. data/lib/kumi/core/analyzer/passes/lir/constant_propagation_pass.rb +77 -36
  261. data/lib/kumi/core/analyzer/passes/lir/lower_pass.rb +26 -11
  262. data/lib/kumi/core/analyzer/passes/name_indexer.rb +20 -2
  263. data/lib/kumi/core/analyzer/passes/nast_dimensional_analyzer_pass.rb +44 -0
  264. data/lib/kumi/core/analyzer/passes/normalize_to_nast_pass.rb +30 -0
  265. data/lib/kumi/core/analyzer/passes/semantic_constraint_validator.rb +5 -1
  266. data/lib/kumi/core/analyzer/passes/snast_pass.rb +15 -0
  267. data/lib/kumi/core/lir/build.rb +27 -0
  268. data/lib/kumi/core/lir/peephole.rb +164 -0
  269. data/lib/kumi/core/nast.rb +16 -0
  270. data/lib/kumi/core/ruby_parser/build_context.rb +3 -1
  271. data/lib/kumi/core/ruby_parser/parser.rb +1 -1
  272. data/lib/kumi/core/ruby_parser/schema_builder.rb +33 -3
  273. data/lib/kumi/dev/golden/result.rb +9 -3
  274. data/lib/kumi/dev/golden/runtime_test.rb +16 -1
  275. data/lib/kumi/dev/golden.rb +18 -20
  276. data/lib/kumi/dev/golden_schema_modules.rb +8 -0
  277. data/lib/kumi/dev/golden_schema_wrapper.rb +116 -0
  278. data/lib/kumi/dev/support/kumi_runner.mjs +18 -0
  279. data/lib/kumi/schema.rb +44 -2
  280. data/lib/kumi/support/lir_printer.rb +21 -5
  281. data/lib/kumi/support/nast_printer.rb +11 -0
  282. data/lib/kumi/support/s_expression_printer.rb +9 -0
  283. data/lib/kumi/support/snast_printer.rb +6 -0
  284. data/lib/kumi/syntax/import_call.rb +11 -0
  285. data/lib/kumi/syntax/import_declaration.rb +11 -0
  286. data/lib/kumi/syntax/root.rb +2 -2
  287. data/lib/kumi/test_shared_schemas/compound.rb +21 -0
  288. data/lib/kumi/test_shared_schemas/discount.rb +19 -0
  289. data/lib/kumi/test_shared_schemas/price.rb +19 -0
  290. data/lib/kumi/test_shared_schemas/subtotal.rb +22 -0
  291. data/lib/kumi/test_shared_schemas/tax.rb +18 -0
  292. data/lib/kumi/version.rb +1 -1
  293. data/lib/kumi.rb +19 -4
  294. metadata +176 -3
@@ -1,59 +1,28 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_b5eff95b28c57576e4613ae2a1fa9784e744318ef6565131ada24c407fec28e7
3
- def self.from(input_data = nil)
4
- instance = Object.new
5
- instance.extend(self)
6
- instance.instance_variable_set(:@input, input_data)
7
- instance
8
- end
9
-
10
- def self.__kumi_executable__
11
- instance = Object.new
12
- instance.extend(self)
13
- instance
14
- end
15
-
16
- def update(input_data)
17
- @input = @input.merge(input_data)
18
- self
19
- end
20
-
21
- def [](name)
22
- case name
23
- when :sum then _sum
24
- when :product then _product
25
- when :difference then _difference
26
- when :results_array then _results_array
27
- else raise KeyError, "Unknown declaration"
28
- end
29
- end
30
-
31
- def _sum(input = @input)
2
+ module Kumi::Compiled::KUMI_d3724a75498099c0b5fa0fef7fc42fd942eafe2c82a690fc8efeaf8ef9e6ac72
3
+ def self._sum(input)
32
4
  t1 = input["x"] || input[:x]
33
5
  t2 = input["y"] || input[:y]
34
6
  t1 + t2
35
7
  end
36
8
 
37
- def _product(input = @input)
9
+ def self._product(input)
38
10
  t4 = input["x"] || input[:x]
39
11
  t5 = input["y"] || input[:y]
40
12
  t4 * t5
41
13
  end
42
14
 
43
- def _difference(input = @input)
15
+ def self._difference(input)
44
16
  t7 = input["x"] || input[:x]
45
17
  t8 = input["y"] || input[:y]
46
18
  t7 - t8
47
19
  end
48
20
 
49
- def _results_array(input = @input)
50
- t10 = 1
21
+ def self._results_array(input)
51
22
  t11 = input["x"] || input[:x]
52
- t12 = 10
53
- t13 = t11 + t12
23
+ t13 = t11 + 10
54
24
  t14 = input["y"] || input[:y]
55
- t15 = 2
56
- t16 = t14 * t15
57
- [t10, t13, t16]
25
+ t16 = t14 * 2
26
+ [1, t13, t16]
58
27
  end
59
28
  end
@@ -10,9 +10,8 @@
10
10
  )
11
11
  (Declaration items_discounted
12
12
  %t7 = load_input "items" :: array
13
- %t11 = const 1.0 :: float
14
13
  %t12 = load_input "discount" :: float
15
- %t13 = call core.sub(%t11, %t12) :: float
14
+ %t13 = call core.sub(1.0, %t12) :: float
16
15
  loop items id=L2 in %t7 as el=%items_el_8, idx=%items_i_9
17
16
  %t10 = load_field items_el_8["price"] :: float
18
17
  %t14 = call core.mul:numeric(%t10, %t13) :: float
@@ -21,23 +20,20 @@
21
20
  )
22
21
  (Declaration items_is_big
23
22
  %t15 = load_input "items" :: array
24
- %t19 = const 100.0 :: float
25
23
  loop items id=L3 in %t15 as el=%items_el_16, idx=%items_i_17
26
24
  %t18 = load_field items_el_16["price"] :: float
27
- %t20 = call core.gt(%t18, %t19) :: boolean
25
+ %t20 = call core.gt(%t18, 100.0) :: boolean
28
26
  yield %t20
29
27
  end_loop
30
28
  )
31
29
  (Declaration items_effective
32
30
  %t21 = load_input "items" :: array
33
- %t50 = const 100.0 :: float
34
- %t26 = const 0.9 :: float
35
31
  loop items id=L4 in %t21 as el=%items_el_22, idx=%items_i_23
36
32
  %t49 = load_field items_el_22["price"] :: float
37
33
  %t54 = load_field items_el_22["qty"] :: integer
38
- %t51 = call core.gt(%t49, %t50) :: boolean
34
+ %t51 = call core.gt(%t49, 100.0) :: boolean
39
35
  %t55 = call core.mul:numeric(%t49, %t54) :: float
40
- %t27 = call core.mul:numeric(%t55, %t26) :: float
36
+ %t27 = call core.mul:numeric(%t55, 0.9) :: float
41
37
  %t29 = select %t51, %t27, %t55 :: float
42
38
  yield %t29
43
39
  end_loop
@@ -67,14 +63,12 @@
67
63
  (Declaration cart_total_effective
68
64
  %acc_42 = decl_acc :: float
69
65
  %t43 = load_input "items" :: array
70
- %t73 = const 100.0 :: float
71
- %t67 = const 0.9 :: float
72
66
  loop items id=L7 in %t43 as el=%items_el_44, idx=%items_i_45
73
67
  %t72 = load_field items_el_44["price"] :: float
74
68
  %t77 = load_field items_el_44["qty"] :: integer
75
- %t74 = call core.gt(%t72, %t73) :: boolean
69
+ %t74 = call core.gt(%t72, 100.0) :: boolean
76
70
  %t78 = call core.mul:numeric(%t72, %t77) :: float
77
- %t68 = call core.mul:numeric(%t78, %t67) :: float
71
+ %t68 = call core.mul:numeric(%t78, 0.9) :: float
78
72
  %t70 = select %t74, %t68, %t78 :: float
79
73
  %acc_42 = acc_add agg.sum(%acc_42, %t70) :: float
80
74
  end_loop
@@ -13,9 +13,8 @@ export function _items_subtotal(input) {
13
13
  export function _items_discounted(input) {
14
14
  let out = [];
15
15
  let t7 = input["items"];
16
- const t11 = 1.0;
17
16
  let t12 = input["discount"];
18
- let t13 = t11 - t12;
17
+ let t13 = 1.0 - t12;
19
18
  t7.forEach((items_el_8, items_i_9) => {
20
19
  let t10 = items_el_8["price"];
21
20
  let t14 = t10 * t13;
@@ -27,10 +26,9 @@ export function _items_discounted(input) {
27
26
  export function _items_is_big(input) {
28
27
  let out = [];
29
28
  let t15 = input["items"];
30
- const t19 = 100.0;
31
29
  t15.forEach((items_el_16, items_i_17) => {
32
30
  let t18 = items_el_16["price"];
33
- let t20 = t18 > t19;
31
+ let t20 = t18 > 100.0;
34
32
  out.push(t20);
35
33
  });
36
34
  return out;
@@ -39,14 +37,12 @@ export function _items_is_big(input) {
39
37
  export function _items_effective(input) {
40
38
  let out = [];
41
39
  let t21 = input["items"];
42
- const t50 = 100.0;
43
- const t26 = 0.9;
44
40
  t21.forEach((items_el_22, items_i_23) => {
45
41
  let t49 = items_el_22["price"];
46
42
  let t54 = items_el_22["qty"];
47
- let t51 = t49 > t50;
43
+ let t51 = t49 > 100.0;
48
44
  let t55 = t49 * t54;
49
- let t27 = t55 * t26;
45
+ let t27 = t55 * 0.9;
50
46
  let t29 = t51 ? t27 : t55;
51
47
  out.push(t29);
52
48
  });
@@ -78,14 +74,12 @@ export function _cart_total(input) {
78
74
  export function _cart_total_effective(input) {
79
75
  let acc_42 = 0.0;
80
76
  let t43 = input["items"];
81
- const t73 = 100.0;
82
- const t67 = 0.9;
83
77
  t43.forEach((items_el_44, items_i_45) => {
84
78
  let t72 = items_el_44["price"];
85
79
  let t77 = items_el_44["qty"];
86
- let t74 = t72 > t73;
80
+ let t74 = t72 > 100.0;
87
81
  let t78 = t72 * t77;
88
- let t68 = t78 * t67;
82
+ let t68 = t78 * 0.9;
89
83
  let t70 = t74 ? t68 : t78;
90
84
  acc_42 += t70;
91
85
  });
@@ -1,37 +1,6 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_d972b45a945bf808f0713ddc12e431b18405a54a9d90bfa262d81a86e42b46ca
3
- def self.from(input_data = nil)
4
- instance = Object.new
5
- instance.extend(self)
6
- instance.instance_variable_set(:@input, input_data)
7
- instance
8
- end
9
-
10
- def self.__kumi_executable__
11
- instance = Object.new
12
- instance.extend(self)
13
- instance
14
- end
15
-
16
- def update(input_data)
17
- @input = @input.merge(input_data)
18
- self
19
- end
20
-
21
- def [](name)
22
- case name
23
- when :items_subtotal then _items_subtotal
24
- when :items_discounted then _items_discounted
25
- when :items_is_big then _items_is_big
26
- when :items_effective then _items_effective
27
- when :total_qty then _total_qty
28
- when :cart_total then _cart_total
29
- when :cart_total_effective then _cart_total_effective
30
- else raise KeyError, "Unknown declaration"
31
- end
32
- end
33
-
34
- def _items_subtotal(input = @input)
2
+ module Kumi::Compiled::KUMI_ed9d24ba9b77a06e101883c7dc0b73845a548e7f7a03b7654a2d4a0a12324188
3
+ def self._items_subtotal(input)
35
4
  out = []
36
5
  t1 = input["items"] || input[:items]
37
6
  t1.each_with_index do |items_el_2, items_i_3|
@@ -43,12 +12,11 @@ module Kumi::Compiled::KUMI_d972b45a945bf808f0713ddc12e431b18405a54a9d90bfa262d8
43
12
  out
44
13
  end
45
14
 
46
- def _items_discounted(input = @input)
15
+ def self._items_discounted(input)
47
16
  out = []
48
17
  t7 = input["items"] || input[:items]
49
- t11 = 1.0
50
18
  t12 = input["discount"] || input[:discount]
51
- t13 = t11 - t12
19
+ t13 = 1.0 - t12
52
20
  t7.each_with_index do |items_el_8, items_i_9|
53
21
  t10 = items_el_8["price"] || items_el_8[:price]
54
22
  t14 = t10 * t13
@@ -57,36 +25,33 @@ module Kumi::Compiled::KUMI_d972b45a945bf808f0713ddc12e431b18405a54a9d90bfa262d8
57
25
  out
58
26
  end
59
27
 
60
- def _items_is_big(input = @input)
28
+ def self._items_is_big(input)
61
29
  out = []
62
30
  t15 = input["items"] || input[:items]
63
- t19 = 100.0
64
31
  t15.each_with_index do |items_el_16, items_i_17|
65
32
  t18 = items_el_16["price"] || items_el_16[:price]
66
- t20 = t18 > t19
33
+ t20 = t18 > 100.0
67
34
  out << t20
68
35
  end
69
36
  out
70
37
  end
71
38
 
72
- def _items_effective(input = @input)
39
+ def self._items_effective(input)
73
40
  out = []
74
41
  t21 = input["items"] || input[:items]
75
- t50 = 100.0
76
- t26 = 0.9
77
42
  t21.each_with_index do |items_el_22, items_i_23|
78
43
  t49 = items_el_22["price"] || items_el_22[:price]
79
44
  t54 = items_el_22["qty"] || items_el_22[:qty]
80
- t51 = t49 > t50
45
+ t51 = t49 > 100.0
81
46
  t55 = t49 * t54
82
- t27 = t55 * t26
47
+ t27 = t55 * 0.9
83
48
  t29 = t51 ? t27 : t55
84
49
  out << t29
85
50
  end
86
51
  out
87
52
  end
88
53
 
89
- def _total_qty(input = @input)
54
+ def self._total_qty(input)
90
55
  acc_30 = 0.0
91
56
  t31 = input["items"] || input[:items]
92
57
  t31.each_with_index do |items_el_32, items_i_33|
@@ -96,7 +61,7 @@ module Kumi::Compiled::KUMI_d972b45a945bf808f0713ddc12e431b18405a54a9d90bfa262d8
96
61
  acc_30
97
62
  end
98
63
 
99
- def _cart_total(input = @input)
64
+ def self._cart_total(input)
100
65
  acc_36 = 0.0
101
66
  t37 = input["items"] || input[:items]
102
67
  t37.each_with_index do |items_el_38, items_i_39|
@@ -108,17 +73,15 @@ module Kumi::Compiled::KUMI_d972b45a945bf808f0713ddc12e431b18405a54a9d90bfa262d8
108
73
  acc_36
109
74
  end
110
75
 
111
- def _cart_total_effective(input = @input)
76
+ def self._cart_total_effective(input)
112
77
  acc_42 = 0.0
113
78
  t43 = input["items"] || input[:items]
114
- t73 = 100.0
115
- t67 = 0.9
116
79
  t43.each_with_index do |items_el_44, items_i_45|
117
80
  t72 = items_el_44["price"] || items_el_44[:price]
118
81
  t77 = items_el_44["qty"] || items_el_44[:qty]
119
- t74 = t72 > t73
82
+ t74 = t72 > 100.0
120
83
  t78 = t72 * t77
121
- t68 = t78 * t67
84
+ t68 = t78 * 0.9
122
85
  t70 = t74 ? t68 : t78
123
86
  acc_42 += t70
124
87
  end
@@ -1,47 +1,30 @@
1
1
  (LIR
2
2
  (Declaration tuple
3
- %t1 = const 1 :: integer
4
- %t2 = const 2 :: integer
5
- %t3 = const 3 :: integer
6
3
  %t4 = load_input "x" :: integer
7
- %t5 = make_tuple(%t1, %t2, %t3, %t4) :: tuple<integer, integer, integer, integer>
4
+ %t5 = make_tuple(%__immediate_placeholder__, %__immediate_placeholder__, %__immediate_placeholder__, %t4) :: tuple<integer, integer, integer, integer>
8
5
  yield %t5
9
6
  )
10
7
  (Declaration max_1
11
- %t24 = const 1 :: integer
12
- %t25 = const 2 :: integer
13
- %t26 = const 3 :: integer
14
8
  %t27 = load_input "x" :: integer
15
- %t28 = make_tuple(%t24, %t25, %t26, %t27) :: tuple<integer, integer, integer, integer>
9
+ %t28 = make_tuple(%__immediate_placeholder__, %__immediate_placeholder__, %__immediate_placeholder__, %t27) :: tuple<integer, integer, integer, integer>
16
10
  %t7 = fold %t28 fn="agg.max" :: integer
17
11
  yield %t7
18
12
  )
19
13
  (Declaration max_2
20
- %t8 = const 1 :: integer
21
- %t9 = const 2 :: integer
22
- %t10 = const 3 :: integer
23
14
  %t11 = load_input "x" :: integer
24
- %t12 = const 1000 :: integer
25
- %t13 = make_tuple(%t8, %t9, %t10, %t11, %t12) :: tuple<integer, integer, integer, integer, integer>
15
+ %t13 = make_tuple(%__immediate_placeholder__, %__immediate_placeholder__, %__immediate_placeholder__, %t11, %__immediate_placeholder__) :: tuple<integer, integer, integer, integer, integer>
26
16
  %t14 = fold %t13 fn="agg.max" :: integer
27
17
  yield %t14
28
18
  )
29
19
  (Declaration min_1
30
- %t29 = const 1 :: integer
31
- %t30 = const 2 :: integer
32
- %t31 = const 3 :: integer
33
20
  %t32 = load_input "x" :: integer
34
- %t33 = make_tuple(%t29, %t30, %t31, %t32) :: tuple<integer, integer, integer, integer>
21
+ %t33 = make_tuple(%__immediate_placeholder__, %__immediate_placeholder__, %__immediate_placeholder__, %t32) :: tuple<integer, integer, integer, integer>
35
22
  %t16 = fold %t33 fn="agg.min" :: integer
36
23
  yield %t16
37
24
  )
38
25
  (Declaration min_2
39
- %t17 = const 1 :: integer
40
- %t18 = const 2 :: integer
41
- %t19 = const 3 :: integer
42
26
  %t20 = load_input "x" :: integer
43
- %t21 = const -100 :: integer
44
- %t22 = make_tuple(%t17, %t18, %t19, %t20, %t21) :: tuple<integer, integer, integer, integer, integer>
27
+ %t22 = make_tuple(%__immediate_placeholder__, %__immediate_placeholder__, %__immediate_placeholder__, %t20, %__immediate_placeholder__) :: tuple<integer, integer, integer, integer, integer>
45
28
  %t23 = fold %t22 fn="agg.min" :: integer
46
29
  yield %t23
47
30
  )
@@ -1,50 +1,33 @@
1
1
  export function _tuple(input) {
2
- const t1 = 1;
3
- const t2 = 2;
4
- const t3 = 3;
5
2
  let t4 = input["x"];
6
- let t5 = [t1, t2, t3, t4];
3
+ let t5 = [1, 2, 3, t4];
7
4
  return t5;
8
5
  }
9
6
 
10
7
  export function _max_1(input) {
11
- const t24 = 1;
12
- const t25 = 2;
13
- const t26 = 3;
14
8
  let t27 = input["x"];
15
- let t28 = [t24, t25, t26, t27];
9
+ let t28 = [1, 2, 3, t27];
16
10
  let t7 = Math.max(...t28);
17
11
  return t7;
18
12
  }
19
13
 
20
14
  export function _max_2(input) {
21
- const t8 = 1;
22
- const t9 = 2;
23
- const t10 = 3;
24
15
  let t11 = input["x"];
25
- const t12 = 1000;
26
- let t13 = [t8, t9, t10, t11, t12];
16
+ let t13 = [1, 2, 3, t11, 1000];
27
17
  let t14 = Math.max(...t13);
28
18
  return t14;
29
19
  }
30
20
 
31
21
  export function _min_1(input) {
32
- const t29 = 1;
33
- const t30 = 2;
34
- const t31 = 3;
35
22
  let t32 = input["x"];
36
- let t33 = [t29, t30, t31, t32];
23
+ let t33 = [1, 2, 3, t32];
37
24
  let t16 = Math.min(...t33);
38
25
  return t16;
39
26
  }
40
27
 
41
28
  export function _min_2(input) {
42
- const t17 = 1;
43
- const t18 = 2;
44
- const t19 = 3;
45
29
  let t20 = input["x"];
46
- const t21 = -100;
47
- let t22 = [t17, t18, t19, t20, t21];
30
+ let t22 = [1, 2, 3, t20, -100];
48
31
  let t23 = Math.min(...t22);
49
32
  return t23;
50
33
  }
@@ -1,77 +1,31 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_2eed3f0a8d77c4064660318dbbae64a67ba86a5d882fba6f60715e64d9677ba2
3
- def self.from(input_data = nil)
4
- instance = Object.new
5
- instance.extend(self)
6
- instance.instance_variable_set(:@input, input_data)
7
- instance
8
- end
9
-
10
- def self.__kumi_executable__
11
- instance = Object.new
12
- instance.extend(self)
13
- instance
14
- end
15
-
16
- def update(input_data)
17
- @input = @input.merge(input_data)
18
- self
19
- end
20
-
21
- def [](name)
22
- case name
23
- when :tuple then _tuple
24
- when :max_1 then _max_1
25
- when :max_2 then _max_2
26
- when :min_1 then _min_1
27
- when :min_2 then _min_2
28
- else raise KeyError, "Unknown declaration"
29
- end
30
- end
31
-
32
- def _tuple(input = @input)
33
- t1 = 1
34
- t2 = 2
35
- t3 = 3
2
+ module Kumi::Compiled::KUMI_be775f6599577b9dfe31ca0a248a9c6d88b906f1f41ae7606749bc94ce3ae9e5
3
+ def self._tuple(input)
36
4
  t4 = input["x"] || input[:x]
37
- [t1, t2, t3, t4]
5
+ [1, 2, 3, t4]
38
6
  end
39
7
 
40
- def _max_1(input = @input)
41
- t24 = 1
42
- t25 = 2
43
- t26 = 3
8
+ def self._max_1(input)
44
9
  t27 = input["x"] || input[:x]
45
- t28 = [t24, t25, t26, t27]
10
+ t28 = [1, 2, 3, t27]
46
11
  t28.max
47
12
  end
48
13
 
49
- def _max_2(input = @input)
50
- t8 = 1
51
- t9 = 2
52
- t10 = 3
14
+ def self._max_2(input)
53
15
  t11 = input["x"] || input[:x]
54
- t12 = 1000
55
- t13 = [t8, t9, t10, t11, t12]
16
+ t13 = [1, 2, 3, t11, 1000]
56
17
  t13.max
57
18
  end
58
19
 
59
- def _min_1(input = @input)
60
- t29 = 1
61
- t30 = 2
62
- t31 = 3
20
+ def self._min_1(input)
63
21
  t32 = input["x"] || input[:x]
64
- t33 = [t29, t30, t31, t32]
22
+ t33 = [1, 2, 3, t32]
65
23
  t33.min
66
24
  end
67
25
 
68
- def _min_2(input = @input)
69
- t17 = 1
70
- t18 = 2
71
- t19 = 3
26
+ def self._min_2(input)
72
27
  t20 = input["x"] || input[:x]
73
- t21 = -100
74
- t22 = [t17, t18, t19, t20, t21]
28
+ t22 = [1, 2, 3, t20, -100]
75
29
  t22.min
76
30
  end
77
31
  end
@@ -1,31 +1,28 @@
1
1
  (LIR
2
2
  (Declaration x_is_large
3
3
  %t1 = load_input "points" :: array
4
- %t5 = const 100 :: integer
5
4
  loop points id=L1 in %t1 as el=%points_el_2, idx=%points_i_3
6
5
  %t4 = load_field points_el_2["x"] :: integer
7
- %t6 = call core.gt(%t4, %t5) :: boolean
6
+ %t6 = call core.gt(%t4, 100) :: boolean
8
7
  yield %t6
9
8
  end_loop
10
9
  )
11
10
  (Declaration selected_value
12
11
  %t7 = load_input "points" :: array
13
- %t29 = const 100 :: integer
14
12
  loop points id=L2 in %t7 as el=%points_el_8, idx=%points_i_9
15
13
  %t28 = load_field points_el_8["x"] :: integer
16
14
  %t12 = load_field points_el_8["y"] :: integer
17
- %t30 = call core.gt(%t28, %t29) :: boolean
15
+ %t30 = call core.gt(%t28, 100) :: boolean
18
16
  %t13 = select %t30, %t28, %t12 :: integer
19
17
  yield %t13
20
18
  end_loop
21
19
  )
22
20
  (Declaration final_value_per_point
23
21
  %t14 = load_input "points" :: array
24
- %t38 = const 100 :: integer
25
22
  loop points id=L3 in %t14 as el=%points_el_15, idx=%points_i_16
26
23
  %t37 = load_field points_el_15["x"] :: integer
27
24
  %t34 = load_field points_el_15["y"] :: integer
28
- %t39 = call core.gt(%t37, %t38) :: boolean
25
+ %t39 = call core.gt(%t37, 100) :: boolean
29
26
  %t35 = select %t39, %t37, %t34 :: integer
30
27
  %t19 = make_tuple(%t35, %t37) :: tuple<integer, integer>
31
28
  %t20 = fold %t19 fn="agg.max" :: integer
@@ -35,11 +32,10 @@
35
32
  (Declaration grand_total
36
33
  %acc_21 = decl_acc :: integer
37
34
  %t22 = load_input "points" :: array
38
- %t52 = const 100 :: integer
39
35
  loop points id=L4 in %t22 as el=%points_el_23, idx=%points_i_24
40
36
  %t51 = load_field points_el_23["x"] :: integer
41
37
  %t48 = load_field points_el_23["y"] :: integer
42
- %t53 = call core.gt(%t51, %t52) :: boolean
38
+ %t53 = call core.gt(%t51, 100) :: boolean
43
39
  %t49 = select %t53, %t51, %t48 :: integer
44
40
  %t43 = make_tuple(%t49, %t51) :: tuple<integer, integer>
45
41
  %t44 = fold %t43 fn="agg.max" :: integer
@@ -1,10 +1,9 @@
1
1
  export function _x_is_large(input) {
2
2
  let out = [];
3
3
  let t1 = input["points"];
4
- const t5 = 100;
5
4
  t1.forEach((points_el_2, points_i_3) => {
6
5
  let t4 = points_el_2["x"];
7
- let t6 = t4 > t5;
6
+ let t6 = t4 > 100;
8
7
  out.push(t6);
9
8
  });
10
9
  return out;
@@ -13,11 +12,10 @@ export function _x_is_large(input) {
13
12
  export function _selected_value(input) {
14
13
  let out = [];
15
14
  let t7 = input["points"];
16
- const t29 = 100;
17
15
  t7.forEach((points_el_8, points_i_9) => {
18
16
  let t28 = points_el_8["x"];
19
17
  let t12 = points_el_8["y"];
20
- let t30 = t28 > t29;
18
+ let t30 = t28 > 100;
21
19
  let t13 = t30 ? t28 : t12;
22
20
  out.push(t13);
23
21
  });
@@ -27,11 +25,10 @@ export function _selected_value(input) {
27
25
  export function _final_value_per_point(input) {
28
26
  let out = [];
29
27
  let t14 = input["points"];
30
- const t38 = 100;
31
28
  t14.forEach((points_el_15, points_i_16) => {
32
29
  let t37 = points_el_15["x"];
33
30
  let t34 = points_el_15["y"];
34
- let t39 = t37 > t38;
31
+ let t39 = t37 > 100;
35
32
  let t35 = t39 ? t37 : t34;
36
33
  let t19 = [t35, t37];
37
34
  let t20 = Math.max(...t19);
@@ -43,11 +40,10 @@ export function _final_value_per_point(input) {
43
40
  export function _grand_total(input) {
44
41
  let acc_21 = 0;
45
42
  let t22 = input["points"];
46
- const t52 = 100;
47
43
  t22.forEach((points_el_23, points_i_24) => {
48
44
  let t51 = points_el_23["x"];
49
45
  let t48 = points_el_23["y"];
50
- let t53 = t51 > t52;
46
+ let t53 = t51 > 100;
51
47
  let t49 = t53 ? t51 : t48;
52
48
  let t43 = [t49, t51];
53
49
  let t44 = Math.max(...t43);