summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2021-12-02 22:22:25 +0100
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2021-12-02 22:22:25 +0100
commit7bb7b8124fdcf7f9067737c4a387d5c675650a64 (patch)
treec6326fed7f11096bb3560a65145947584198c606
parent4f0d223b6cbc70494e5401c3664b054b55021b28 (diff)
Better comment system + a few bug fixes.
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/PushElementComputation.java2
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/SortComputation.java2
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/Clear.java1
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/Partition.java1
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/PushElement.java30
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/Sort.java2
-rw-r--r--src/core/src/tonkadur/fate/v1/parser/FateLexer.g42
-rw-r--r--src/core/src/tonkadur/wyrd/v1/compiler/util/PopElement.java3
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));