From 1cefec4d67ac4dbf58aab14fac51e3671688a5f6 Mon Sep 17 00:00:00 2001 From: Nathanael Sensfelder Date: Sat, 7 Nov 2020 23:59:01 +0100 Subject: More unit testing... --- .../fate/v1/lang/instruction/IndexedFilter.java | 1 + src/core/src/tonkadur/fate/v1/parser/FateParser.g4 | 36 ++++++++++++++++++++++ .../wyrd/v1/compiler/util/FilterLambda.java | 10 ------ .../wyrd/v1/compiler/util/IndexedFilterLambda.java | 9 ------ 4 files changed, 37 insertions(+), 19 deletions(-) (limited to 'src/core') 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 -- cgit v1.2.3-70-g09d2