kumi 0.0.25 → 0.0.27
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 +16 -0
- data/CLAUDE.md +4 -0
- data/README.md +86 -78
- data/data/functions/agg/boolean.yaml +6 -2
- data/data/functions/agg/numeric.yaml +32 -16
- data/data/functions/agg/string.yaml +4 -3
- data/data/functions/core/arithmetic.yaml +62 -14
- data/data/functions/core/boolean.yaml +12 -6
- data/data/functions/core/comparison.yaml +25 -13
- data/data/functions/core/constructor.yaml +16 -8
- data/data/functions/core/conversion.yaml +32 -0
- data/data/functions/core/select.yaml +3 -1
- data/data/functions/core/stencil.yaml +14 -5
- data/data/functions/core/string.yaml +9 -4
- data/data/kernels/javascript/core/coercion.yaml +20 -0
- data/data/kernels/ruby/agg/numeric.yaml +1 -1
- data/data/kernels/ruby/core/coercion.yaml +20 -0
- data/docs/ARCHITECTURE.md +277 -0
- data/docs/DEVELOPMENT.md +62 -0
- data/docs/FUNCTIONS.md +955 -0
- data/docs/SYNTAX.md +8 -0
- data/docs/UNSAT_DETECTION.md +83 -0
- data/docs/VSCODE_EXTENSION.md +114 -0
- data/docs/functions-reference.json +1821 -0
- data/golden/array_element/expected/nast.txt +1 -1
- data/golden/array_element/expected/schema_ruby.rb +1 -1
- data/golden/array_index/expected/nast.txt +7 -7
- data/golden/array_index/expected/schema_ruby.rb +1 -1
- data/golden/array_operations/expected/nast.txt +2 -2
- data/golden/array_operations/expected/schema_ruby.rb +1 -1
- data/golden/array_operations/expected/snast.txt +3 -3
- data/golden/cascade_logic/expected/schema_ruby.rb +1 -1
- data/golden/cascade_logic/expected/snast.txt +2 -2
- data/golden/chained_fusion/expected/nast.txt +2 -2
- data/golden/chained_fusion/expected/schema_ruby.rb +1 -1
- data/golden/decimal_explicit/expected/ast.txt +38 -0
- data/golden/decimal_explicit/expected/input_plan.txt +3 -0
- data/golden/decimal_explicit/expected/lir_00_unoptimized.txt +30 -0
- data/golden/decimal_explicit/expected/lir_01_hoist_scalar_references.txt +30 -0
- data/golden/decimal_explicit/expected/lir_02_inlined.txt +44 -0
- data/golden/decimal_explicit/expected/lir_03_cse.txt +40 -0
- data/golden/decimal_explicit/expected/lir_04_1_loop_fusion.txt +40 -0
- data/golden/decimal_explicit/expected/lir_04_loop_invcm.txt +40 -0
- data/golden/decimal_explicit/expected/lir_06_const_prop.txt +40 -0
- data/golden/decimal_explicit/expected/nast.txt +30 -0
- data/golden/decimal_explicit/expected/schema_javascript.mjs +31 -0
- data/golden/decimal_explicit/expected/schema_ruby.rb +57 -0
- data/golden/decimal_explicit/expected/snast.txt +30 -0
- data/golden/decimal_explicit/expected.json +1 -0
- data/golden/decimal_explicit/input.json +5 -0
- data/golden/decimal_explicit/schema.kumi +14 -0
- data/golden/element_arrays/expected/nast.txt +2 -2
- data/golden/element_arrays/expected/schema_ruby.rb +1 -1
- data/golden/element_arrays/expected/snast.txt +1 -1
- data/golden/empty_and_null_inputs/expected/nast.txt +3 -3
- data/golden/empty_and_null_inputs/expected/schema_ruby.rb +1 -1
- data/golden/function_overload/expected/ast.txt +29 -0
- data/golden/function_overload/expected/input_plan.txt +4 -0
- data/golden/function_overload/expected/lir_00_unoptimized.txt +18 -0
- data/golden/function_overload/expected/lir_01_hoist_scalar_references.txt +18 -0
- data/golden/function_overload/expected/lir_02_inlined.txt +20 -0
- data/golden/function_overload/expected/lir_03_cse.txt +20 -0
- data/golden/function_overload/expected/lir_04_1_loop_fusion.txt +20 -0
- data/golden/function_overload/expected/lir_04_loop_invcm.txt +20 -0
- data/golden/function_overload/expected/lir_06_const_prop.txt +20 -0
- data/golden/function_overload/expected/nast.txt +22 -0
- data/golden/function_overload/expected/schema_javascript.mjs +12 -0
- data/golden/function_overload/expected/schema_ruby.rb +39 -0
- data/golden/function_overload/expected/snast.txt +22 -0
- data/golden/function_overload/input.json +8 -0
- data/golden/function_overload/schema.kumi +19 -0
- data/golden/game_of_life/expected/lir_00_unoptimized.txt +4 -4
- data/golden/game_of_life/expected/lir_01_hoist_scalar_references.txt +4 -4
- data/golden/game_of_life/expected/lir_02_inlined.txt +16 -16
- data/golden/game_of_life/expected/lir_03_cse.txt +20 -16
- data/golden/game_of_life/expected/lir_04_1_loop_fusion.txt +20 -16
- data/golden/game_of_life/expected/lir_04_loop_invcm.txt +20 -16
- data/golden/game_of_life/expected/lir_06_const_prop.txt +20 -16
- data/golden/game_of_life/expected/nast.txt +4 -4
- data/golden/game_of_life/expected/schema_javascript.mjs +4 -2
- data/golden/game_of_life/expected/schema_ruby.rb +5 -3
- data/golden/game_of_life/expected/snast.txt +10 -10
- data/golden/hash_keys/expected/schema_ruby.rb +1 -1
- data/golden/hash_value/expected/nast.txt +1 -1
- data/golden/hash_value/expected/schema_ruby.rb +1 -1
- data/golden/hash_value/expected/snast.txt +1 -1
- data/golden/hierarchical_complex/expected/nast.txt +3 -3
- data/golden/hierarchical_complex/expected/schema_ruby.rb +1 -1
- data/golden/hierarchical_complex/expected/snast.txt +3 -3
- data/golden/inline_rename_scope_leak/expected/nast.txt +3 -3
- data/golden/inline_rename_scope_leak/expected/schema_ruby.rb +1 -1
- data/golden/input_reference/expected/nast.txt +2 -2
- data/golden/input_reference/expected/schema_ruby.rb +1 -1
- data/golden/interleaved_fusion/expected/nast.txt +2 -2
- data/golden/interleaved_fusion/expected/schema_ruby.rb +1 -1
- data/golden/let_inline/expected/nast.txt +4 -4
- data/golden/let_inline/expected/schema_ruby.rb +1 -1
- data/golden/loop_fusion/expected/nast.txt +1 -1
- data/golden/loop_fusion/expected/schema_ruby.rb +1 -1
- data/golden/min_reduce_scope/expected/nast.txt +3 -3
- data/golden/min_reduce_scope/expected/schema_ruby.rb +1 -1
- data/golden/min_reduce_scope/expected/snast.txt +1 -1
- data/golden/mixed_dimensions/expected/nast.txt +2 -2
- data/golden/mixed_dimensions/expected/schema_ruby.rb +1 -1
- data/golden/multirank_hoisting/expected/nast.txt +7 -7
- data/golden/multirank_hoisting/expected/schema_ruby.rb +1 -1
- data/golden/nested_hash/expected/nast.txt +1 -1
- data/golden/nested_hash/expected/schema_ruby.rb +1 -1
- data/golden/reduction_broadcast/expected/nast.txt +3 -3
- data/golden/reduction_broadcast/expected/schema_ruby.rb +1 -1
- data/golden/reduction_broadcast/expected/snast.txt +1 -1
- data/golden/roll/expected/schema_ruby.rb +1 -1
- data/golden/shift/expected/schema_ruby.rb +1 -1
- data/golden/shift_2d/expected/schema_ruby.rb +1 -1
- data/golden/simple_math/expected/lir_00_unoptimized.txt +1 -1
- data/golden/simple_math/expected/lir_01_hoist_scalar_references.txt +1 -1
- data/golden/simple_math/expected/lir_02_inlined.txt +1 -1
- data/golden/simple_math/expected/lir_03_cse.txt +1 -1
- data/golden/simple_math/expected/lir_04_1_loop_fusion.txt +1 -1
- data/golden/simple_math/expected/lir_04_loop_invcm.txt +1 -1
- data/golden/simple_math/expected/lir_06_const_prop.txt +1 -1
- data/golden/simple_math/expected/nast.txt +5 -5
- data/golden/simple_math/expected/schema_ruby.rb +1 -1
- data/golden/simple_math/expected/snast.txt +2 -2
- data/golden/streaming_basics/expected/nast.txt +8 -8
- data/golden/streaming_basics/expected/schema_ruby.rb +1 -1
- data/golden/streaming_basics/expected/snast.txt +1 -1
- data/golden/tuples/expected/lir_00_unoptimized.txt +5 -5
- data/golden/tuples/expected/lir_01_hoist_scalar_references.txt +5 -5
- data/golden/tuples/expected/lir_02_inlined.txt +5 -5
- data/golden/tuples/expected/lir_03_cse.txt +5 -5
- data/golden/tuples/expected/lir_04_1_loop_fusion.txt +5 -5
- data/golden/tuples/expected/lir_04_loop_invcm.txt +5 -5
- data/golden/tuples/expected/lir_06_const_prop.txt +5 -5
- data/golden/tuples/expected/nast.txt +4 -4
- data/golden/tuples/expected/schema_ruby.rb +1 -1
- data/golden/tuples/expected/snast.txt +6 -6
- data/golden/tuples_and_arrays/expected/lir_00_unoptimized.txt +1 -1
- data/golden/tuples_and_arrays/expected/lir_01_hoist_scalar_references.txt +1 -1
- data/golden/tuples_and_arrays/expected/lir_02_inlined.txt +2 -2
- data/golden/tuples_and_arrays/expected/lir_03_cse.txt +2 -2
- data/golden/tuples_and_arrays/expected/lir_04_1_loop_fusion.txt +2 -2
- data/golden/tuples_and_arrays/expected/lir_04_loop_invcm.txt +2 -2
- data/golden/tuples_and_arrays/expected/lir_06_const_prop.txt +2 -2
- data/golden/tuples_and_arrays/expected/nast.txt +3 -3
- data/golden/tuples_and_arrays/expected/schema_ruby.rb +1 -1
- data/golden/tuples_and_arrays/expected/snast.txt +2 -2
- data/golden/us_tax_2024/expected/ast.txt +63 -670
- data/golden/us_tax_2024/expected/input_plan.txt +8 -45
- data/golden/us_tax_2024/expected/lir_00_unoptimized.txt +253 -863
- data/golden/us_tax_2024/expected/lir_01_hoist_scalar_references.txt +253 -863
- data/golden/us_tax_2024/expected/lir_02_inlined.txt +1215 -5139
- data/golden/us_tax_2024/expected/lir_03_cse.txt +587 -2460
- data/golden/us_tax_2024/expected/lir_04_1_loop_fusion.txt +632 -2480
- data/golden/us_tax_2024/expected/lir_04_loop_invcm.txt +587 -2460
- data/golden/us_tax_2024/expected/lir_06_const_prop.txt +587 -2460
- data/golden/us_tax_2024/expected/nast.txt +123 -826
- data/golden/us_tax_2024/expected/schema_javascript.mjs +127 -581
- data/golden/us_tax_2024/expected/schema_ruby.rb +135 -610
- data/golden/us_tax_2024/expected/snast.txt +155 -858
- data/golden/us_tax_2024/expected.json +120 -1
- data/golden/us_tax_2024/input.json +18 -9
- data/golden/us_tax_2024/schema.kumi +48 -178
- data/golden/with_constants/expected/lir_00_unoptimized.txt +1 -1
- data/golden/with_constants/expected/lir_01_hoist_scalar_references.txt +1 -1
- data/golden/with_constants/expected/lir_02_inlined.txt +1 -1
- data/golden/with_constants/expected/lir_03_cse.txt +1 -1
- data/golden/with_constants/expected/lir_04_1_loop_fusion.txt +1 -1
- data/golden/with_constants/expected/lir_04_loop_invcm.txt +1 -1
- data/golden/with_constants/expected/lir_06_const_prop.txt +1 -1
- data/golden/with_constants/expected/nast.txt +2 -2
- data/golden/with_constants/expected/schema_ruby.rb +1 -1
- data/golden/with_constants/expected/snast.txt +2 -2
- data/lib/kumi/analyzer.rb +12 -12
- data/lib/kumi/configuration.rb +6 -0
- data/lib/kumi/core/analyzer/passes/formal_constraint_propagator.rb +236 -0
- data/lib/kumi/core/analyzer/passes/input_collector.rb +22 -4
- data/lib/kumi/core/analyzer/passes/nast_dimensional_analyzer_pass.rb +64 -18
- data/lib/kumi/core/analyzer/passes/normalize_to_nast_pass.rb +9 -4
- data/lib/kumi/core/analyzer/passes/snast_pass.rb +3 -1
- data/lib/kumi/core/analyzer/passes/unsat_detector.rb +172 -198
- data/lib/kumi/core/error_reporter.rb +36 -1
- data/lib/kumi/core/errors.rb +33 -1
- data/lib/kumi/core/functions/function_spec.rb +5 -4
- data/lib/kumi/core/functions/loader.rb +17 -1
- data/lib/kumi/core/functions/overload_resolver.rb +164 -0
- data/lib/kumi/core/functions/type_error_reporter.rb +118 -0
- data/lib/kumi/core/functions/type_rules.rb +155 -35
- data/lib/kumi/core/input/type_matcher.rb +8 -1
- data/lib/kumi/core/ruby_parser/input_builder.rb +2 -2
- data/lib/kumi/core/types/inference.rb +29 -22
- data/lib/kumi/core/types/normalizer.rb +30 -45
- data/lib/kumi/core/types/validator.rb +17 -28
- data/lib/kumi/core/types/value_objects.rb +116 -0
- data/lib/kumi/core/types.rb +45 -37
- data/lib/kumi/dev/golden/reporter.rb +9 -0
- data/lib/kumi/dev/golden/result.rb +3 -1
- data/lib/kumi/dev/golden/runtime_test.rb +25 -0
- data/lib/kumi/dev/golden/suite.rb +4 -4
- data/lib/kumi/dev/golden/value_normalizer.rb +80 -0
- data/lib/kumi/dev/golden.rb +21 -12
- data/lib/kumi/doc_generator/formatters/json.rb +39 -0
- data/lib/kumi/doc_generator/formatters/markdown.rb +175 -0
- data/lib/kumi/doc_generator/loader.rb +37 -0
- data/lib/kumi/doc_generator/merger.rb +54 -0
- data/lib/kumi/doc_generator.rb +4 -0
- data/lib/kumi/registry_v2/loader.rb +90 -0
- data/lib/kumi/registry_v2.rb +18 -1
- data/lib/kumi/version.rb +1 -1
- data/vscode-extension/.gitignore +4 -0
- data/vscode-extension/README.md +59 -0
- data/vscode-extension/TESTING.md +151 -0
- data/vscode-extension/package.json +51 -0
- data/vscode-extension/src/extension.ts +295 -0
- data/vscode-extension/tsconfig.json +15 -0
- metadata +57 -7
- data/lib/kumi/core/analyzer/unsat_constant_evaluator.rb +0 -59
- data/lib/kumi/core/atom_unsat_solver.rb +0 -396
- data/lib/kumi/core/constraint_relationship_solver.rb +0 -641
- data/lib/kumi/core/types/builder.rb +0 -23
- data/lib/kumi/core/types/compatibility.rb +0 -96
- data/lib/kumi/core/types/formatter.rb +0 -26
@@ -11,7 +11,7 @@
|
|
11
11
|
(VALUE cell
|
12
12
|
(InputRef cube.layer.row.cell key_chain=[]) :: [cube, layer, row] -> integer
|
13
13
|
) :: [cube, layer, row] -> integer
|
14
|
-
(
|
14
|
+
(VALUE cell_over_limit
|
15
15
|
(Call :core.gt
|
16
16
|
(InputRef cube.layer.row.cell key_chain=[]) :: [cube, layer, row] -> integer
|
17
17
|
(Const 100) :: [] -> integer
|
@@ -1,16 +1,16 @@
|
|
1
1
|
(NAST
|
2
2
|
(VALUE regional_sales
|
3
|
-
(Call :
|
3
|
+
(Call :sum
|
4
4
|
(InputRef [:regions, :region, :sales, :sale, :amount])
|
5
5
|
)
|
6
6
|
)
|
7
7
|
(VALUE total_sales
|
8
|
-
(Call :
|
8
|
+
(Call :sum
|
9
9
|
(Ref regional_sales)
|
10
10
|
)
|
11
11
|
)
|
12
12
|
(VALUE adjusted_total
|
13
|
-
(Call :
|
13
|
+
(Call :add
|
14
14
|
(Ref total_sales)
|
15
15
|
(InputRef [:adjustment])
|
16
16
|
)
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# Autogenerated by Kumi Codegen
|
2
|
-
module Kumi::Compiled::
|
2
|
+
module Kumi::Compiled::KUMI_2c59ff6fbf5f9f54855ffed7efed5fb3e86a9502ac7b4245f2ecaf6d0965d362
|
3
3
|
def self.from(input_data = nil)
|
4
4
|
instance = Object.new
|
5
5
|
instance.extend(self)
|
@@ -0,0 +1,29 @@
|
|
1
|
+
(Root
|
2
|
+
inputs: [
|
3
|
+
(InputDeclaration :name :string)
|
4
|
+
(InputDeclaration :items :array
|
5
|
+
[
|
6
|
+
(InputDeclaration :value :integer)
|
7
|
+
]
|
8
|
+
)
|
9
|
+
]
|
10
|
+
values: [
|
11
|
+
(ValueDeclaration :name_len
|
12
|
+
(CallExpression :size
|
13
|
+
(InputReference :name)
|
14
|
+
)
|
15
|
+
)
|
16
|
+
(ValueDeclaration :items_count
|
17
|
+
(CallExpression :size
|
18
|
+
(InputReference :items)
|
19
|
+
)
|
20
|
+
)
|
21
|
+
(ValueDeclaration :summary
|
22
|
+
(HashExpression
|
23
|
+
((Literal :name_length) (DeclarationReference :name_len))
|
24
|
+
((Literal :item_count) (DeclarationReference :items_count))
|
25
|
+
)
|
26
|
+
)
|
27
|
+
]
|
28
|
+
traits: []
|
29
|
+
)
|
@@ -0,0 +1,18 @@
|
|
1
|
+
(LIR
|
2
|
+
(Declaration name_len
|
3
|
+
%t1 = load_input "name" :: string
|
4
|
+
%t2 = call core.length(%t1) :: integer
|
5
|
+
yield %t2
|
6
|
+
)
|
7
|
+
(Declaration items_count
|
8
|
+
%t3 = load_input "items" :: array
|
9
|
+
%t4 = call core.array_size(%t3) :: integer
|
10
|
+
yield %t4
|
11
|
+
)
|
12
|
+
(Declaration summary
|
13
|
+
%t5 = load_decl name_len :: integer
|
14
|
+
%t6 = load_decl items_count :: integer
|
15
|
+
%t7 = make_object{name_length: %t5, item_count: %t6} :: object
|
16
|
+
yield %t7
|
17
|
+
)
|
18
|
+
)
|
@@ -0,0 +1,18 @@
|
|
1
|
+
(LIR
|
2
|
+
(Declaration name_len
|
3
|
+
%t1 = load_input "name" :: string
|
4
|
+
%t2 = call core.length(%t1) :: integer
|
5
|
+
yield %t2
|
6
|
+
)
|
7
|
+
(Declaration items_count
|
8
|
+
%t3 = load_input "items" :: array
|
9
|
+
%t4 = call core.array_size(%t3) :: integer
|
10
|
+
yield %t4
|
11
|
+
)
|
12
|
+
(Declaration summary
|
13
|
+
%t5 = load_decl name_len :: integer
|
14
|
+
%t6 = load_decl items_count :: integer
|
15
|
+
%t7 = make_object{name_length: %t5, item_count: %t6} :: object
|
16
|
+
yield %t7
|
17
|
+
)
|
18
|
+
)
|
@@ -0,0 +1,20 @@
|
|
1
|
+
(LIR
|
2
|
+
(Declaration name_len
|
3
|
+
%t1 = load_input "name" :: string
|
4
|
+
%t2 = call core.length(%t1) :: integer
|
5
|
+
yield %t2
|
6
|
+
)
|
7
|
+
(Declaration items_count
|
8
|
+
%t3 = load_input "items" :: array
|
9
|
+
%t4 = call core.array_size(%t3) :: integer
|
10
|
+
yield %t4
|
11
|
+
)
|
12
|
+
(Declaration summary
|
13
|
+
%t8 = load_input "name" :: string
|
14
|
+
%t9 = call core.length(%t8) :: integer
|
15
|
+
%t10 = load_input "items" :: array
|
16
|
+
%t11 = call core.array_size(%t10) :: integer
|
17
|
+
%t7 = make_object{name_length: %t9, item_count: %t11} :: object
|
18
|
+
yield %t7
|
19
|
+
)
|
20
|
+
)
|
@@ -0,0 +1,20 @@
|
|
1
|
+
(LIR
|
2
|
+
(Declaration name_len
|
3
|
+
%t1 = load_input "name" :: string
|
4
|
+
%t2 = call core.length(%t1) :: integer
|
5
|
+
yield %t2
|
6
|
+
)
|
7
|
+
(Declaration items_count
|
8
|
+
%t3 = load_input "items" :: array
|
9
|
+
%t4 = call core.array_size(%t3) :: integer
|
10
|
+
yield %t4
|
11
|
+
)
|
12
|
+
(Declaration summary
|
13
|
+
%t8 = load_input "name" :: string
|
14
|
+
%t9 = call core.length(%t8) :: integer
|
15
|
+
%t10 = load_input "items" :: array
|
16
|
+
%t11 = call core.array_size(%t10) :: integer
|
17
|
+
%t7 = make_object{name_length: %t9, item_count: %t11} :: object
|
18
|
+
yield %t7
|
19
|
+
)
|
20
|
+
)
|
@@ -0,0 +1,20 @@
|
|
1
|
+
(LIR
|
2
|
+
(Declaration name_len
|
3
|
+
%t1 = load_input "name" :: string
|
4
|
+
%t2 = call core.length(%t1) :: integer
|
5
|
+
yield %t2
|
6
|
+
)
|
7
|
+
(Declaration items_count
|
8
|
+
%t3 = load_input "items" :: array
|
9
|
+
%t4 = call core.array_size(%t3) :: integer
|
10
|
+
yield %t4
|
11
|
+
)
|
12
|
+
(Declaration summary
|
13
|
+
%t8 = load_input "name" :: string
|
14
|
+
%t9 = call core.length(%t8) :: integer
|
15
|
+
%t10 = load_input "items" :: array
|
16
|
+
%t11 = call core.array_size(%t10) :: integer
|
17
|
+
%t7 = make_object{name_length: %t9, item_count: %t11} :: object
|
18
|
+
yield %t7
|
19
|
+
)
|
20
|
+
)
|
@@ -0,0 +1,20 @@
|
|
1
|
+
(LIR
|
2
|
+
(Declaration name_len
|
3
|
+
%t1 = load_input "name" :: string
|
4
|
+
%t2 = call core.length(%t1) :: integer
|
5
|
+
yield %t2
|
6
|
+
)
|
7
|
+
(Declaration items_count
|
8
|
+
%t3 = load_input "items" :: array
|
9
|
+
%t4 = call core.array_size(%t3) :: integer
|
10
|
+
yield %t4
|
11
|
+
)
|
12
|
+
(Declaration summary
|
13
|
+
%t8 = load_input "name" :: string
|
14
|
+
%t9 = call core.length(%t8) :: integer
|
15
|
+
%t10 = load_input "items" :: array
|
16
|
+
%t11 = call core.array_size(%t10) :: integer
|
17
|
+
%t7 = make_object{name_length: %t9, item_count: %t11} :: object
|
18
|
+
yield %t7
|
19
|
+
)
|
20
|
+
)
|
@@ -0,0 +1,20 @@
|
|
1
|
+
(LIR
|
2
|
+
(Declaration name_len
|
3
|
+
%t1 = load_input "name" :: string
|
4
|
+
%t2 = call core.length(%t1) :: integer
|
5
|
+
yield %t2
|
6
|
+
)
|
7
|
+
(Declaration items_count
|
8
|
+
%t3 = load_input "items" :: array
|
9
|
+
%t4 = call core.array_size(%t3) :: integer
|
10
|
+
yield %t4
|
11
|
+
)
|
12
|
+
(Declaration summary
|
13
|
+
%t8 = load_input "name" :: string
|
14
|
+
%t9 = call core.length(%t8) :: integer
|
15
|
+
%t10 = load_input "items" :: array
|
16
|
+
%t11 = call core.array_size(%t10) :: integer
|
17
|
+
%t7 = make_object{name_length: %t9, item_count: %t11} :: object
|
18
|
+
yield %t7
|
19
|
+
)
|
20
|
+
)
|
@@ -0,0 +1,22 @@
|
|
1
|
+
(NAST
|
2
|
+
(VALUE name_len
|
3
|
+
(Call :size
|
4
|
+
(InputRef [:name])
|
5
|
+
)
|
6
|
+
)
|
7
|
+
(VALUE items_count
|
8
|
+
(Call :size
|
9
|
+
(InputRef [:items])
|
10
|
+
)
|
11
|
+
)
|
12
|
+
(VALUE summary
|
13
|
+
(Hash
|
14
|
+
(Pair name_length
|
15
|
+
(Ref name_len)
|
16
|
+
)
|
17
|
+
(Pair item_count
|
18
|
+
(Ref items_count)
|
19
|
+
)
|
20
|
+
)
|
21
|
+
)
|
22
|
+
)
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# Autogenerated by Kumi Codegen
|
2
|
+
module Kumi::Compiled::KUMI_7bfb4d1f4b47bb1aec37b86c3b05a808ae6e13b28cdcac7f03ffeb7624df3532
|
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 :summary then _summary
|
24
|
+
else raise KeyError, "Unknown declaration"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def _summary(input = @input)
|
29
|
+
t8 = input["name"] || input[:name]
|
30
|
+
t9 = t8.length
|
31
|
+
t10 = input["items"] || input[:items]
|
32
|
+
t11 = t10.length
|
33
|
+
t7 = {
|
34
|
+
"name_length" => t9,
|
35
|
+
"item_count" => t11
|
36
|
+
}
|
37
|
+
t7
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
(SNAST
|
2
|
+
(VALUE name_len
|
3
|
+
(Call :core.length
|
4
|
+
(InputRef name key_chain=[]) :: [] -> string
|
5
|
+
) :: [] -> integer
|
6
|
+
) :: [] -> integer
|
7
|
+
(VALUE items_count
|
8
|
+
(Call :core.array_size
|
9
|
+
(InputRef items key_chain=[]) :: [] -> array
|
10
|
+
) :: [] -> integer
|
11
|
+
) :: [] -> integer
|
12
|
+
(VALUE summary
|
13
|
+
(Hash
|
14
|
+
(Pair name_length
|
15
|
+
(Ref name_len) :: [] -> integer
|
16
|
+
) :: [] -> pair
|
17
|
+
(Pair item_count
|
18
|
+
(Ref items_count) :: [] -> integer
|
19
|
+
) :: [] -> pair
|
20
|
+
) :: [] -> hash
|
21
|
+
) :: [] -> hash
|
22
|
+
)
|
@@ -0,0 +1,19 @@
|
|
1
|
+
schema do
|
2
|
+
input do
|
3
|
+
string :name
|
4
|
+
array :items do
|
5
|
+
integer :value
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
# Should resolve to core.length (string -> integer)
|
10
|
+
let :name_len, fn(:size, input.name)
|
11
|
+
|
12
|
+
# Should resolve to core.array_size (array -> integer)
|
13
|
+
let :items_count, fn(:size, input.items)
|
14
|
+
|
15
|
+
value :summary, {
|
16
|
+
name_length: name_len,
|
17
|
+
item_count: items_count
|
18
|
+
}
|
19
|
+
end
|
@@ -267,8 +267,8 @@
|
|
267
267
|
%t240 = load_decl ne axes=[rows, col] :: integer
|
268
268
|
%t241 = load_decl sw axes=[rows, col] :: integer
|
269
269
|
%t242 = load_decl se axes=[rows, col] :: integer
|
270
|
-
%t243 = make_tuple(%t235, %t236, %t237, %t238, %t239, %t240, %t241, %t242) :: tuple<integer>
|
271
|
-
%t244 = fold %t243 fn="agg.sum" ::
|
270
|
+
%t243 = make_tuple(%t235, %t236, %t237, %t238, %t239, %t240, %t241, %t242) :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
271
|
+
%t244 = fold %t243 fn="agg.sum" :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
272
272
|
yield %t244
|
273
273
|
end_loop
|
274
274
|
end_loop
|
@@ -288,7 +288,7 @@
|
|
288
288
|
%t253 = load_input "rows" :: array
|
289
289
|
loop rows id=L23 in %t253 as el=%rows_el_254, idx=%rows_i_255
|
290
290
|
loop col id=L24 in %rows_el_254 as el=%col_el_256, idx=%col_i_257
|
291
|
-
%t258 = load_decl neighbors axes=[rows, col] ::
|
291
|
+
%t258 = load_decl neighbors axes=[rows, col] :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
292
292
|
%t259 = const 3 :: integer
|
293
293
|
%t260 = call core.eq(%t258, %t259) :: boolean
|
294
294
|
yield %t260
|
@@ -299,7 +299,7 @@
|
|
299
299
|
%t261 = load_input "rows" :: array
|
300
300
|
loop rows id=L25 in %t261 as el=%rows_el_262, idx=%rows_i_263
|
301
301
|
loop col id=L26 in %rows_el_262 as el=%col_el_264, idx=%col_i_265
|
302
|
-
%t266 = load_decl neighbors axes=[rows, col] ::
|
302
|
+
%t266 = load_decl neighbors axes=[rows, col] :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
303
303
|
%t267 = const 2 :: integer
|
304
304
|
%t268 = call core.eq(%t266, %t267) :: boolean
|
305
305
|
yield %t268
|
@@ -267,8 +267,8 @@
|
|
267
267
|
%t240 = load_decl ne axes=[rows, col] :: integer
|
268
268
|
%t241 = load_decl sw axes=[rows, col] :: integer
|
269
269
|
%t242 = load_decl se axes=[rows, col] :: integer
|
270
|
-
%t243 = make_tuple(%t235, %t236, %t237, %t238, %t239, %t240, %t241, %t242) :: tuple<integer>
|
271
|
-
%t244 = fold %t243 fn="agg.sum" ::
|
270
|
+
%t243 = make_tuple(%t235, %t236, %t237, %t238, %t239, %t240, %t241, %t242) :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
271
|
+
%t244 = fold %t243 fn="agg.sum" :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
272
272
|
yield %t244
|
273
273
|
end_loop
|
274
274
|
end_loop
|
@@ -288,7 +288,7 @@
|
|
288
288
|
%t253 = load_input "rows" :: array
|
289
289
|
loop rows id=L23 in %t253 as el=%rows_el_254, idx=%rows_i_255
|
290
290
|
loop col id=L24 in %rows_el_254 as el=%col_el_256, idx=%col_i_257
|
291
|
-
%t258 = load_decl neighbors axes=[rows, col] ::
|
291
|
+
%t258 = load_decl neighbors axes=[rows, col] :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
292
292
|
%t259 = const 3 :: integer
|
293
293
|
%t260 = call core.eq(%t258, %t259) :: boolean
|
294
294
|
yield %t260
|
@@ -299,7 +299,7 @@
|
|
299
299
|
%t261 = load_input "rows" :: array
|
300
300
|
loop rows id=L25 in %t261 as el=%rows_el_262, idx=%rows_i_263
|
301
301
|
loop col id=L26 in %rows_el_262 as el=%col_el_264, idx=%col_i_265
|
302
|
-
%t266 = load_decl neighbors axes=[rows, col] ::
|
302
|
+
%t266 = load_decl neighbors axes=[rows, col] :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
303
303
|
%t267 = const 2 :: integer
|
304
304
|
%t268 = call core.eq(%t266, %t267) :: boolean
|
305
305
|
yield %t268
|
@@ -451,8 +451,8 @@
|
|
451
451
|
%t483 = gather %t470, %t482 :: integer
|
452
452
|
%t484 = const 0 :: integer
|
453
453
|
%t485 = select %t478, %t483, %t484 :: integer
|
454
|
-
%t243 = make_tuple(%t313, %t333, %t353, %t373, %t401, %t429, %t457, %t485) :: tuple<integer>
|
455
|
-
%t244 = fold %t243 fn="agg.sum" ::
|
454
|
+
%t243 = make_tuple(%t313, %t333, %t353, %t373, %t401, %t429, %t457, %t485) :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
455
|
+
%t244 = fold %t243 fn="agg.sum" :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
456
456
|
yield %t244
|
457
457
|
end_loop
|
458
458
|
end_loop
|
@@ -665,8 +665,8 @@
|
|
665
665
|
%t687 = gather %t674, %t686 :: integer
|
666
666
|
%t688 = const 0 :: integer
|
667
667
|
%t689 = select %t682, %t687, %t688 :: integer
|
668
|
-
%t496 = make_tuple(%t517, %t537, %t557, %t577, %t605, %t633, %t661, %t689) :: tuple<integer>
|
669
|
-
%t497 = fold %t496 fn="agg.sum" ::
|
668
|
+
%t496 = make_tuple(%t517, %t537, %t557, %t577, %t605, %t633, %t661, %t689) :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
669
|
+
%t497 = fold %t496 fn="agg.sum" :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
670
670
|
%t259 = const 3 :: integer
|
671
671
|
%t260 = call core.eq(%t497, %t259) :: boolean
|
672
672
|
yield %t260
|
@@ -870,8 +870,8 @@
|
|
870
870
|
%t890 = gather %t877, %t889 :: integer
|
871
871
|
%t891 = const 0 :: integer
|
872
872
|
%t892 = select %t885, %t890, %t891 :: integer
|
873
|
-
%t699 = make_tuple(%t720, %t740, %t760, %t780, %t808, %t836, %t864, %t892) :: tuple<integer>
|
874
|
-
%t700 = fold %t699 fn="agg.sum" ::
|
873
|
+
%t699 = make_tuple(%t720, %t740, %t760, %t780, %t808, %t836, %t864, %t892) :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
874
|
+
%t700 = fold %t699 fn="agg.sum" :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
875
875
|
%t267 = const 2 :: integer
|
876
876
|
%t268 = call core.eq(%t700, %t267) :: boolean
|
877
877
|
yield %t268
|
@@ -1076,8 +1076,8 @@
|
|
1076
1076
|
%t1097 = gather %t1084, %t1096 :: integer
|
1077
1077
|
%t1098 = const 0 :: integer
|
1078
1078
|
%t1099 = select %t1092, %t1097, %t1098 :: integer
|
1079
|
-
%t906 = make_tuple(%t927, %t947, %t967, %t987, %t1015, %t1043, %t1071, %t1099) :: tuple<integer>
|
1080
|
-
%t907 = fold %t906 fn="agg.sum" ::
|
1079
|
+
%t906 = make_tuple(%t927, %t947, %t967, %t987, %t1015, %t1043, %t1071, %t1099) :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
1080
|
+
%t907 = fold %t906 fn="agg.sum" :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
1081
1081
|
%t895 = const 2 :: integer
|
1082
1082
|
%t896 = call core.eq(%t907, %t895) :: boolean
|
1083
1083
|
%t1100 = load_input "rows" :: array
|
@@ -1287,8 +1287,8 @@
|
|
1287
1287
|
%t1309 = gather %t1296, %t1308 :: integer
|
1288
1288
|
%t1310 = const 0 :: integer
|
1289
1289
|
%t1311 = select %t1304, %t1309, %t1310 :: integer
|
1290
|
-
%t1118 = make_tuple(%t1139, %t1159, %t1179, %t1199, %t1227, %t1255, %t1283, %t1311) :: tuple<integer>
|
1291
|
-
%t1119 = fold %t1118 fn="agg.sum" ::
|
1290
|
+
%t1118 = make_tuple(%t1139, %t1159, %t1179, %t1199, %t1227, %t1255, %t1283, %t1311) :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
1291
|
+
%t1119 = fold %t1118 fn="agg.sum" :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
1292
1292
|
%t1107 = const 3 :: integer
|
1293
1293
|
%t1108 = call core.eq(%t1119, %t1107) :: boolean
|
1294
1294
|
%t1312 = load_input "rows" :: array
|
@@ -1486,8 +1486,8 @@
|
|
1486
1486
|
%t1520 = gather %t1507, %t1519 :: integer
|
1487
1487
|
%t1521 = const 0 :: integer
|
1488
1488
|
%t1522 = select %t1515, %t1520, %t1521 :: integer
|
1489
|
-
%t1329 = make_tuple(%t1350, %t1370, %t1390, %t1410, %t1438, %t1466, %t1494, %t1522) :: tuple<integer>
|
1490
|
-
%t1330 = fold %t1329 fn="agg.sum" ::
|
1489
|
+
%t1329 = make_tuple(%t1350, %t1370, %t1390, %t1410, %t1438, %t1466, %t1494, %t1522) :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
1490
|
+
%t1330 = fold %t1329 fn="agg.sum" :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
1491
1491
|
%t1318 = const 2 :: integer
|
1492
1492
|
%t1319 = call core.eq(%t1330, %t1318) :: boolean
|
1493
1493
|
%t1523 = load_input "rows" :: array
|
@@ -1699,8 +1699,8 @@
|
|
1699
1699
|
%t1736 = gather %t1723, %t1735 :: integer
|
1700
1700
|
%t1737 = const 0 :: integer
|
1701
1701
|
%t1738 = select %t1731, %t1736, %t1737 :: integer
|
1702
|
-
%t1545 = make_tuple(%t1566, %t1586, %t1606, %t1626, %t1654, %t1682, %t1710, %t1738) :: tuple<integer>
|
1703
|
-
%t1546 = fold %t1545 fn="agg.sum" ::
|
1702
|
+
%t1545 = make_tuple(%t1566, %t1586, %t1606, %t1626, %t1654, %t1682, %t1710, %t1738) :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
1703
|
+
%t1546 = fold %t1545 fn="agg.sum" :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
1704
1704
|
%t1534 = const 3 :: integer
|
1705
1705
|
%t1535 = call core.eq(%t1546, %t1534) :: boolean
|
1706
1706
|
%t1739 = load_input "rows" :: array
|
@@ -1898,8 +1898,8 @@
|
|
1898
1898
|
%t1947 = gather %t1934, %t1946 :: integer
|
1899
1899
|
%t1948 = const 0 :: integer
|
1900
1900
|
%t1949 = select %t1942, %t1947, %t1948 :: integer
|
1901
|
-
%t1756 = make_tuple(%t1777, %t1797, %t1817, %t1837, %t1865, %t1893, %t1921, %t1949) :: tuple<integer>
|
1902
|
-
%t1757 = fold %t1756 fn="agg.sum" ::
|
1901
|
+
%t1756 = make_tuple(%t1777, %t1797, %t1817, %t1837, %t1865, %t1893, %t1921, %t1949) :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
1902
|
+
%t1757 = fold %t1756 fn="agg.sum" :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
1903
1903
|
%t1745 = const 2 :: integer
|
1904
1904
|
%t1746 = call core.eq(%t1757, %t1745) :: boolean
|
1905
1905
|
%t1950 = load_input "rows" :: array
|
@@ -299,8 +299,8 @@
|
|
299
299
|
%t482 = call core.clamp(%t362, %t298, %t452) :: integer
|
300
300
|
%t483 = gather %t326, %t482 :: integer
|
301
301
|
%t485 = select %t478, %t483, %t298 :: integer
|
302
|
-
%t243 = make_tuple(%t313, %t333, %t353, %t373, %t401, %t429, %t457, %t485) :: tuple<integer>
|
303
|
-
%t244 = fold %t243 fn="agg.sum" ::
|
302
|
+
%t243 = make_tuple(%t313, %t333, %t353, %t373, %t401, %t429, %t457, %t485) :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
303
|
+
%t244 = fold %t243 fn="agg.sum" :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
304
304
|
yield %t244
|
305
305
|
end_loop
|
306
306
|
end_loop
|
@@ -394,8 +394,8 @@
|
|
394
394
|
%t686 = call core.clamp(%t566, %t502, %t656) :: integer
|
395
395
|
%t687 = gather %t530, %t686 :: integer
|
396
396
|
%t689 = select %t682, %t687, %t502 :: integer
|
397
|
-
%t496 = make_tuple(%t517, %t537, %t557, %t577, %t605, %t633, %t661, %t689) :: tuple<integer>
|
398
|
-
%t497 = fold %t496 fn="agg.sum" ::
|
397
|
+
%t496 = make_tuple(%t517, %t537, %t557, %t577, %t605, %t633, %t661, %t689) :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
398
|
+
%t497 = fold %t496 fn="agg.sum" :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
399
399
|
%t259 = const 3 :: integer
|
400
400
|
%t260 = call core.eq(%t497, %t259) :: boolean
|
401
401
|
yield %t260
|
@@ -481,8 +481,8 @@
|
|
481
481
|
%t889 = call core.clamp(%t769, %t705, %t859) :: integer
|
482
482
|
%t890 = gather %t733, %t889 :: integer
|
483
483
|
%t892 = select %t885, %t890, %t705 :: integer
|
484
|
-
%t699 = make_tuple(%t720, %t740, %t760, %t780, %t808, %t836, %t864, %t892) :: tuple<integer>
|
485
|
-
%t700 = fold %t699 fn="agg.sum" ::
|
484
|
+
%t699 = make_tuple(%t720, %t740, %t760, %t780, %t808, %t836, %t864, %t892) :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
485
|
+
%t700 = fold %t699 fn="agg.sum" :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
486
486
|
%t267 = const 2 :: integer
|
487
487
|
%t268 = call core.eq(%t700, %t267) :: boolean
|
488
488
|
yield %t268
|
@@ -568,11 +568,12 @@
|
|
568
568
|
%t1096 = call core.clamp(%t976, %t912, %t1066) :: integer
|
569
569
|
%t1097 = gather %t940, %t1096 :: integer
|
570
570
|
%t1099 = select %t1092, %t1097, %t912 :: integer
|
571
|
-
%t906 = make_tuple(%t927, %t947, %t967, %t987, %t1015, %t1043, %t1071, %t1099) :: tuple<integer>
|
572
|
-
%t907 = fold %t906 fn="agg.sum" ::
|
571
|
+
%t906 = make_tuple(%t927, %t947, %t967, %t987, %t1015, %t1043, %t1071, %t1099) :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
572
|
+
%t907 = fold %t906 fn="agg.sum" :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
573
573
|
%t895 = const 2 :: integer
|
574
574
|
%t896 = call core.eq(%t907, %t895) :: boolean
|
575
|
-
%
|
575
|
+
%t1102 = const 0 :: integer
|
576
|
+
%t1103 = call core.gt(%col_el_272, %t1102) :: boolean
|
576
577
|
%t276 = call core.and(%t896, %t1103) :: boolean
|
577
578
|
yield %t276
|
578
579
|
end_loop
|
@@ -657,13 +658,14 @@
|
|
657
658
|
%t1308 = call core.clamp(%t1188, %t1124, %t1278) :: integer
|
658
659
|
%t1309 = gather %t1152, %t1308 :: integer
|
659
660
|
%t1311 = select %t1304, %t1309, %t1124 :: integer
|
660
|
-
%t1118 = make_tuple(%t1139, %t1159, %t1179, %t1199, %t1227, %t1255, %t1283, %t1311) :: tuple<integer>
|
661
|
-
%t1119 = fold %t1118 fn="agg.sum" ::
|
661
|
+
%t1118 = make_tuple(%t1139, %t1159, %t1179, %t1199, %t1227, %t1255, %t1283, %t1311) :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
662
|
+
%t1119 = fold %t1118 fn="agg.sum" :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
662
663
|
%t1107 = const 3 :: integer
|
663
664
|
%t1108 = call core.eq(%t1119, %t1107) :: boolean
|
664
665
|
%t1318 = const 2 :: integer
|
665
666
|
%t1319 = call core.eq(%t1119, %t1318) :: boolean
|
666
|
-
%
|
667
|
+
%t1525 = const 0 :: integer
|
668
|
+
%t1526 = call core.gt(%col_el_280, %t1525) :: boolean
|
667
669
|
%t1315 = call core.and(%t1319, %t1526) :: boolean
|
668
670
|
%t284 = call core.or(%t1108, %t1315) :: boolean
|
669
671
|
yield %t284
|
@@ -749,16 +751,18 @@
|
|
749
751
|
%t1735 = call core.clamp(%t1615, %t1551, %t1705) :: integer
|
750
752
|
%t1736 = gather %t1579, %t1735 :: integer
|
751
753
|
%t1738 = select %t1731, %t1736, %t1551 :: integer
|
752
|
-
%t1545 = make_tuple(%t1566, %t1586, %t1606, %t1626, %t1654, %t1682, %t1710, %t1738) :: tuple<integer>
|
753
|
-
%t1546 = fold %t1545 fn="agg.sum" ::
|
754
|
+
%t1545 = make_tuple(%t1566, %t1586, %t1606, %t1626, %t1654, %t1682, %t1710, %t1738) :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
755
|
+
%t1546 = fold %t1545 fn="agg.sum" :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
754
756
|
%t1534 = const 3 :: integer
|
755
757
|
%t1535 = call core.eq(%t1546, %t1534) :: boolean
|
756
758
|
%t1745 = const 2 :: integer
|
757
759
|
%t1746 = call core.eq(%t1546, %t1745) :: boolean
|
758
|
-
%
|
760
|
+
%t1952 = const 0 :: integer
|
761
|
+
%t1953 = call core.gt(%col_el_288, %t1952) :: boolean
|
759
762
|
%t1742 = call core.and(%t1746, %t1953) :: boolean
|
760
763
|
%t1531 = call core.or(%t1535, %t1742) :: boolean
|
761
|
-
%
|
764
|
+
%t291 = const 1 :: integer
|
765
|
+
%t293 = select %t1531, %t291, %t1952 :: integer
|
762
766
|
yield %t293
|
763
767
|
end_loop
|
764
768
|
end_loop
|