kumi 0.0.30 → 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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +21 -1
- data/README.md +31 -99
- data/data/kernels/ruby/core/arithmetic.yaml +2 -2
- data/docs/COMPOSED_SCHEMAS.md +137 -0
- data/docs/SCHEMA_IMPORTS.md +275 -0
- data/docs/SYNTAX.md +48 -0
- data/golden/array_element/expected/schema_ruby.rb +2 -27
- data/golden/array_index/expected/nast.txt +6 -6
- data/golden/array_index/expected/schema_ruby.rb +4 -31
- data/golden/array_operations/expected/lir_06_const_prop.txt +4 -8
- data/golden/array_operations/expected/schema_javascript.mjs +4 -8
- data/golden/array_operations/expected/schema_ruby.rb +10 -43
- data/golden/cascade_logic/expected/lir_06_const_prop.txt +7 -14
- data/golden/cascade_logic/expected/schema_javascript.mjs +7 -14
- data/golden/cascade_logic/expected/schema_ruby.rb +11 -45
- data/golden/chained_fusion/expected/lir_06_const_prop.txt +8 -18
- data/golden/chained_fusion/expected/schema_javascript.mjs +8 -18
- data/golden/chained_fusion/expected/schema_ruby.rb +14 -53
- data/golden/decimal_explicit/expected/schema_ruby.rb +4 -31
- data/golden/element_arrays/expected/lir_06_const_prop.txt +5 -11
- data/golden/element_arrays/expected/schema_javascript.mjs +5 -11
- data/golden/element_arrays/expected/schema_ruby.rb +13 -50
- data/golden/empty_and_null_inputs/expected/schema_ruby.rb +4 -31
- data/golden/example_xpto/expected/ast.txt +23 -0
- data/golden/example_xpto/expected/input_plan.txt +1 -0
- data/golden/example_xpto/expected/lir_00_unoptimized.txt +16 -0
- data/golden/example_xpto/expected/lir_01_hoist_scalar_references.txt +16 -0
- data/golden/example_xpto/expected/lir_02_inlined.txt +16 -0
- data/golden/example_xpto/expected/lir_03_cse.txt +16 -0
- data/golden/example_xpto/expected/lir_04_1_loop_fusion.txt +16 -0
- data/golden/example_xpto/expected/lir_04_loop_invcm.txt +16 -0
- data/golden/example_xpto/expected/lir_06_const_prop.txt +13 -0
- data/golden/example_xpto/expected/nast.txt +17 -0
- data/golden/example_xpto/expected/schema_javascript.mjs +13 -0
- data/golden/example_xpto/expected/schema_ruby.rb +13 -0
- data/golden/example_xpto/expected/snast.txt +17 -0
- data/golden/example_xpto/expected.json +4 -0
- data/golden/example_xpto/input.json +3 -0
- data/golden/example_xpto/schema.kumi +8 -0
- data/golden/function_overload/expected/schema_ruby.rb +2 -27
- data/golden/game_of_life/expected/lir_06_const_prop.txt +236 -287
- data/golden/game_of_life/expected/schema_javascript.mjs +32 -39
- data/golden/game_of_life/expected/schema_ruby.rb +34 -66
- data/golden/hash_keys/expected/lir_06_const_prop.txt +4 -10
- data/golden/hash_keys/expected/schema_javascript.mjs +6 -12
- data/golden/hash_keys/expected/schema_ruby.rb +8 -39
- data/golden/hash_value/expected/lir_06_const_prop.txt +3 -6
- data/golden/hash_value/expected/schema_javascript.mjs +3 -6
- data/golden/hash_value/expected/schema_ruby.rb +7 -37
- data/golden/hierarchical_complex/expected/lir_06_const_prop.txt +9 -18
- data/golden/hierarchical_complex/expected/schema_javascript.mjs +9 -18
- data/golden/hierarchical_complex/expected/schema_ruby.rb +14 -51
- data/golden/inline_rename_scope_leak/expected/lir_06_const_prop.txt +2 -6
- data/golden/inline_rename_scope_leak/expected/schema_javascript.mjs +2 -6
- data/golden/inline_rename_scope_leak/expected/schema_ruby.rb +7 -39
- data/golden/input_reference/expected/schema_ruby.rb +6 -35
- data/golden/interleaved_fusion/expected/lir_06_const_prop.txt +6 -14
- data/golden/interleaved_fusion/expected/schema_javascript.mjs +6 -14
- data/golden/interleaved_fusion/expected/schema_ruby.rb +11 -47
- data/golden/let_inline/expected/lir_06_const_prop.txt +1 -2
- data/golden/let_inline/expected/schema_javascript.mjs +1 -2
- data/golden/let_inline/expected/schema_ruby.rb +3 -29
- data/golden/loop_fusion/expected/lir_06_const_prop.txt +4 -10
- data/golden/loop_fusion/expected/schema_javascript.mjs +4 -10
- data/golden/loop_fusion/expected/schema_ruby.rb +8 -41
- data/golden/min_reduce_scope/expected/lir_06_const_prop.txt +3 -6
- data/golden/min_reduce_scope/expected/schema_javascript.mjs +3 -6
- data/golden/min_reduce_scope/expected/schema_ruby.rb +8 -39
- data/golden/mixed_dimensions/expected/lir_06_const_prop.txt +1 -2
- data/golden/mixed_dimensions/expected/schema_javascript.mjs +1 -2
- data/golden/mixed_dimensions/expected/schema_ruby.rb +5 -33
- data/golden/multirank_hoisting/expected/lir_06_const_prop.txt +9 -18
- data/golden/multirank_hoisting/expected/schema_javascript.mjs +9 -18
- data/golden/multirank_hoisting/expected/schema_ruby.rb +16 -55
- data/golden/nested_hash/expected/lir_06_const_prop.txt +1 -2
- data/golden/nested_hash/expected/schema_javascript.mjs +1 -2
- data/golden/nested_hash/expected/schema_ruby.rb +3 -29
- data/golden/reduction_broadcast/expected/schema_ruby.rb +5 -33
- data/golden/roll/expected/lir_06_const_prop.txt +8 -15
- data/golden/roll/expected/schema_javascript.mjs +8 -15
- data/golden/roll/expected/schema_ruby.rb +13 -48
- data/golden/schema_imports_broadcasting_with_imports/expected/ast.txt +26 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/input_plan.txt +5 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_00_unoptimized.txt +20 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_01_hoist_scalar_references.txt +20 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_02_inlined.txt +22 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_03_cse.txt +21 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_04_1_loop_fusion.txt +21 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_04_loop_invcm.txt +21 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_06_const_prop.txt +21 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/nast.txt +12 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/schema_javascript.mjs +22 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/schema_ruby.rb +24 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/snast.txt +12 -0
- data/golden/schema_imports_broadcasting_with_imports/expected.json +4 -0
- data/golden/schema_imports_broadcasting_with_imports/input.json +7 -0
- data/golden/schema_imports_broadcasting_with_imports/schema.kumi +14 -0
- data/golden/schema_imports_complex_order_calc/expected/ast.txt +82 -0
- data/golden/schema_imports_complex_order_calc/expected/input_plan.txt +16 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_00_unoptimized.txt +94 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_01_hoist_scalar_references.txt +94 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_02_inlined.txt +187 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_03_cse.txt +131 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_04_1_loop_fusion.txt +131 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_04_loop_invcm.txt +131 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_06_const_prop.txt +131 -0
- data/golden/schema_imports_complex_order_calc/expected/nast.txt +56 -0
- data/golden/schema_imports_complex_order_calc/expected/schema_javascript.mjs +147 -0
- data/golden/schema_imports_complex_order_calc/expected/schema_ruby.rb +149 -0
- data/golden/schema_imports_complex_order_calc/expected/snast.txt +56 -0
- data/golden/schema_imports_complex_order_calc/expected.json +12 -0
- data/golden/schema_imports_complex_order_calc/input.json +20 -0
- data/golden/schema_imports_complex_order_calc/schema.kumi +33 -0
- data/golden/schema_imports_composed_order/expected/ast.txt +33 -0
- data/golden/schema_imports_composed_order/expected/input_plan.txt +3 -0
- data/golden/schema_imports_composed_order/expected/lir_00_unoptimized.txt +25 -0
- data/golden/schema_imports_composed_order/expected/lir_01_hoist_scalar_references.txt +25 -0
- data/golden/schema_imports_composed_order/expected/lir_02_inlined.txt +33 -0
- data/golden/schema_imports_composed_order/expected/lir_03_cse.txt +33 -0
- data/golden/schema_imports_composed_order/expected/lir_04_1_loop_fusion.txt +33 -0
- data/golden/schema_imports_composed_order/expected/lir_04_loop_invcm.txt +33 -0
- data/golden/schema_imports_composed_order/expected/lir_06_const_prop.txt +33 -0
- data/golden/schema_imports_composed_order/expected/nast.txt +25 -0
- data/golden/schema_imports_composed_order/expected/schema_javascript.mjs +35 -0
- data/golden/schema_imports_composed_order/expected/schema_ruby.rb +33 -0
- data/golden/schema_imports_composed_order/expected/snast.txt +25 -0
- data/golden/schema_imports_composed_order/expected.json +6 -0
- data/golden/schema_imports_composed_order/input.json +5 -0
- data/golden/schema_imports_composed_order/schema.kumi +15 -0
- data/golden/schema_imports_discount_with_tax/expected/ast.txt +37 -0
- data/golden/schema_imports_discount_with_tax/expected/input_plan.txt +2 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_00_unoptimized.txt +30 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_01_hoist_scalar_references.txt +30 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_02_inlined.txt +37 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_03_cse.txt +34 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_04_1_loop_fusion.txt +34 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_04_loop_invcm.txt +34 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_06_const_prop.txt +34 -0
- data/golden/schema_imports_discount_with_tax/expected/nast.txt +30 -0
- data/golden/schema_imports_discount_with_tax/expected/schema_javascript.mjs +37 -0
- data/golden/schema_imports_discount_with_tax/expected/schema_ruby.rb +34 -0
- data/golden/schema_imports_discount_with_tax/expected/snast.txt +30 -0
- data/golden/schema_imports_discount_with_tax/expected.json +7 -0
- data/golden/schema_imports_discount_with_tax/input.json +4 -0
- data/golden/schema_imports_discount_with_tax/schema.kumi +15 -0
- data/golden/schema_imports_line_items/expected/ast.txt +35 -0
- data/golden/schema_imports_line_items/expected/input_plan.txt +8 -0
- data/golden/schema_imports_line_items/expected/lir_00_unoptimized.txt +19 -0
- data/golden/schema_imports_line_items/expected/lir_01_hoist_scalar_references.txt +19 -0
- data/golden/schema_imports_line_items/expected/lir_02_inlined.txt +24 -0
- data/golden/schema_imports_line_items/expected/lir_03_cse.txt +22 -0
- data/golden/schema_imports_line_items/expected/lir_04_1_loop_fusion.txt +22 -0
- data/golden/schema_imports_line_items/expected/lir_04_loop_invcm.txt +22 -0
- data/golden/schema_imports_line_items/expected/lir_06_const_prop.txt +22 -0
- data/golden/schema_imports_line_items/expected/nast.txt +19 -0
- data/golden/schema_imports_line_items/expected/schema_javascript.mjs +23 -0
- data/golden/schema_imports_line_items/expected/schema_ruby.rb +22 -0
- data/golden/schema_imports_line_items/expected/snast.txt +19 -0
- data/golden/schema_imports_line_items/expected.json +5 -0
- data/golden/schema_imports_line_items/input.json +13 -0
- data/golden/schema_imports_line_items/schema.kumi +17 -0
- data/golden/schema_imports_multiple/expected/ast.txt +35 -0
- data/golden/schema_imports_multiple/expected/input_plan.txt +2 -0
- data/golden/schema_imports_multiple/expected/lir_00_unoptimized.txt +29 -0
- data/golden/schema_imports_multiple/expected/lir_01_hoist_scalar_references.txt +29 -0
- data/golden/schema_imports_multiple/expected/lir_02_inlined.txt +41 -0
- data/golden/schema_imports_multiple/expected/lir_03_cse.txt +37 -0
- data/golden/schema_imports_multiple/expected/lir_04_1_loop_fusion.txt +37 -0
- data/golden/schema_imports_multiple/expected/lir_04_loop_invcm.txt +37 -0
- data/golden/schema_imports_multiple/expected/lir_06_const_prop.txt +37 -0
- data/golden/schema_imports_multiple/expected/nast.txt +28 -0
- data/golden/schema_imports_multiple/expected/schema_javascript.mjs +40 -0
- data/golden/schema_imports_multiple/expected/schema_ruby.rb +37 -0
- data/golden/schema_imports_multiple/expected/snast.txt +28 -0
- data/golden/schema_imports_multiple/expected.json +7 -0
- data/golden/schema_imports_multiple/input.json +4 -0
- data/golden/schema_imports_multiple/schema.kumi +15 -0
- data/golden/schema_imports_nested_expressions/expected/ast.txt +31 -0
- data/golden/schema_imports_nested_expressions/expected/input_plan.txt +3 -0
- data/golden/schema_imports_nested_expressions/expected/lir_00_unoptimized.txt +22 -0
- data/golden/schema_imports_nested_expressions/expected/lir_01_hoist_scalar_references.txt +22 -0
- data/golden/schema_imports_nested_expressions/expected/lir_02_inlined.txt +32 -0
- data/golden/schema_imports_nested_expressions/expected/lir_03_cse.txt +32 -0
- data/golden/schema_imports_nested_expressions/expected/lir_04_1_loop_fusion.txt +32 -0
- data/golden/schema_imports_nested_expressions/expected/lir_04_loop_invcm.txt +32 -0
- data/golden/schema_imports_nested_expressions/expected/lir_06_const_prop.txt +28 -0
- data/golden/schema_imports_nested_expressions/expected/nast.txt +23 -0
- data/golden/schema_imports_nested_expressions/expected/schema_javascript.mjs +29 -0
- data/golden/schema_imports_nested_expressions/expected/schema_ruby.rb +28 -0
- data/golden/schema_imports_nested_expressions/expected/snast.txt +23 -0
- data/golden/schema_imports_nested_expressions/expected.json +5 -0
- data/golden/schema_imports_nested_expressions/input.json +5 -0
- data/golden/schema_imports_nested_expressions/schema.kumi +13 -0
- data/golden/schema_imports_nested_with_reductions/expected/ast.txt +47 -0
- data/golden/schema_imports_nested_with_reductions/expected/input_plan.txt +12 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_00_unoptimized.txt +31 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_01_hoist_scalar_references.txt +31 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_02_inlined.txt +58 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_03_cse.txt +49 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_04_1_loop_fusion.txt +51 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_04_loop_invcm.txt +49 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_06_const_prop.txt +49 -0
- data/golden/schema_imports_nested_with_reductions/expected/nast.txt +23 -0
- data/golden/schema_imports_nested_with_reductions/expected/schema_javascript.mjs +49 -0
- data/golden/schema_imports_nested_with_reductions/expected/schema_ruby.rb +52 -0
- data/golden/schema_imports_nested_with_reductions/expected/snast.txt +23 -0
- data/golden/schema_imports_nested_with_reductions/expected.json +6 -0
- data/golden/schema_imports_nested_with_reductions/input.json +16 -0
- data/golden/schema_imports_nested_with_reductions/schema.kumi +23 -0
- data/golden/schema_imports_with_imports/expected/ast.txt +19 -0
- data/golden/schema_imports_with_imports/expected/input_plan.txt +1 -0
- data/golden/schema_imports_with_imports/expected/lir_00_unoptimized.txt +13 -0
- data/golden/schema_imports_with_imports/expected/lir_01_hoist_scalar_references.txt +13 -0
- data/golden/schema_imports_with_imports/expected/lir_02_inlined.txt +14 -0
- data/golden/schema_imports_with_imports/expected/lir_03_cse.txt +13 -0
- data/golden/schema_imports_with_imports/expected/lir_04_1_loop_fusion.txt +13 -0
- data/golden/schema_imports_with_imports/expected/lir_04_loop_invcm.txt +13 -0
- data/golden/schema_imports_with_imports/expected/lir_06_const_prop.txt +13 -0
- data/golden/schema_imports_with_imports/expected/nast.txt +13 -0
- data/golden/schema_imports_with_imports/expected/schema_javascript.mjs +13 -0
- data/golden/schema_imports_with_imports/expected/schema_ruby.rb +13 -0
- data/golden/schema_imports_with_imports/expected/snast.txt +13 -0
- data/golden/schema_imports_with_imports/expected.json +4 -0
- data/golden/schema_imports_with_imports/input.json +3 -0
- data/golden/schema_imports_with_imports/schema.kumi +10 -0
- data/golden/shift/expected/lir_06_const_prop.txt +18 -30
- data/golden/shift/expected/schema_javascript.mjs +18 -30
- data/golden/shift/expected/schema_ruby.rb +25 -67
- data/golden/shift_2d/expected/lir_06_const_prop.txt +36 -60
- data/golden/shift_2d/expected/schema_javascript.mjs +36 -60
- data/golden/shift_2d/expected/schema_ruby.rb +49 -109
- data/golden/simple_math/expected/lir_06_const_prop.txt +3 -6
- data/golden/simple_math/expected/schema_javascript.mjs +3 -6
- data/golden/simple_math/expected/schema_ruby.rb +8 -39
- data/golden/streaming_basics/expected/lir_06_const_prop.txt +6 -12
- data/golden/streaming_basics/expected/schema_javascript.mjs +6 -12
- data/golden/streaming_basics/expected/schema_ruby.rb +14 -51
- data/golden/tuples/expected/lir_06_const_prop.txt +5 -22
- data/golden/tuples/expected/schema_javascript.mjs +5 -22
- data/golden/tuples/expected/schema_ruby.rb +11 -57
- data/golden/tuples_and_arrays/expected/lir_06_const_prop.txt +4 -8
- data/golden/tuples_and_arrays/expected/schema_javascript.mjs +4 -8
- data/golden/tuples_and_arrays/expected/schema_ruby.rb +9 -41
- data/golden/us_tax_2024/expected/lir_06_const_prop.txt +94 -171
- data/golden/us_tax_2024/expected/schema_javascript.mjs +13 -21
- data/golden/us_tax_2024/expected/schema_ruby.rb +15 -48
- data/golden/with_constants/expected/lir_06_const_prop.txt +3 -8
- data/golden/with_constants/expected/schema_javascript.mjs +3 -8
- data/golden/with_constants/expected/schema_ruby.rb +5 -35
- data/lib/kumi/analyzer.rb +8 -7
- data/lib/kumi/configuration.rb +7 -6
- data/lib/kumi/core/analyzer/passes/attach_anchors_pass.rb +1 -1
- data/lib/kumi/core/analyzer/passes/attach_terminal_info_pass.rb +1 -1
- data/lib/kumi/core/analyzer/passes/codegen/js/declaration_emitter.rb +20 -0
- data/lib/kumi/core/analyzer/passes/codegen/ruby/declaration_emitter.rb +16 -7
- data/lib/kumi/core/analyzer/passes/codegen/ruby/output_buffer.rb +3 -35
- data/lib/kumi/core/analyzer/passes/dependency_resolver.rb +6 -0
- data/lib/kumi/core/analyzer/passes/import_analysis_pass.rb +90 -0
- data/lib/kumi/core/analyzer/passes/lir/constant_propagation_pass.rb +77 -36
- data/lib/kumi/core/analyzer/passes/lir/lower_pass.rb +26 -11
- data/lib/kumi/core/analyzer/passes/name_indexer.rb +20 -2
- data/lib/kumi/core/analyzer/passes/nast_dimensional_analyzer_pass.rb +44 -0
- data/lib/kumi/core/analyzer/passes/normalize_to_nast_pass.rb +30 -0
- data/lib/kumi/core/analyzer/passes/semantic_constraint_validator.rb +5 -1
- data/lib/kumi/core/analyzer/passes/snast_pass.rb +15 -0
- data/lib/kumi/core/lir/build.rb +27 -0
- data/lib/kumi/core/lir/peephole.rb +164 -0
- data/lib/kumi/core/nast.rb +16 -0
- data/lib/kumi/core/ruby_parser/build_context.rb +3 -1
- data/lib/kumi/core/ruby_parser/parser.rb +1 -1
- data/lib/kumi/core/ruby_parser/schema_builder.rb +33 -3
- data/lib/kumi/dev/golden/result.rb +9 -3
- data/lib/kumi/dev/golden/runtime_test.rb +16 -1
- data/lib/kumi/dev/golden.rb +18 -20
- data/lib/kumi/dev/golden_schema_modules.rb +8 -0
- data/lib/kumi/dev/golden_schema_wrapper.rb +116 -0
- data/lib/kumi/dev/support/kumi_runner.mjs +18 -0
- data/lib/kumi/schema.rb +44 -2
- data/lib/kumi/support/lir_printer.rb +21 -5
- data/lib/kumi/support/nast_printer.rb +11 -0
- data/lib/kumi/support/s_expression_printer.rb +9 -0
- data/lib/kumi/support/snast_printer.rb +6 -0
- data/lib/kumi/syntax/import_call.rb +11 -0
- data/lib/kumi/syntax/import_declaration.rb +11 -0
- data/lib/kumi/syntax/root.rb +2 -2
- data/lib/kumi/test_shared_schemas/compound.rb +21 -0
- data/lib/kumi/test_shared_schemas/discount.rb +19 -0
- data/lib/kumi/test_shared_schemas/price.rb +19 -0
- data/lib/kumi/test_shared_schemas/subtotal.rb +22 -0
- data/lib/kumi/test_shared_schemas/tax.rb +18 -0
- data/lib/kumi/version.rb +1 -1
- data/lib/kumi.rb +19 -4
- metadata +176 -3
|
@@ -1,35 +1,6 @@
|
|
|
1
1
|
# Autogenerated by Kumi Codegen
|
|
2
|
-
module Kumi::Compiled::
|
|
3
|
-
def self.
|
|
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 :total_payroll then _total_payroll
|
|
24
|
-
when :manager_count then _manager_count
|
|
25
|
-
when :senior_employee_count then _senior_employee_count
|
|
26
|
-
when :max_salary then _max_salary
|
|
27
|
-
when :department_summary then _department_summary
|
|
28
|
-
else raise KeyError, "Unknown declaration"
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def _total_payroll(input = @input)
|
|
2
|
+
module Kumi::Compiled::KUMI_23126846b1af6f22cf75b03ec14ec5dcdce551d572089e8d9db65af63ba88bc5
|
|
3
|
+
def self._total_payroll(input)
|
|
33
4
|
out = []
|
|
34
5
|
t1 = input["departments"] || input[:departments]
|
|
35
6
|
t1.each_with_index do |departments_el_2, departments_i_3|
|
|
@@ -45,19 +16,16 @@ module Kumi::Compiled::KUMI_849092b69396f8ec3e0f0deef2a98c2ace6d934d94bac9cc887b
|
|
|
45
16
|
out
|
|
46
17
|
end
|
|
47
18
|
|
|
48
|
-
def _manager_count(input
|
|
19
|
+
def self._manager_count(input)
|
|
49
20
|
out = []
|
|
50
21
|
t10 = input["departments"] || input[:departments]
|
|
51
|
-
t18 = "manager"
|
|
52
|
-
t20 = 1
|
|
53
|
-
t21 = 0
|
|
54
22
|
t10.each_with_index do |departments_el_11, departments_i_12|
|
|
55
23
|
acc_13 = 0
|
|
56
24
|
t14 = departments_el_11["employees"] || departments_el_11[:employees]
|
|
57
25
|
t14.each_with_index do |employees_el_15, employees_i_16|
|
|
58
26
|
t17 = employees_el_15["role"] || employees_el_15[:role]
|
|
59
|
-
t19 = t17 ==
|
|
60
|
-
t22 = t19 ?
|
|
27
|
+
t19 = t17 == "manager"
|
|
28
|
+
t22 = t19 ? 1 : 0
|
|
61
29
|
acc_13 += t22
|
|
62
30
|
end
|
|
63
31
|
t23 = acc_13
|
|
@@ -66,19 +34,16 @@ module Kumi::Compiled::KUMI_849092b69396f8ec3e0f0deef2a98c2ace6d934d94bac9cc887b
|
|
|
66
34
|
out
|
|
67
35
|
end
|
|
68
36
|
|
|
69
|
-
def _senior_employee_count(input
|
|
37
|
+
def self._senior_employee_count(input)
|
|
70
38
|
out = []
|
|
71
39
|
t24 = input["departments"] || input[:departments]
|
|
72
|
-
t32 = "senior"
|
|
73
|
-
t34 = 1
|
|
74
|
-
t35 = 0
|
|
75
40
|
t24.each_with_index do |departments_el_25, departments_i_26|
|
|
76
41
|
acc_27 = 0
|
|
77
42
|
t28 = departments_el_25["employees"] || departments_el_25[:employees]
|
|
78
43
|
t28.each_with_index do |employees_el_29, employees_i_30|
|
|
79
44
|
t31 = employees_el_29["role"] || employees_el_29[:role]
|
|
80
|
-
t33 = t31 ==
|
|
81
|
-
t36 = t33 ?
|
|
45
|
+
t33 = t31 == "senior"
|
|
46
|
+
t36 = t33 ? 1 : 0
|
|
82
47
|
acc_27 += t36
|
|
83
48
|
end
|
|
84
49
|
t37 = acc_27
|
|
@@ -87,7 +52,7 @@ module Kumi::Compiled::KUMI_849092b69396f8ec3e0f0deef2a98c2ace6d934d94bac9cc887b
|
|
|
87
52
|
out
|
|
88
53
|
end
|
|
89
54
|
|
|
90
|
-
def _max_salary(input
|
|
55
|
+
def self._max_salary(input)
|
|
91
56
|
out = []
|
|
92
57
|
t38 = input["departments"] || input[:departments]
|
|
93
58
|
t38.each_with_index do |departments_el_39, departments_i_40|
|
|
@@ -104,13 +69,9 @@ module Kumi::Compiled::KUMI_849092b69396f8ec3e0f0deef2a98c2ace6d934d94bac9cc887b
|
|
|
104
69
|
out
|
|
105
70
|
end
|
|
106
71
|
|
|
107
|
-
def _department_summary(input
|
|
72
|
+
def self._department_summary(input)
|
|
108
73
|
out = []
|
|
109
74
|
t47 = input["departments"] || input[:departments]
|
|
110
|
-
t71 = "manager"
|
|
111
|
-
t73 = 1
|
|
112
|
-
t74 = 0
|
|
113
|
-
t84 = "senior"
|
|
114
75
|
t47.each_with_index do |departments_el_48, departments_i_49|
|
|
115
76
|
t50 = departments_el_48["name"] || departments_el_48[:name]
|
|
116
77
|
acc58 = 0
|
|
@@ -122,13 +83,13 @@ module Kumi::Compiled::KUMI_849092b69396f8ec3e0f0deef2a98c2ace6d934d94bac9cc887b
|
|
|
122
83
|
t62 = t60["salary"] || t60[:salary]
|
|
123
84
|
acc58 += t62
|
|
124
85
|
t70 = t60["role"] || t60[:role]
|
|
125
|
-
t72 = t70 ==
|
|
126
|
-
t75 = t72 ?
|
|
86
|
+
t72 = t70 == "manager"
|
|
87
|
+
t75 = t72 ? 1 : 0
|
|
127
88
|
acc66 += t75
|
|
128
89
|
acc92 ||= t62
|
|
129
90
|
acc92 = t62 if t62 > acc92
|
|
130
|
-
t85 = t70 ==
|
|
131
|
-
t88 = t85 ?
|
|
91
|
+
t85 = t70 == "senior"
|
|
92
|
+
t88 = t85 ? 1 : 0
|
|
132
93
|
acc79 += t88
|
|
133
94
|
end
|
|
134
95
|
t63 = acc58
|
|
@@ -1,40 +1,13 @@
|
|
|
1
1
|
# Autogenerated by Kumi Codegen
|
|
2
|
-
module Kumi::Compiled::
|
|
3
|
-
def self.
|
|
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 :subtotal then _subtotal
|
|
24
|
-
when :tax_amount then _tax_amount
|
|
25
|
-
when :total then _total
|
|
26
|
-
else raise KeyError, "Unknown declaration"
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def _subtotal(input = @input)
|
|
2
|
+
module Kumi::Compiled::KUMI_06522413a1593058499b2c5334a96d6d790f61bd8cf66dca976bd03e097a65bd
|
|
3
|
+
def self._subtotal(input)
|
|
31
4
|
t14 = input["unit_price"] || input[:unit_price]
|
|
32
5
|
t15 = t14.is_a?(BigDecimal) ? t14 : BigDecimal(t14.to_s)
|
|
33
6
|
t6 = input["quantity"] || input[:quantity]
|
|
34
7
|
t15 * t6
|
|
35
8
|
end
|
|
36
9
|
|
|
37
|
-
def _tax_amount(input
|
|
10
|
+
def self._tax_amount(input)
|
|
38
11
|
t19 = input["unit_price"] || input[:unit_price]
|
|
39
12
|
t20 = t19.is_a?(BigDecimal) ? t19 : BigDecimal(t19.to_s)
|
|
40
13
|
t17 = input["quantity"] || input[:quantity]
|
|
@@ -44,7 +17,7 @@ module Kumi::Compiled::KUMI_ae7ebcf0b663c16925a03a4c159b8dc50e8a35bbce4c7e8b4f67
|
|
|
44
17
|
t18 * t22
|
|
45
18
|
end
|
|
46
19
|
|
|
47
|
-
def _total(input
|
|
20
|
+
def self._total(input)
|
|
48
21
|
t26 = input["unit_price"] || input[:unit_price]
|
|
49
22
|
t27 = t26.is_a?(BigDecimal) ? t26 : BigDecimal(t26.to_s)
|
|
50
23
|
t24 = input["quantity"] || input[:quantity]
|
|
@@ -29,11 +29,10 @@
|
|
|
29
29
|
)
|
|
30
30
|
(Declaration cell_over_limit
|
|
31
31
|
%t17 = load_input "cube" :: array
|
|
32
|
-
%t24 = const 100 :: integer
|
|
33
32
|
loop cube id=L7 in %t17 as el=%cube_el_18, idx=%cube_i_19
|
|
34
33
|
loop layer id=L8 in %cube_el_18 as el=%layer_el_20, idx=%layer_i_21
|
|
35
34
|
loop row id=L9 in %layer_el_20 as el=%row_el_22, idx=%row_i_23
|
|
36
|
-
%t25 = call core.gt(%row_el_22,
|
|
35
|
+
%t25 = call core.gt(%row_el_22, 100) :: boolean
|
|
37
36
|
yield %t25
|
|
38
37
|
end_loop
|
|
39
38
|
end_loop
|
|
@@ -41,14 +40,12 @@
|
|
|
41
40
|
)
|
|
42
41
|
(Declaration cell_sum
|
|
43
42
|
%t26 = load_input "cube" :: array
|
|
44
|
-
%t56 = const 100 :: integer
|
|
45
|
-
%t35 = const 0 :: integer
|
|
46
43
|
loop cube id=L10 in %t26 as el=%cube_el_27, idx=%cube_i_28
|
|
47
44
|
loop layer id=L11 in %cube_el_27 as el=%layer_el_29, idx=%layer_i_30
|
|
48
45
|
%acc_31 = decl_acc :: integer
|
|
49
46
|
loop row id=L12 in %layer_el_29 as el=%row_el_32, idx=%row_i_33
|
|
50
|
-
%t57 = call core.gt(%row_el_32,
|
|
51
|
-
%t36 = select %t57, %row_el_32,
|
|
47
|
+
%t57 = call core.gt(%row_el_32, 100) :: boolean
|
|
48
|
+
%t36 = select %t57, %row_el_32, 0 :: integer
|
|
52
49
|
%acc_31 = acc_add agg.sum(%acc_31, %t36) :: integer
|
|
53
50
|
end_loop
|
|
54
51
|
%t37 = acc_load %acc_31 :: integer
|
|
@@ -59,16 +56,13 @@
|
|
|
59
56
|
(Declaration count_over_limit
|
|
60
57
|
%acc_38 = decl_acc :: integer
|
|
61
58
|
%t39 = load_input "cube" :: array
|
|
62
|
-
%t59 = const 100 :: integer
|
|
63
|
-
%t49 = const 1 :: integer
|
|
64
|
-
%t50 = const 0 :: integer
|
|
65
59
|
loop cube id=L13 in %t39 as el=%cube_el_40, idx=%cube_i_41
|
|
66
60
|
%acc_42 = decl_acc :: integer
|
|
67
61
|
loop layer id=L14 in %cube_el_40 as el=%layer_el_43, idx=%layer_i_44
|
|
68
62
|
%acc_45 = decl_acc :: integer
|
|
69
63
|
loop row id=L15 in %layer_el_43 as el=%row_el_46, idx=%row_i_47
|
|
70
|
-
%t60 = call core.gt(%row_el_46,
|
|
71
|
-
%t51 = select %t60,
|
|
64
|
+
%t60 = call core.gt(%row_el_46, 100) :: boolean
|
|
65
|
+
%t51 = select %t60, 1, 0 :: integer
|
|
72
66
|
%acc_45 = acc_add agg.sum(%acc_45, %t51) :: integer
|
|
73
67
|
end_loop
|
|
74
68
|
%t52 = acc_load %acc_45 :: integer
|
|
@@ -45,13 +45,12 @@ export function _cell(input) {
|
|
|
45
45
|
export function _cell_over_limit(input) {
|
|
46
46
|
let out = [];
|
|
47
47
|
let t17 = input["cube"];
|
|
48
|
-
const t24 = 100;
|
|
49
48
|
t17.forEach((cube_el_18, cube_i_19) => {
|
|
50
49
|
let out_1 = [];
|
|
51
50
|
cube_el_18.forEach((layer_el_20, layer_i_21) => {
|
|
52
51
|
let out_2 = [];
|
|
53
52
|
layer_el_20.forEach((row_el_22, row_i_23) => {
|
|
54
|
-
let t25 = row_el_22 >
|
|
53
|
+
let t25 = row_el_22 > 100;
|
|
55
54
|
out_2.push(t25);
|
|
56
55
|
});
|
|
57
56
|
out_1.push(out_2);
|
|
@@ -64,15 +63,13 @@ export function _cell_over_limit(input) {
|
|
|
64
63
|
export function _cell_sum(input) {
|
|
65
64
|
let out = [];
|
|
66
65
|
let t26 = input["cube"];
|
|
67
|
-
const t56 = 100;
|
|
68
|
-
const t35 = 0;
|
|
69
66
|
t26.forEach((cube_el_27, cube_i_28) => {
|
|
70
67
|
let out_1 = [];
|
|
71
68
|
cube_el_27.forEach((layer_el_29, layer_i_30) => {
|
|
72
69
|
let acc_31 = 0;
|
|
73
70
|
layer_el_29.forEach((row_el_32, row_i_33) => {
|
|
74
|
-
let t57 = row_el_32 >
|
|
75
|
-
let t36 = t57 ? row_el_32 :
|
|
71
|
+
let t57 = row_el_32 > 100;
|
|
72
|
+
let t36 = t57 ? row_el_32 : 0;
|
|
76
73
|
acc_31 += t36;
|
|
77
74
|
});
|
|
78
75
|
out_1.push(acc_31);
|
|
@@ -85,16 +82,13 @@ export function _cell_sum(input) {
|
|
|
85
82
|
export function _count_over_limit(input) {
|
|
86
83
|
let acc_38 = 0;
|
|
87
84
|
let t39 = input["cube"];
|
|
88
|
-
const t59 = 100;
|
|
89
|
-
const t49 = 1;
|
|
90
|
-
const t50 = 0;
|
|
91
85
|
t39.forEach((cube_el_40, cube_i_41) => {
|
|
92
86
|
let acc_42 = 0;
|
|
93
87
|
cube_el_40.forEach((layer_el_43, layer_i_44) => {
|
|
94
88
|
let acc_45 = 0;
|
|
95
89
|
layer_el_43.forEach((row_el_46, row_i_47) => {
|
|
96
|
-
let t60 = row_el_46 >
|
|
97
|
-
let t51 = t60 ?
|
|
90
|
+
let t60 = row_el_46 > 100;
|
|
91
|
+
let t51 = t60 ? 1 : 0;
|
|
98
92
|
acc_45 += t51;
|
|
99
93
|
});
|
|
100
94
|
acc_42 += acc_45;
|
|
@@ -1,41 +1,10 @@
|
|
|
1
1
|
# Autogenerated by Kumi Codegen
|
|
2
|
-
module Kumi::Compiled::
|
|
3
|
-
def self.
|
|
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 :cube then _cube
|
|
24
|
-
when :layer then _layer
|
|
25
|
-
when :row then _row
|
|
26
|
-
when :cell then _cell
|
|
27
|
-
when :cell_over_limit then _cell_over_limit
|
|
28
|
-
when :cell_sum then _cell_sum
|
|
29
|
-
when :count_over_limit then _count_over_limit
|
|
30
|
-
else raise KeyError, "Unknown declaration"
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def _cube(input = @input)
|
|
2
|
+
module Kumi::Compiled::KUMI_500e48e98df9614aa45c8a870517dc72e3e246ab7be3527f5d0ffab1863bc07e
|
|
3
|
+
def self._cube(input)
|
|
35
4
|
input["cube"] || input[:cube]
|
|
36
5
|
end
|
|
37
6
|
|
|
38
|
-
def _layer(input
|
|
7
|
+
def self._layer(input)
|
|
39
8
|
out = []
|
|
40
9
|
t2 = input["cube"] || input[:cube]
|
|
41
10
|
t2.each_with_index do |cube_el_3, cube_i_4|
|
|
@@ -44,7 +13,7 @@ module Kumi::Compiled::KUMI_401fa074a7fd129c705cf2357bd65dfaa8cff4ab7955a9a23d7e
|
|
|
44
13
|
out
|
|
45
14
|
end
|
|
46
15
|
|
|
47
|
-
def _row(input
|
|
16
|
+
def self._row(input)
|
|
48
17
|
out = []
|
|
49
18
|
t5 = input["cube"] || input[:cube]
|
|
50
19
|
t5.each_with_index do |cube_el_6, cube_i_7|
|
|
@@ -57,7 +26,7 @@ module Kumi::Compiled::KUMI_401fa074a7fd129c705cf2357bd65dfaa8cff4ab7955a9a23d7e
|
|
|
57
26
|
out
|
|
58
27
|
end
|
|
59
28
|
|
|
60
|
-
def _cell(input
|
|
29
|
+
def self._cell(input)
|
|
61
30
|
out = []
|
|
62
31
|
t10 = input["cube"] || input[:cube]
|
|
63
32
|
t10.each_with_index do |cube_el_11, cube_i_12|
|
|
@@ -74,16 +43,15 @@ module Kumi::Compiled::KUMI_401fa074a7fd129c705cf2357bd65dfaa8cff4ab7955a9a23d7e
|
|
|
74
43
|
out
|
|
75
44
|
end
|
|
76
45
|
|
|
77
|
-
def _cell_over_limit(input
|
|
46
|
+
def self._cell_over_limit(input)
|
|
78
47
|
out = []
|
|
79
48
|
t17 = input["cube"] || input[:cube]
|
|
80
|
-
t24 = 100
|
|
81
49
|
t17.each_with_index do |cube_el_18, cube_i_19|
|
|
82
50
|
out_1 = []
|
|
83
51
|
cube_el_18.each_with_index do |layer_el_20, layer_i_21|
|
|
84
52
|
out_2 = []
|
|
85
53
|
layer_el_20.each_with_index do |row_el_22, row_i_23|
|
|
86
|
-
t25 = row_el_22 >
|
|
54
|
+
t25 = row_el_22 > 100
|
|
87
55
|
out_2 << t25
|
|
88
56
|
end
|
|
89
57
|
out_1 << out_2
|
|
@@ -93,18 +61,16 @@ module Kumi::Compiled::KUMI_401fa074a7fd129c705cf2357bd65dfaa8cff4ab7955a9a23d7e
|
|
|
93
61
|
out
|
|
94
62
|
end
|
|
95
63
|
|
|
96
|
-
def _cell_sum(input
|
|
64
|
+
def self._cell_sum(input)
|
|
97
65
|
out = []
|
|
98
66
|
t26 = input["cube"] || input[:cube]
|
|
99
|
-
t56 = 100
|
|
100
|
-
t35 = 0
|
|
101
67
|
t26.each_with_index do |cube_el_27, cube_i_28|
|
|
102
68
|
out_1 = []
|
|
103
69
|
cube_el_27.each_with_index do |layer_el_29, layer_i_30|
|
|
104
70
|
acc_31 = 0
|
|
105
71
|
layer_el_29.each_with_index do |row_el_32, row_i_33|
|
|
106
|
-
t57 = row_el_32 >
|
|
107
|
-
t36 = t57 ? row_el_32 :
|
|
72
|
+
t57 = row_el_32 > 100
|
|
73
|
+
t36 = t57 ? row_el_32 : 0
|
|
108
74
|
acc_31 += t36
|
|
109
75
|
end
|
|
110
76
|
t37 = acc_31
|
|
@@ -115,19 +81,16 @@ module Kumi::Compiled::KUMI_401fa074a7fd129c705cf2357bd65dfaa8cff4ab7955a9a23d7e
|
|
|
115
81
|
out
|
|
116
82
|
end
|
|
117
83
|
|
|
118
|
-
def _count_over_limit(input
|
|
84
|
+
def self._count_over_limit(input)
|
|
119
85
|
acc_38 = 0
|
|
120
86
|
t39 = input["cube"] || input[:cube]
|
|
121
|
-
t59 = 100
|
|
122
|
-
t49 = 1
|
|
123
|
-
t50 = 0
|
|
124
87
|
t39.each_with_index do |cube_el_40, cube_i_41|
|
|
125
88
|
acc_42 = 0
|
|
126
89
|
cube_el_40.each_with_index do |layer_el_43, layer_i_44|
|
|
127
90
|
acc_45 = 0
|
|
128
91
|
layer_el_43.each_with_index do |row_el_46, row_i_47|
|
|
129
|
-
t60 = row_el_46 >
|
|
130
|
-
t51 = t60 ?
|
|
92
|
+
t60 = row_el_46 > 100
|
|
93
|
+
t51 = t60 ? 1 : 0
|
|
131
94
|
acc_45 += t51
|
|
132
95
|
end
|
|
133
96
|
t52 = acc_45
|
|
@@ -1,33 +1,6 @@
|
|
|
1
1
|
# Autogenerated by Kumi Codegen
|
|
2
|
-
module Kumi::Compiled::
|
|
3
|
-
def self.
|
|
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 :regional_sales then _regional_sales
|
|
24
|
-
when :total_sales then _total_sales
|
|
25
|
-
when :adjusted_total then _adjusted_total
|
|
26
|
-
else raise KeyError, "Unknown declaration"
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def _regional_sales(input = @input)
|
|
2
|
+
module Kumi::Compiled::KUMI_66b672a69c6018b50be95fdc43efa0d033f231c6bb754d6681e32f0de68f63b8
|
|
3
|
+
def self._regional_sales(input)
|
|
31
4
|
out = []
|
|
32
5
|
t1 = input["regions"] || input[:regions]
|
|
33
6
|
t1.each_with_index do |regions_el_2, regions_i_3|
|
|
@@ -43,7 +16,7 @@ module Kumi::Compiled::KUMI_80c4084bbdeb901911f5e3b0a931bdf8170ef074f23c693b9d33
|
|
|
43
16
|
out
|
|
44
17
|
end
|
|
45
18
|
|
|
46
|
-
def _total_sales(input
|
|
19
|
+
def self._total_sales(input)
|
|
47
20
|
acc_10 = 0
|
|
48
21
|
t11 = input["regions"] || input[:regions]
|
|
49
22
|
t11.each_with_index do |regions_el_12, regions_i_13|
|
|
@@ -59,7 +32,7 @@ module Kumi::Compiled::KUMI_80c4084bbdeb901911f5e3b0a931bdf8170ef074f23c693b9d33
|
|
|
59
32
|
acc_10
|
|
60
33
|
end
|
|
61
34
|
|
|
62
|
-
def _adjusted_total(input
|
|
35
|
+
def self._adjusted_total(input)
|
|
63
36
|
acc28 = 0
|
|
64
37
|
t29 = input["regions"] || input[:regions]
|
|
65
38
|
t29.each_with_index do |t30, t31|
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
(Root
|
|
2
|
+
inputs: [
|
|
3
|
+
(InputDeclaration :x :integer)
|
|
4
|
+
]
|
|
5
|
+
values: [
|
|
6
|
+
(ValueDeclaration :scaled
|
|
7
|
+
(CallExpression :multiply
|
|
8
|
+
(InputReference :x)
|
|
9
|
+
(Literal 10)
|
|
10
|
+
)
|
|
11
|
+
)
|
|
12
|
+
(ValueDeclaration :affine
|
|
13
|
+
(CallExpression :add
|
|
14
|
+
(CallExpression :multiply
|
|
15
|
+
(InputReference :x)
|
|
16
|
+
(Literal 10)
|
|
17
|
+
)
|
|
18
|
+
(Literal 5)
|
|
19
|
+
)
|
|
20
|
+
)
|
|
21
|
+
]
|
|
22
|
+
traits: []
|
|
23
|
+
)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
x: integer
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
(LIR
|
|
2
|
+
(Declaration scaled
|
|
3
|
+
%t1 = load_input "x" :: integer
|
|
4
|
+
%t2 = const 10 :: integer
|
|
5
|
+
%t3 = call core.mul:numeric(%t1, %t2) :: integer
|
|
6
|
+
yield %t3
|
|
7
|
+
)
|
|
8
|
+
(Declaration affine
|
|
9
|
+
%t4 = load_input "x" :: integer
|
|
10
|
+
%t5 = const 10 :: integer
|
|
11
|
+
%t6 = call core.mul:numeric(%t4, %t5) :: integer
|
|
12
|
+
%t7 = const 5 :: integer
|
|
13
|
+
%t8 = call core.add(%t6, %t7) :: integer
|
|
14
|
+
yield %t8
|
|
15
|
+
)
|
|
16
|
+
)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
(LIR
|
|
2
|
+
(Declaration scaled
|
|
3
|
+
%t1 = load_input "x" :: integer
|
|
4
|
+
%t2 = const 10 :: integer
|
|
5
|
+
%t3 = call core.mul:numeric(%t1, %t2) :: integer
|
|
6
|
+
yield %t3
|
|
7
|
+
)
|
|
8
|
+
(Declaration affine
|
|
9
|
+
%t4 = load_input "x" :: integer
|
|
10
|
+
%t5 = const 10 :: integer
|
|
11
|
+
%t6 = call core.mul:numeric(%t4, %t5) :: integer
|
|
12
|
+
%t7 = const 5 :: integer
|
|
13
|
+
%t8 = call core.add(%t6, %t7) :: integer
|
|
14
|
+
yield %t8
|
|
15
|
+
)
|
|
16
|
+
)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
(LIR
|
|
2
|
+
(Declaration scaled
|
|
3
|
+
%t1 = load_input "x" :: integer
|
|
4
|
+
%t2 = const 10 :: integer
|
|
5
|
+
%t3 = call core.mul:numeric(%t1, %t2) :: integer
|
|
6
|
+
yield %t3
|
|
7
|
+
)
|
|
8
|
+
(Declaration affine
|
|
9
|
+
%t4 = load_input "x" :: integer
|
|
10
|
+
%t5 = const 10 :: integer
|
|
11
|
+
%t6 = call core.mul:numeric(%t4, %t5) :: integer
|
|
12
|
+
%t7 = const 5 :: integer
|
|
13
|
+
%t8 = call core.add(%t6, %t7) :: integer
|
|
14
|
+
yield %t8
|
|
15
|
+
)
|
|
16
|
+
)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
(LIR
|
|
2
|
+
(Declaration scaled
|
|
3
|
+
%t1 = load_input "x" :: integer
|
|
4
|
+
%t2 = const 10 :: integer
|
|
5
|
+
%t3 = call core.mul:numeric(%t1, %t2) :: integer
|
|
6
|
+
yield %t3
|
|
7
|
+
)
|
|
8
|
+
(Declaration affine
|
|
9
|
+
%t4 = load_input "x" :: integer
|
|
10
|
+
%t5 = const 10 :: integer
|
|
11
|
+
%t6 = call core.mul:numeric(%t4, %t5) :: integer
|
|
12
|
+
%t7 = const 5 :: integer
|
|
13
|
+
%t8 = call core.add(%t6, %t7) :: integer
|
|
14
|
+
yield %t8
|
|
15
|
+
)
|
|
16
|
+
)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
(LIR
|
|
2
|
+
(Declaration scaled
|
|
3
|
+
%t1 = load_input "x" :: integer
|
|
4
|
+
%t2 = const 10 :: integer
|
|
5
|
+
%t3 = call core.mul:numeric(%t1, %t2) :: integer
|
|
6
|
+
yield %t3
|
|
7
|
+
)
|
|
8
|
+
(Declaration affine
|
|
9
|
+
%t4 = load_input "x" :: integer
|
|
10
|
+
%t5 = const 10 :: integer
|
|
11
|
+
%t6 = call core.mul:numeric(%t4, %t5) :: integer
|
|
12
|
+
%t7 = const 5 :: integer
|
|
13
|
+
%t8 = call core.add(%t6, %t7) :: integer
|
|
14
|
+
yield %t8
|
|
15
|
+
)
|
|
16
|
+
)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
(LIR
|
|
2
|
+
(Declaration scaled
|
|
3
|
+
%t1 = load_input "x" :: integer
|
|
4
|
+
%t2 = const 10 :: integer
|
|
5
|
+
%t3 = call core.mul:numeric(%t1, %t2) :: integer
|
|
6
|
+
yield %t3
|
|
7
|
+
)
|
|
8
|
+
(Declaration affine
|
|
9
|
+
%t4 = load_input "x" :: integer
|
|
10
|
+
%t5 = const 10 :: integer
|
|
11
|
+
%t6 = call core.mul:numeric(%t4, %t5) :: integer
|
|
12
|
+
%t7 = const 5 :: integer
|
|
13
|
+
%t8 = call core.add(%t6, %t7) :: integer
|
|
14
|
+
yield %t8
|
|
15
|
+
)
|
|
16
|
+
)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
(LIR
|
|
2
|
+
(Declaration scaled
|
|
3
|
+
%t1 = load_input "x" :: integer
|
|
4
|
+
%t3 = call core.mul:numeric(%t1, 10) :: integer
|
|
5
|
+
yield %t3
|
|
6
|
+
)
|
|
7
|
+
(Declaration affine
|
|
8
|
+
%t4 = load_input "x" :: integer
|
|
9
|
+
%t6 = call core.mul:numeric(%t4, 10) :: integer
|
|
10
|
+
%t8 = call core.add(%t6, 5) :: integer
|
|
11
|
+
yield %t8
|
|
12
|
+
)
|
|
13
|
+
)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Autogenerated by Kumi Codegen
|
|
2
|
+
module Kumi::Compiled::KUMI_258f33c7f1c2ff232ede3b27da1338b635afb8f3ad97c453028b12f20598d7b6
|
|
3
|
+
def self._scaled(input)
|
|
4
|
+
t1 = input["x"] || input[:x]
|
|
5
|
+
t1 * 10
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def self._affine(input)
|
|
9
|
+
t4 = input["x"] || input[:x]
|
|
10
|
+
t6 = t4 * 10
|
|
11
|
+
t6 + 5
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
(SNAST
|
|
2
|
+
(VALUE scaled
|
|
3
|
+
(Call :core.mul:numeric
|
|
4
|
+
(InputRef x key_chain=[]) :: [] -> integer
|
|
5
|
+
(Const 10) :: [] -> integer
|
|
6
|
+
) :: [] -> integer
|
|
7
|
+
) :: [] -> integer
|
|
8
|
+
(VALUE affine
|
|
9
|
+
(Call :core.add
|
|
10
|
+
(Call :core.mul:numeric
|
|
11
|
+
(InputRef x key_chain=[]) :: [] -> integer
|
|
12
|
+
(Const 10) :: [] -> integer
|
|
13
|
+
) :: [] -> integer
|
|
14
|
+
(Const 5) :: [] -> integer
|
|
15
|
+
) :: [] -> integer
|
|
16
|
+
) :: [] -> integer
|
|
17
|
+
)
|