| summaryrefslogtreecommitdiff |
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-11-07 23:59:01 +0100 |
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-11-07 23:59:01 +0100 |
| commit | 1cefec4d67ac4dbf58aab14fac51e3671688a5f6 (patch) | |
| tree | 60a60919d5a77308202e34417e2a7716aaabc416 /src | |
| parent | 0b92419a57fc6a27b2701a688cf7ac3b1707241f (diff) | |
More unit testing...
Diffstat (limited to 'src')
4 files changed, 37 insertions, 19 deletions
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/IndexedFilter.java b/src/core/src/tonkadur/fate/v1/lang/instruction/IndexedFilter.java index e05b162..6e3da57 100644 --- a/src/core/src/tonkadur/fate/v1/lang/instruction/IndexedFilter.java +++ b/src/core/src/tonkadur/fate/v1/lang/instruction/IndexedFilter.java @@ -74,6 +74,7 @@ public class IndexedFilter extends Instruction { target_signature.add(c.get_type()); } + RecurrentChecks.assert_lambda_matches_types ( lambda_function, diff --git a/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 b/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 index 88601f5..62f5e4b 100644 --- a/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 +++ b/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 @@ -4648,6 +4648,42 @@ returns [Computation result] ); } + | INDEXED_FILTER_KW fun=non_text_value WS+ coll=non_text_value WS* R_PAREN + { + $result = + IndexedFilterComputation.build + ( + CONTEXT.get_origin_at + ( + ($INDEXED_FILTER_KW.getLine()), + ($INDEXED_FILTER_KW.getCharPositionInLine()) + ), + ($fun.result), + ($coll.result), + new ArrayList() + ); + } + + | INDEXED_FILTER_KW + fun=non_text_value WS+ + coll=non_text_value WS+ + value_list WS* + R_PAREN + { + $result = + IndexedFilterComputation.build + ( + CONTEXT.get_origin_at + ( + ($INDEXED_FILTER_KW.getLine()), + ($INDEXED_FILTER_KW.getCharPositionInLine()) + ), + ($fun.result), + ($coll.result), + ($value_list.result) + ); + } + | PARTITION_KW fun=non_text_value WS+ coll=non_text_value WS* R_PAREN { $result = diff --git a/src/core/src/tonkadur/wyrd/v1/compiler/util/FilterLambda.java b/src/core/src/tonkadur/wyrd/v1/compiler/util/FilterLambda.java index 83c947f..6617688 100644 --- a/src/core/src/tonkadur/wyrd/v1/compiler/util/FilterLambda.java +++ b/src/core/src/tonkadur/wyrd/v1/compiler/util/FilterLambda.java @@ -29,7 +29,6 @@ public class FilterLambda /* Utility Class */ private FilterLambda () {} - /* Uses Durstenfeld's shuffling algorithm */ public static Instruction generate ( final RegisterManager registers, @@ -128,15 +127,6 @@ public class FilterLambda ) ); - while_body.add - ( - new SetValue - ( - iterator.get_address(), - Operation.plus(iterator.get_value(), Constant.ONE) - ) - ); - result.add ( While.generate diff --git a/src/core/src/tonkadur/wyrd/v1/compiler/util/IndexedFilterLambda.java b/src/core/src/tonkadur/wyrd/v1/compiler/util/IndexedFilterLambda.java index 29f08d4..68166a8 100644 --- a/src/core/src/tonkadur/wyrd/v1/compiler/util/IndexedFilterLambda.java +++ b/src/core/src/tonkadur/wyrd/v1/compiler/util/IndexedFilterLambda.java @@ -130,15 +130,6 @@ public class IndexedFilterLambda ) ); - while_body.add - ( - new SetValue - ( - iterator.get_address(), - Operation.plus(iterator.get_value(), Constant.ONE) - ) - ); - result.add ( While.generate |


