| summaryrefslogtreecommitdiff | 
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2021-12-02 22:22:25 +0100 | 
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2021-12-02 22:22:25 +0100 | 
| commit | 7bb7b8124fdcf7f9067737c4a387d5c675650a64 (patch) | |
| tree | c6326fed7f11096bb3560a65145947584198c606 /src/core | |
| parent | 4f0d223b6cbc70494e5401c3664b054b55021b28 (diff) | |
Better comment system + a few bug fixes.
Diffstat (limited to 'src/core')
8 files changed, 15 insertions, 28 deletions
| diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/PushElementComputation.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/PushElementComputation.java index ec11ee1..3df05ac 100644 --- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/PushElementComputation.java +++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/PushElementComputation.java @@ -53,6 +53,7 @@ public class PushElementComputation extends GenericComputation        final Computation collection;        final boolean is_from_left; +      //        if (call_parameters.size() != 2)        {           ErrorManager.handle @@ -117,6 +118,7 @@ public class PushElementComputation extends GenericComputation        final boolean is_from_left     )     { +      // FIXME: this should always return a list.        super(origin, collection.get_type());        this.collection = collection; diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/SortComputation.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/SortComputation.java index b1f9280..92bbadc 100644 --- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/SortComputation.java +++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/SortComputation.java @@ -58,7 +58,7 @@ public class SortComputation extends GenericComputation                 origin,                 "("                 + alias -               + " <(LAMBDA INT (X))> <(LIST X)|(SET X)>)" +               + " <(LAMBDA INT (X X))> <(LIST X)|(SET X)>)"              )           ); diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Clear.java b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Clear.java index 9fabde5..e5c6217 100644 --- a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Clear.java +++ b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Clear.java @@ -95,6 +95,7 @@ public class Clear extends GenericInstruction        collection = call_parameters.get(0);        collection.expect_non_string(); +      collection.use_as_reference();        RecurrentChecks.assert_is_a_collection(collection); diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Partition.java b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Partition.java index 7807db5..9c1b2b6 100644 --- a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Partition.java +++ b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Partition.java @@ -102,6 +102,7 @@ public class Partition extends GenericInstruction        RecurrentChecks.assert_return_type_is(lambda_function, Type.BOOL); +      collection_in.use_as_reference();        collection_out.use_as_reference();        return diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/PushElement.java b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/PushElement.java index 953b9d0..c987d53 100644 --- a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/PushElement.java +++ b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/PushElement.java @@ -32,13 +32,6 @@ public class PushElement extends GenericInstruction        aliases.add("list:push_right");        aliases.add("list:pushright");        aliases.add("list:pushRight"); -      aliases.add("set:push_left"); -      aliases.add("set:pushleft"); -      aliases.add("set:pushLeft"); -      aliases.add("set:push_right"); -      aliases.add("set:pushright"); -      aliases.add("set:pushRight"); -        return aliases;     } @@ -61,7 +54,7 @@ public class PushElement extends GenericInstruction              new WrongNumberOfParametersException              (                 origin, -               "(" + alias + "! <X> <(LIST X)|(SET X) REFERENCE>)" +               "(" + alias + "! <X> <(LIST X REFERENCE>)"              )           ); @@ -72,22 +65,11 @@ public class PushElement extends GenericInstruction        collection = call_parameters.get(1);        is_from_left = alias.endsWith("eft"); -      if (alias.startsWith("set:")) -      { -         RecurrentChecks.propagate_expected_types_and_assert_is_a_set_of -         ( -            collection, -            element -         ); -      } -      else -      { -         RecurrentChecks.propagate_expected_types_and_assert_is_a_list_of -         ( -            collection, -            element -         ); -      } +      RecurrentChecks.propagate_expected_types_and_assert_is_a_list_of +      ( +         collection, +         element +      );        collection.use_as_reference(); diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Sort.java b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Sort.java index ac2c02b..d741cba 100644 --- a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Sort.java +++ b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Sort.java @@ -61,7 +61,7 @@ public class Sort extends GenericInstruction                 origin,                 "("                 + alias -               + "! <(LAMBDA INT (X))> <(LIST X)|(SET X) REFERENCE>)" +               + "! <(LAMBDA INT (X X))> <(LIST X)|(SET X) REFERENCE>)"              )           ); diff --git a/src/core/src/tonkadur/fate/v1/parser/FateLexer.g4 b/src/core/src/tonkadur/fate/v1/parser/FateLexer.g4 index 685c11f..e0711c8 100644 --- a/src/core/src/tonkadur/fate/v1/parser/FateLexer.g4 +++ b/src/core/src/tonkadur/fate/v1/parser/FateLexer.g4 @@ -144,7 +144,7 @@ LAMBDA_KW: L_PAREN 'lambda' SEP+;  SEQUENCE_KW: L_PAREN 'seq''uence'? SEP+; -fragment IDENTIFIER_FRAG: ~([ \t\r\n()]|'!'); +fragment IDENTIFIER_FRAG: ~([ \t\r\n()]|'!'|';');  IDENTIFIER_KW: IDENTIFIER_FRAG+; diff --git a/src/core/src/tonkadur/wyrd/v1/compiler/util/PopElement.java b/src/core/src/tonkadur/wyrd/v1/compiler/util/PopElement.java index 6a436a6..cbcd400 100644 --- a/src/core/src/tonkadur/wyrd/v1/compiler/util/PopElement.java +++ b/src/core/src/tonkadur/wyrd/v1/compiler/util/PopElement.java @@ -58,7 +58,8 @@ public class PopElement        }        else        { -         target_index = collection_size.get_value(); +         target_index = +            Operation.minus(collection_size.get_value(), Constant.ONE);        }        result.add(new SetValue(index.get_address(), target_index)); | 


