summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2021-09-05 23:20:56 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2021-09-05 23:20:56 +0200
commit08776453837b50642b678ae864cfc6b70ec7f2b5 (patch)
tree38ee3fefae70a2d133f90b9fa108972ddd2fd39b /src/core
parentc14f60f9c3dd45610ff3cba48ce7b33a2b67a315 (diff)
Adds error handling for generic instructions/computations (prints documentation)
Diffstat (limited to 'src/core')
-rw-r--r--src/core/src/tonkadur/fate/v1/error/WrongNumberOfParametersException.java45
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/Access.java12
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/AddElementAtComputation.java20
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/AddElementComputation.java20
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/AddElementsOfComputation.java19
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/AddressOperator.java16
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/AtReference.java15
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/BooleanComputation.java14
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/CarCdr.java12
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/ConsComputation.java14
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/CountOperator.java16
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/FilterComputation.java16
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/Fold.java17
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/IfElseValue.java16
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexOfOperator.java14
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexedFilterComputation.java19
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexedMapComputation.java17
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexedMergeComputation.java17
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexedPartitionComputation.java17
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexedSafeMergeComputation.java18
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/IsEmpty.java14
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/IsMemberOperator.java14
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/LambdaEvaluation.java16
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/MapComputation.java17
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/MergeComputation.java17
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/Newline.java14
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/Operation.java2
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/PartitionComputation.java17
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/PopElementComputation.java14
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/PushElementComputation.java18
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/Range.java14
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/RemoveAllOfElementComputation.java14
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/RemoveElementAtComputation.java14
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/RemoveElementComputation.java14
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/RemoveElementsOfComputation.java19
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/ReverseListComputation.java14
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/SafeMergeComputation.java18
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/ShuffleComputation.java14
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/SizeOperator.java14
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/SortComputation.java17
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/SubListComputation.java17
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/generic/TextJoin.java16
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/AddElement.java18
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/AddElementAt.java21
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/AddElementsOf.java19
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/Allocate.java17
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/Break.java16
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/Clear.java22
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/Done.java16
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/End.java16
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/Filter.java17
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/Free.java16
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/IndexedFilter.java18
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/IndexedPartition.java19
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/Partition.java19
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/PopElement.java14
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/PushElement.java18
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/RemoveAllOfElement.java14
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/RemoveElement.java14
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/RemoveElementAt.java14
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/RemoveElementsOf.java14
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/ReverseList.java14
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/SequenceVariableCall.java13
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/SequenceVariableJump.java13
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/SetValue.java16
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/Shuffle.java24
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/Sort.java60
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/generic/SubList.java14
68 files changed, 952 insertions, 206 deletions
diff --git a/src/core/src/tonkadur/fate/v1/error/WrongNumberOfParametersException.java b/src/core/src/tonkadur/fate/v1/error/WrongNumberOfParametersException.java
new file mode 100644
index 0000000..1a1dcaa
--- /dev/null
+++ b/src/core/src/tonkadur/fate/v1/error/WrongNumberOfParametersException.java
@@ -0,0 +1,45 @@
+package tonkadur.fate.v1.error;
+
+import tonkadur.error.ErrorLevel;
+
+import tonkadur.parser.Origin;
+import tonkadur.parser.ParsingError;
+
+public class WrongNumberOfParametersException extends ParsingError
+{
+ /***************************************************************************/
+ /**** MEMBERS **************************************************************/
+ /***************************************************************************/
+ protected final String documentation;
+
+ /***************************************************************************/
+ /**** PUBLIC ***************************************************************/
+ /***************************************************************************/
+ public WrongNumberOfParametersException
+ (
+ final Origin origin,
+ final String documentation
+ )
+ {
+ super(ErrorLevel.ERROR, ErrorCategory.INVALID_USE, origin);
+
+ this.documentation = documentation;
+ }
+
+ @Override
+ public String toString ()
+ {
+ final StringBuilder sb = new StringBuilder();
+
+ sb.append(origin.toString());
+ sb.append(" ");
+ sb.append(error_category.toString());
+ sb.append(System.lineSeparator());
+
+ sb.append("Incorrect parameters, see documentation:");
+ sb.append(System.lineSeparator());
+ sb.append(documentation);
+
+ return sb.toString();
+ }
+}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/Access.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/Access.java
index ae63ef6..ab2ed85 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/Access.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/Access.java
@@ -10,6 +10,8 @@ import tonkadur.parser.ParsingError;
import tonkadur.error.ErrorManager;
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.error.InvalidTypeException;
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
@@ -57,8 +59,14 @@ public class Access extends GenericComputation
if (call_parameters.size() != 2)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + " <index: INT> <collection: LIST|SET>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/AddElementAtComputation.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/AddElementAtComputation.java
index e198d91..39db400 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/AddElementAtComputation.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/AddElementAtComputation.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
@@ -36,7 +40,7 @@ public class AddElementAtComputation extends GenericComputation
public static Computation build
(
final Origin origin,
- final String _alias,
+ final String alias,
final List<Computation> call_parameters
)
throws Throwable
@@ -47,8 +51,18 @@ public class AddElementAtComputation extends GenericComputation
if (call_parameters.size() != 3)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ (
+ "("
+ + alias
+ + " <index: INT> <element: X> <collection: (LIST X)|(SET X)>)"
+ )
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/AddElementComputation.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/AddElementComputation.java
index 8eb4328..ec24f86 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/AddElementComputation.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/AddElementComputation.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
import tonkadur.fate.v1.lang.meta.Computation;
import tonkadur.fate.v1.lang.meta.RecurrentChecks;
@@ -46,13 +50,17 @@ public class AddElementComputation extends GenericComputation
if (call_parameters.size() < 2)
{
- // TODO: Error.
- System.err.println
+ ErrorManager.handle
(
- "Wrong number of params ("
- + (call_parameters.size())
- + " given, 2 expected) at"
- + origin.toString()
+ new WrongNumberOfParametersException
+ (
+ origin,
+ (
+ "("
+ + alias
+ + " <element: X>+ <collection: (LIST X)|(SET X)>)"
+ )
+ )
);
return null;
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/AddElementsOfComputation.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/AddElementsOfComputation.java
index 5c9a9e0..5057034 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/AddElementsOfComputation.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/AddElementsOfComputation.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.CollectionType;
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
@@ -87,8 +91,19 @@ public class AddElementsOfComputation extends GenericComputation
if (call_parameters.size() != 2)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ (
+ "("
+ + alias
+ + " <added_collection: (LIST X)|(SET X)>"
+ + " <receiving_collection: (LIST X)|(SET X)>)"
+ )
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/AddressOperator.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/AddressOperator.java
index c785804..caa3c87 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/AddressOperator.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/AddressOperator.java
@@ -6,6 +6,10 @@ import java.util.List;
import tonkadur.parser.Origin;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.PointerType;
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
@@ -50,15 +54,21 @@ public class AddressOperator extends GenericComputation
public static Computation build
(
final Origin origin,
- final String _alias,
+ final String alias,
final List<Computation> call_parameters
)
throws Throwable
{
if (call_parameters.size() != 1)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + " <X>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/AtReference.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/AtReference.java
index b28abbc..38862aa 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/AtReference.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/AtReference.java
@@ -10,10 +10,11 @@ import tonkadur.parser.ParsingError;
import tonkadur.error.ErrorManager;
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.error.InvalidTypeException;
import tonkadur.fate.v1.error.UnknownStructureFieldException;
-
import tonkadur.fate.v1.lang.Variable;
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
@@ -41,7 +42,7 @@ public class AtReference extends GenericComputation
public static Computation build
(
final Origin origin,
- final String _alias,
+ final String alias,
final List<Computation> call_parameters
)
throws Throwable
@@ -50,8 +51,14 @@ public class AtReference extends GenericComputation
if (call_parameters.size() != 1)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + " <POINTER>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/BooleanComputation.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/BooleanComputation.java
index ff607ef..95bee0b 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/BooleanComputation.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/BooleanComputation.java
@@ -6,6 +6,10 @@ import java.util.List;
import tonkadur.parser.Origin;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
import tonkadur.fate.v1.lang.meta.Computation;
@@ -39,8 +43,14 @@ public class BooleanComputation extends GenericComputation
{
if (call_parameters.size() != 0)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + ")"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/CarCdr.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/CarCdr.java
index 48f50e2..34f628a 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/CarCdr.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/CarCdr.java
@@ -10,6 +10,8 @@ import tonkadur.parser.ParsingError;
import tonkadur.error.ErrorManager;
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.error.InvalidTypeException;
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
@@ -48,8 +50,14 @@ public class CarCdr extends GenericComputation
if (call_parameters.size() != 1)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + " <CONS>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/ConsComputation.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/ConsComputation.java
index 2b45b55..31d7767 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/ConsComputation.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/ConsComputation.java
@@ -6,6 +6,10 @@ import java.util.List;
import tonkadur.parser.Origin;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.ConsType;
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
@@ -39,8 +43,14 @@ public class ConsComputation extends GenericComputation
if (call_parameters.size() != 2)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + " <car: X> <cdr: Y>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/CountOperator.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/CountOperator.java
index 82d105f..2d8508f 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/CountOperator.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/CountOperator.java
@@ -4,11 +4,13 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-import tonkadur.error.ErrorManager;
-
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
@@ -50,8 +52,14 @@ public class CountOperator extends GenericComputation
if (call_parameters.size() != 2)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + " <X> <(LIST X)|(SET X)>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/FilterComputation.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/FilterComputation.java
index 1150b92..b12aec8 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/FilterComputation.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/FilterComputation.java
@@ -8,6 +8,10 @@ import java.util.ArrayList;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.type.LambdaType;
import tonkadur.fate.v1.lang.type.CollectionType;
@@ -47,8 +51,16 @@ public class FilterComputation extends GenericComputation
if (call_parameters.size() < 2)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "("
+ + alias
+ + " <(LAMBDA BOOL (X Y0...YN))> <(LIST X)|(SET X)> <Y0>...<YN>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/Fold.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/Fold.java
index 47afc11..7bb5300 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/Fold.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/Fold.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.type.LambdaType;
import tonkadur.fate.v1.lang.type.CollectionType;
@@ -69,8 +73,17 @@ public class Fold extends GenericComputation
if (call_parameters.size() < 3)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "("
+ + alias
+ + " <(LAMBDA X (X Y Z0...ZN))> <initial_value: X>"
+ + " <(LIST Y)|(SET Y)> <Z0>...<ZN>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/IfElseValue.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/IfElseValue.java
index be23f7d..e06da56 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/IfElseValue.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/IfElseValue.java
@@ -7,6 +7,10 @@ import java.util.ArrayList;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.type.FutureType;
@@ -41,8 +45,16 @@ public class IfElseValue extends GenericComputation
{
if (call_parameters.size() != 3)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "("
+ + alias
+ + " <condition: BOOL> <if_true: X> <if_false: X>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexOfOperator.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexOfOperator.java
index 4cff53e..d2ab3df 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexOfOperator.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexOfOperator.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
@@ -46,8 +50,14 @@ public class IndexOfOperator extends GenericComputation
if (call_parameters.size() != 2)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + " <to_find: X> <(LIST X)|(SET X)>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexedFilterComputation.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexedFilterComputation.java
index e6d8469..9a4ac64 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexedFilterComputation.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexedFilterComputation.java
@@ -8,6 +8,10 @@ import java.util.ArrayList;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.type.CollectionType;
@@ -52,12 +56,20 @@ public class IndexedFilterComputation extends GenericComputation
final List<Type> base_param_types;
base_param_types = new ArrayList<Type>();
- base_param_types.add(Type.INT);
if (call_parameters.size() < 2)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "("
+ + alias
+ + " <(LAMBDA BOOL (INT X Y0...YN))> <(LIST X)|(SET X)>"
+ + " <Y0>...<YN>)"
+ )
+ );
return null;
}
@@ -77,6 +89,7 @@ public class IndexedFilterComputation extends GenericComputation
RecurrentChecks.assert_is_a_list(collection);
}
+ base_param_types.add(Type.INT);
base_param_types.add
(
((CollectionType) collection.get_type()).get_content_type()
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexedMapComputation.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexedMapComputation.java
index b9057fe..c02f3f4 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexedMapComputation.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexedMapComputation.java
@@ -7,6 +7,10 @@ import java.util.ArrayList;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.type.LambdaType;
import tonkadur.fate.v1.lang.type.CollectionType;
@@ -56,8 +60,17 @@ public class IndexedMapComputation extends GenericComputation
if (call_parameters.size() < 2)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "("
+ + alias
+ + " <(LAMBDA X (INT Y Z0...ZN))> <(LIST Y)|(SET Y)>"
+ + " <Z0>...<ZN>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexedMergeComputation.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexedMergeComputation.java
index f65e581..23fc09f 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexedMergeComputation.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexedMergeComputation.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.type.LambdaType;
import tonkadur.fate.v1.lang.type.CollectionType;
@@ -57,8 +61,17 @@ public class IndexedMergeComputation extends GenericComputation
if (call_parameters.size() < 3)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "("
+ + alias
+ + " <(LAMBDA X (INT Y Z W0...WN))> <(LIST Y)|(SET Y)>"
+ + " <(LIST Z)|(SET Z)> <W0>...<WN>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexedPartitionComputation.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexedPartitionComputation.java
index ebe7b2b..bb253a0 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexedPartitionComputation.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexedPartitionComputation.java
@@ -8,6 +8,10 @@ import java.util.ArrayList;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.CollectionType;
import tonkadur.fate.v1.lang.type.ConsType;
import tonkadur.fate.v1.lang.type.Type;
@@ -57,8 +61,17 @@ public class IndexedPartitionComputation extends GenericComputation
if (call_parameters.size() < 2)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "("
+ + alias
+ + " <(LAMBDA BOOL (INT X Y0...YN))> <(LIST X)|(SET X)>"
+ + " <Y0>...<YN>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexedSafeMergeComputation.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexedSafeMergeComputation.java
index 658b650..3d1e22a 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexedSafeMergeComputation.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/IndexedSafeMergeComputation.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.type.LambdaType;
import tonkadur.fate.v1.lang.type.CollectionType;
@@ -68,8 +72,18 @@ public class IndexedSafeMergeComputation extends GenericComputation
if (call_parameters.size() < 5)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "("
+ + alias
+ + " <(LAMBDA X (INT Y Z W0...WN))> <(LIST Y)|(SET Y)>"
+ + " <default_y: Y> <(LIST Z)|(SET Z)> <default_z: Z>"
+ + " <W0>...<WN>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/IsEmpty.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/IsEmpty.java
index 0f0153d..923edbe 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/IsEmpty.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/IsEmpty.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
@@ -56,8 +60,14 @@ public class IsEmpty extends GenericComputation
if (call_parameters.size() != 1)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + " <(LIST X)|(SET X)>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/IsMemberOperator.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/IsMemberOperator.java
index c82e8cf..ec252ad 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/IsMemberOperator.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/IsMemberOperator.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
@@ -56,8 +60,14 @@ public class IsMemberOperator extends GenericComputation
if (call_parameters.size() != 2)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + " <to_find: X> <(LIST X)|(SET X)>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/LambdaEvaluation.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/LambdaEvaluation.java
index a28949e..fe5466a 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/LambdaEvaluation.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/LambdaEvaluation.java
@@ -9,6 +9,10 @@ import tonkadur.parser.ParsingError;
import tonkadur.functional.Merge;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.type.LambdaType;
@@ -36,7 +40,7 @@ public class LambdaEvaluation extends GenericComputation
public static Computation build
(
final Origin origin,
- final String _alias,
+ final String alias,
final List<Computation> call_parameters
)
throws Throwable
@@ -46,8 +50,14 @@ public class LambdaEvaluation extends GenericComputation
if (call_parameters.size() < 1)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + " <(LAMBDA X (Y0...YN))> <Y0>...<YN>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/MapComputation.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/MapComputation.java
index a62e14c..bb3157f 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/MapComputation.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/MapComputation.java
@@ -8,6 +8,10 @@ import java.util.ArrayList;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.type.LambdaType;
import tonkadur.fate.v1.lang.type.CollectionType;
@@ -47,8 +51,17 @@ public class MapComputation extends GenericComputation
if (call_parameters.size() < 2)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "("
+ + alias
+ + " <(LAMBDA X (Y Z0...ZN))> <(LIST Y)|(SET Y)>"
+ + " <Z0>...<ZN>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/MergeComputation.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/MergeComputation.java
index 287957d..a29caa9 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/MergeComputation.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/MergeComputation.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.type.LambdaType;
import tonkadur.fate.v1.lang.type.CollectionType;
@@ -51,8 +55,17 @@ public class MergeComputation extends GenericComputation
if (call_parameters.size() < 3)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "("
+ + alias
+ + " <(LAMBDA X (Y Z W0...WN))> <(LIST Y)|(SET Y)>"
+ + " <(LIST Z)|(SET Z)> <W0>...<WN>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/Newline.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/Newline.java
index 5ddc742..e135cd2 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/Newline.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/Newline.java
@@ -6,6 +6,10 @@ import java.util.List;
import tonkadur.parser.Origin;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
import tonkadur.fate.v1.lang.meta.Computation;
@@ -36,8 +40,14 @@ public class Newline extends GenericComputation
{
if (call_parameters.size() != 0)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + ")"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/Operation.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/Operation.java
index fed2ea2..e9e207a 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/Operation.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/Operation.java
@@ -11,6 +11,8 @@ import tonkadur.error.ErrorManager;
import tonkadur.parser.Origin;
//import tonkadur.fate.v1.error.ConflictingTypeException;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
import tonkadur.fate.v1.error.IncomparableTypeException;
import tonkadur.fate.v1.error.IncompatibleTypeException;
import tonkadur.fate.v1.error.InvalidArityException;
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/PartitionComputation.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/PartitionComputation.java
index 34c0ca3..b4125c8 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/PartitionComputation.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/PartitionComputation.java
@@ -8,6 +8,10 @@ import java.util.ArrayList;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.CollectionType;
import tonkadur.fate.v1.lang.type.ConsType;
import tonkadur.fate.v1.lang.type.Type;
@@ -48,8 +52,17 @@ public class PartitionComputation extends GenericComputation
if (call_parameters.size() < 2)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "("
+ + alias
+ + " <(LAMBDA BOOL (X Y0...YN))> <(LIST X)|(SET X)>"
+ + " <Y0>...<YN>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/PopElementComputation.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/PopElementComputation.java
index 7c1784d..c5c5c9a 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/PopElementComputation.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/PopElementComputation.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
import tonkadur.fate.v1.lang.meta.Computation;
import tonkadur.fate.v1.lang.meta.RecurrentChecks;
@@ -62,8 +66,14 @@ public class PopElementComputation extends GenericComputation
if (call_parameters.size() != 1)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + " <(LIST X)|(SET X)>)"
+ )
+ );
return null;
}
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 f25a7dc..ec11ee1 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
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
import tonkadur.fate.v1.lang.meta.Computation;
import tonkadur.fate.v1.lang.meta.RecurrentChecks;
@@ -51,14 +55,20 @@ public class PushElementComputation extends GenericComputation
if (call_parameters.size() != 2)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + " <element: X> <(LIST X)|(SET X)>)"
+ )
+ );
return null;
}
- collection = call_parameters.get(0);
- element = call_parameters.get(1);
+ element = call_parameters.get(0);
+ collection = call_parameters.get(1);
is_from_left = alias.endsWith("eft");
if (alias.startsWith("set:"))
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/Range.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/Range.java
index 3ac9f21..33a1121 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/Range.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/Range.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.CollectionType;
import tonkadur.fate.v1.lang.type.Type;
@@ -43,8 +47,14 @@ public class Range extends GenericComputation
if (call_parameters.size() != 3)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + " <start: INT> <end: INT> <increment: INT>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/RemoveAllOfElementComputation.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/RemoveAllOfElementComputation.java
index 8fc9c44..48e9658 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/RemoveAllOfElementComputation.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/RemoveAllOfElementComputation.java
@@ -7,6 +7,10 @@ import java.util.Collection;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
import tonkadur.fate.v1.lang.meta.Computation;
import tonkadur.fate.v1.lang.meta.Computation;
@@ -51,8 +55,14 @@ public class RemoveAllOfElementComputation extends GenericComputation
if (call_parameters.size() != 2)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + " <element: X> <(LIST X)|(SET X)>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/RemoveElementAtComputation.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/RemoveElementAtComputation.java
index ad8f7bd..778b5ea 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/RemoveElementAtComputation.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/RemoveElementAtComputation.java
@@ -7,6 +7,10 @@ import java.util.Collection;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
@@ -47,8 +51,14 @@ public class RemoveElementAtComputation extends GenericComputation
if (call_parameters.size() != 2)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + " <index: INT> <(LIST X)|(SET X)>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/RemoveElementComputation.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/RemoveElementComputation.java
index 5c25edf..f806623 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/RemoveElementComputation.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/RemoveElementComputation.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
import tonkadur.fate.v1.lang.meta.Computation;
import tonkadur.fate.v1.lang.meta.RecurrentChecks;
@@ -52,8 +56,14 @@ public class RemoveElementComputation extends GenericComputation
if (call_parameters.size() != 1)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + " <element: X> <(LIST X)|(SET X)>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/RemoveElementsOfComputation.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/RemoveElementsOfComputation.java
index fdbd7ba..000afd4 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/RemoveElementsOfComputation.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/RemoveElementsOfComputation.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.CollectionType;
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
@@ -46,8 +50,19 @@ public class RemoveElementsOfComputation extends GenericComputation
if (call_parameters.size() != 2)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ (
+ "("
+ + alias
+ + " <removed: (LIST X)|(SET X)>"
+ + " <base_collection: (LIST X)|(SET X)>)"
+ )
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/ReverseListComputation.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/ReverseListComputation.java
index b784352..c24bdc1 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/ReverseListComputation.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/ReverseListComputation.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.CollectionType;
import tonkadur.fate.v1.lang.type.Type;
@@ -42,8 +46,14 @@ public class ReverseListComputation extends GenericComputation
if (call_parameters.size() != 1)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + " <(LIST X)|(SET X)>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/SafeMergeComputation.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/SafeMergeComputation.java
index 61422ac..308bba7 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/SafeMergeComputation.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/SafeMergeComputation.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.type.LambdaType;
import tonkadur.fate.v1.lang.type.CollectionType;
@@ -57,8 +61,18 @@ public class SafeMergeComputation extends GenericComputation
if (call_parameters.size() < 5)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "("
+ + alias
+ + " <(LAMBDA X (Y Z W0...WN))> <(LIST Y)|(SET Y)>"
+ + " <default_y: Y> <(LIST Z)|(SET Z)> <default_z: Z>"
+ + " <W0>...<WN>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/ShuffleComputation.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/ShuffleComputation.java
index 163e446..a327942 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/ShuffleComputation.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/ShuffleComputation.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.CollectionType;
import tonkadur.fate.v1.lang.type.Type;
@@ -42,8 +46,14 @@ public class ShuffleComputation extends GenericComputation
if (call_parameters.size() != 1)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + " <(LIST X)|(SET X)>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/SizeOperator.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/SizeOperator.java
index 670e8f3..50e95c3 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/SizeOperator.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/SizeOperator.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
@@ -43,8 +47,14 @@ public class SizeOperator extends GenericComputation
if (call_parameters.size() != 1)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + " <(LIST X)|(SET X)>)"
+ )
+ );
return null;
}
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 3d14dd7..1caa529 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
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.type.CollectionType;
@@ -48,8 +52,17 @@ public class SortComputation extends GenericComputation
if (call_parameters.size() < 2)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "("
+ + alias
+ + " <(LAMBDA INT (X Y0...YN))> <(LIST X)|(SET X)>"
+ + " <Y0>...<YN>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/SubListComputation.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/SubListComputation.java
index 5243f0d..39225e9 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/SubListComputation.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/SubListComputation.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
@@ -48,8 +52,17 @@ public class SubListComputation extends GenericComputation
if (call_parameters.size() != 3)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "("
+ + alias
+ + " <start_at_index: INT> <end_before_index: INT>"
+ + " <(LIST X)|(SET X)> <Y0>...<YN>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/generic/TextJoin.java b/src/core/src/tonkadur/fate/v1/lang/computation/generic/TextJoin.java
index bc8a0b9..dd2732b 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/generic/TextJoin.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/generic/TextJoin.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
@@ -35,7 +39,7 @@ public class TextJoin extends GenericComputation
public static Computation build
(
final Origin origin,
- final String _alias,
+ final String alias,
final List<Computation> call_parameters
)
throws Throwable
@@ -45,8 +49,14 @@ public class TextJoin extends GenericComputation
if (call_parameters.size() != 2)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + " <(LIST TEXT)|(SET TEXT)> <link: TEXT>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/AddElement.java b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/AddElement.java
index 53240cb..e084ff0 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/AddElement.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/AddElement.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.meta.InstructionVisitor;
import tonkadur.fate.v1.lang.meta.Instruction;
import tonkadur.fate.v1.lang.meta.Computation;
@@ -48,11 +52,17 @@ public class AddElement extends GenericInstruction
if (call_parameters.size() != 2)
{
- // TODO: Error.
- System.err.print
+ ErrorManager.handle
(
- "[E] Wrong number of arguments at "
- + origin.toString()
+ new WrongNumberOfParametersException
+ (
+ origin,
+ (
+ "("
+ + alias
+ + "! <element: X> <collection: (LIST X)|(SET X)>)"
+ )
+ )
);
return null;
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/AddElementAt.java b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/AddElementAt.java
index 4b784f1..93073bd 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/AddElementAt.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/AddElementAt.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.meta.InstructionVisitor;
@@ -37,7 +41,7 @@ public class AddElementAt extends GenericInstruction
public static Instruction build
(
final Origin origin,
- final String _alias,
+ final String alias,
final List<Computation> call_parameters
)
throws Throwable
@@ -48,11 +52,18 @@ public class AddElementAt extends GenericInstruction
if (call_parameters.size() != 3)
{
- // TODO: Error.
- System.err.print
+ ErrorManager.handle
(
- "[E] Wrong number of arguments at "
- + origin.toString()
+ new WrongNumberOfParametersException
+ (
+ origin,
+ (
+ "("
+ + alias
+ + "! <index: INT> <element: X>"
+ + " <collection: (LIST X)>)"
+ )
+ )
);
return null;
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/AddElementsOf.java b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/AddElementsOf.java
index f0b9f8c..b022428 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/AddElementsOf.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/AddElementsOf.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.CollectionType;
import tonkadur.fate.v1.lang.meta.InstructionVisitor;
@@ -88,11 +92,18 @@ public class AddElementsOf extends GenericInstruction
if (call_parameters.size() != 2)
{
- // TODO: Error.
- System.err.print
+ ErrorManager.handle
(
- "[E] Wrong number of arguments at "
- + origin.toString()
+ new WrongNumberOfParametersException
+ (
+ origin,
+ (
+ "("
+ + alias
+ + "! <additions: (LIST X)|(SET X)>"
+ + " <base_collection: (LIST X)|(SET X)>)"
+ )
+ )
);
return null;
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Allocate.java b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Allocate.java
index 9043194..fd28557 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Allocate.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Allocate.java
@@ -5,11 +5,12 @@ import java.util.Collections;
import java.util.Collection;
import java.util.List;
-import tonkadur.error.ErrorManager;
-
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
import tonkadur.fate.v1.error.InvalidTypeException;
import tonkadur.fate.v1.lang.type.Type;
@@ -40,7 +41,7 @@ public class Allocate extends GenericInstruction
public static Instruction build
(
final Origin origin,
- final String _alias,
+ final String alias,
final List<Computation> call_parameters
)
throws Throwable
@@ -50,11 +51,13 @@ public class Allocate extends GenericInstruction
if (call_parameters.size() != 1)
{
- // TODO: Error.
- System.err.print
+ ErrorManager.handle
(
- "[E] Wrong number of arguments at "
- + origin.toString()
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + "! <(POINTER X) REFERENCE>)"
+ )
);
return null;
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Break.java b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Break.java
index b8305bd..2d09694 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Break.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Break.java
@@ -4,6 +4,10 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.parser.Origin;
import tonkadur.fate.v1.lang.meta.InstructionVisitor;
@@ -28,15 +32,21 @@ public class Break extends GenericInstruction
public static Instruction build
(
final Origin origin,
- final String _alias,
+ final String alias,
final List<Computation> call_parameters
)
throws Throwable
{
if (call_parameters.size() != 0)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + "!)"
+ )
+ );
return null;
}
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 ce59cdf..bc169a0 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
@@ -4,6 +4,10 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Collection;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
@@ -36,7 +40,7 @@ public class Clear extends GenericInstruction
public static Instruction build
(
final Origin origin,
- final String alias_,
+ final String alias,
final List<Computation> call_parameters
)
throws Throwable
@@ -45,12 +49,20 @@ public class Clear extends GenericInstruction
if (call_parameters.size() != 1)
{
- // TODO: Error.
- System.err.print
+ ErrorManager.handle
(
- "[E] Wrong number of arguments at "
- + origin.toString()
+ new WrongNumberOfParametersException
+ (
+ origin,
+ (
+ "("
+ + alias
+ + "! <(LIST X)|(SET X)>)"
+ )
+ )
);
+
+ return null;
}
collection = call_parameters.get(0);
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Done.java b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Done.java
index 844c583..96236e7 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Done.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Done.java
@@ -4,6 +4,10 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.parser.Origin;
import tonkadur.fate.v1.lang.meta.InstructionVisitor;
@@ -28,15 +32,21 @@ public class Done extends GenericInstruction
public static Instruction build
(
final Origin origin,
- final String _alias,
+ final String alias,
final List<Computation> call_parameters
)
throws Throwable
{
if (call_parameters.size() != 0)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + "!)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/End.java b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/End.java
index b504486..077994b 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/End.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/End.java
@@ -4,6 +4,10 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.parser.Origin;
import tonkadur.fate.v1.lang.meta.InstructionVisitor;
@@ -28,15 +32,21 @@ public class End extends GenericInstruction
public static Instruction build
(
final Origin origin,
- final String _alias,
+ final String alias,
final List<Computation> call_parameters
)
throws Throwable
{
if (call_parameters.size() != 0)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + "!)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Filter.java b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Filter.java
index 6603152..5a15f17 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Filter.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Filter.java
@@ -8,6 +8,10 @@ import java.util.Collections;
import java.util.List;
import java.util.ArrayList;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
@@ -50,8 +54,17 @@ public class Filter extends GenericInstruction
if (call_parameters.size() < 2)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "("
+ + alias
+ + "! <(LAMBDA BOOL (X Y0...YN))> <(LIST X)|(SET X) REFERENCE>"
+ + " <Y0>...<YN>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Free.java b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Free.java
index 26e7175..46851dd 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Free.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Free.java
@@ -7,6 +7,8 @@ import java.util.List;
import tonkadur.error.ErrorManager;
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.parser.Origin;
import tonkadur.fate.v1.error.InvalidTypeException;
@@ -37,7 +39,7 @@ public class Free extends GenericInstruction
public static Instruction build
(
final Origin origin,
- final String alias_,
+ final String alias,
final List<Computation> call_parameters
)
throws Throwable
@@ -47,12 +49,16 @@ public class Free extends GenericInstruction
if (call_parameters.size() != 1)
{
- // TODO: Error.
- System.err.print
+ ErrorManager.handle
(
- "[E] Wrong number of arguments at "
- + origin.toString()
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + "! <(POINTER X)>)"
+ )
);
+
+ return null;
}
call_parameters.get(0).expect_non_string();
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/IndexedFilter.java b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/IndexedFilter.java
index 4589ccf..4a99186 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/IndexedFilter.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/IndexedFilter.java
@@ -11,6 +11,10 @@ import java.util.ArrayList;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.type.LambdaType;
import tonkadur.fate.v1.lang.type.CollectionType;
@@ -60,8 +64,18 @@ public class IndexedFilter extends GenericInstruction
if (call_parameters.size() < 2)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "("
+ + alias
+ + "! <(LAMBDA BOOL (INT X Y0...YN))>"
+ + " <(LIST X)|(SET X) REFERENCE>"
+ + " <Y0>...<YN>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/IndexedPartition.java b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/IndexedPartition.java
index 21c7817..7e8e9c9 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/IndexedPartition.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/IndexedPartition.java
@@ -11,6 +11,10 @@ import java.util.ArrayList;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.type.CollectionType;
@@ -60,8 +64,19 @@ public class IndexedPartition extends GenericInstruction
if (call_parameters.size() < 3)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "("
+ + alias
+ + "! <(LAMBDA BOOL (INT X Y0...YN))>"
+ + " <if_true: (LIST X)|(SET X) REFERENCE>"
+ + " <if_false: (LIST X)|(SET X) REFERENCE>"
+ + " <Y0>...<YN>)"
+ )
+ );
return null;
}
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 2b0b59d..fa6b3f7 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
@@ -11,6 +11,10 @@ import java.util.ArrayList;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.type.CollectionType;
@@ -51,8 +55,19 @@ public class Partition extends GenericInstruction
if (call_parameters.size() < 3)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "("
+ + alias
+ + "! <(LAMBDA BOOL (X Y0...YN))>"
+ + " <if_true: (LIST X)|(SET X) REFERENCE>"
+ + " <if_false: (LIST X)|(SET X) REFERENCE>"
+ + " <Y0>...<YN>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/PopElement.java b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/PopElement.java
index c8df7f4..ac4f6fe 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/PopElement.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/PopElement.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.PointerType;
import tonkadur.fate.v1.lang.type.CollectionType;
@@ -68,8 +72,14 @@ public class PopElement extends GenericInstruction
if (call_parameters.size() != 2)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + "! <(LIST X)|(SET X) REFERENCE> <X REFERENCE>)"
+ )
+ );
return null;
}
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 612d169..953b9d0 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
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.meta.InstructionVisitor;
import tonkadur.fate.v1.lang.meta.Instruction;
import tonkadur.fate.v1.lang.meta.Computation;
@@ -52,14 +56,20 @@ public class PushElement extends GenericInstruction
if (call_parameters.size() != 2)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + "! <X> <(LIST X)|(SET X) REFERENCE>)"
+ )
+ );
return null;
}
- collection = call_parameters.get(0);
- element = call_parameters.get(1);
+ element = call_parameters.get(0);
+ collection = call_parameters.get(1);
is_from_left = alias.endsWith("eft");
if (alias.startsWith("set:"))
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/RemoveAllOfElement.java b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/RemoveAllOfElement.java
index e397097..ef02d7f 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/RemoveAllOfElement.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/RemoveAllOfElement.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.meta.InstructionVisitor;
import tonkadur.fate.v1.lang.meta.Instruction;
import tonkadur.fate.v1.lang.meta.Computation;
@@ -51,8 +55,14 @@ public class RemoveAllOfElement extends GenericInstruction
if (call_parameters.size() != 2)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + "! <X> <(LIST X)|(SET X) REFERENCE>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/RemoveElement.java b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/RemoveElement.java
index f61a4d9..226ffce 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/RemoveElement.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/RemoveElement.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.meta.InstructionVisitor;
import tonkadur.fate.v1.lang.meta.Instruction;
import tonkadur.fate.v1.lang.meta.Computation;
@@ -53,8 +57,14 @@ public class RemoveElement extends GenericInstruction
if (call_parameters.size() != 1)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + "! <X> <(LIST X)|(SET X) REFERENCE>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/RemoveElementAt.java b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/RemoveElementAt.java
index 7d6d1ee..8ae6777 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/RemoveElementAt.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/RemoveElementAt.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.meta.InstructionVisitor;
@@ -47,8 +51,14 @@ public class RemoveElementAt extends GenericInstruction
if (call_parameters.size() != 2)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + "! <INT> <(LIST X)|(SET X) REFERENCE>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/RemoveElementsOf.java b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/RemoveElementsOf.java
index ebee46d..1d5a9a0 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/RemoveElementsOf.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/RemoveElementsOf.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.CollectionType;
import tonkadur.fate.v1.lang.meta.InstructionVisitor;
@@ -47,11 +51,13 @@ public class RemoveElementsOf extends GenericInstruction
if (call_parameters.size() != 2)
{
- // TODO: Error.
- System.err.print
+ ErrorManager.handle
(
- "[E] Wrong number of arguments at "
- + origin.toString()
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + "! <X> <(LIST X)|(SET X) REFERENCE>)"
+ )
);
return null;
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/ReverseList.java b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/ReverseList.java
index f57075b..d069381 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/ReverseList.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/ReverseList.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.meta.InstructionVisitor;
import tonkadur.fate.v1.lang.meta.Instruction;
import tonkadur.fate.v1.lang.meta.Computation;
@@ -40,11 +44,13 @@ public class ReverseList extends GenericInstruction
if (call_parameters.size() != 1)
{
- // TODO: Error.
- System.err.print
+ ErrorManager.handle
(
- "[E] Wrong number of arguments at "
- + origin.toString()
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + "! <(LIST X)|(SET X) REFERENCE>)"
+ )
);
return null;
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/SequenceVariableCall.java b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/SequenceVariableCall.java
index 3a4ccb0..3aea8e3 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/SequenceVariableCall.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/SequenceVariableCall.java
@@ -10,6 +10,7 @@ import tonkadur.parser.ParsingError;
import tonkadur.error.ErrorManager;
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
import tonkadur.fate.v1.error.InvalidTypeException;
import tonkadur.fate.v1.lang.type.SequenceType;
@@ -64,7 +65,7 @@ public class SequenceVariableCall extends GenericInstruction
public static Instruction build
(
final Origin origin,
- final String _alias,
+ final String alias,
final List<Computation> call_parameters
)
throws Throwable
@@ -74,8 +75,14 @@ public class SequenceVariableCall extends GenericInstruction
if (call_parameters.size() < 1)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + "! <(SEQUENCE X0...XN)> <X0>...<XN>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/SequenceVariableJump.java b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/SequenceVariableJump.java
index 66eef17..9dc5990 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/SequenceVariableJump.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/SequenceVariableJump.java
@@ -10,6 +10,7 @@ import tonkadur.parser.ParsingError;
import tonkadur.error.ErrorManager;
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
import tonkadur.fate.v1.error.InvalidTypeException;
import tonkadur.fate.v1.lang.type.SequenceType;
@@ -115,7 +116,7 @@ public class SequenceVariableJump extends GenericInstruction
public static Instruction build
(
final Origin origin,
- final String _alias,
+ final String alias,
final List<Computation> call_parameters
)
throws Throwable
@@ -125,8 +126,14 @@ public class SequenceVariableJump extends GenericInstruction
if (call_parameters.size() < 1)
{
- // TODO: Error.
- System.err.println("Wrong number of params at " + origin.toString());
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + "! <(SEQUENCE X0...XN)> <X0>...<XN>)"
+ )
+ );
return null;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/SetValue.java b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/SetValue.java
index d712715..ee96359 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/SetValue.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/SetValue.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.meta.InstructionVisitor;
import tonkadur.fate.v1.lang.meta.Instruction;
import tonkadur.fate.v1.lang.meta.Computation;
@@ -59,18 +63,20 @@ public class SetValue extends GenericInstruction
public static Instruction build
(
final Origin origin,
- final String _alias,
+ final String alias,
final List<Computation> call_parameters
)
throws Throwable
{
if (call_parameters.size() != 2)
{
- // TODO: Error.
- System.err.print
+ ErrorManager.handle
(
- "[E] Wrong number of arguments at "
- + origin.toString()
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + "! <X REFERENCE> <X>)"
+ )
);
return null;
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Shuffle.java b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Shuffle.java
index 587826f..b89b100 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Shuffle.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/Shuffle.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.meta.InstructionVisitor;
import tonkadur.fate.v1.lang.meta.Instruction;
import tonkadur.fate.v1.lang.meta.Computation;
@@ -23,7 +27,6 @@ public class Shuffle extends GenericInstruction
aliases = new ArrayList<String>();
aliases.add("list:shuffle");
- aliases.add("set:shuffle");
return aliases;
}
@@ -40,11 +43,13 @@ public class Shuffle extends GenericInstruction
if (call_parameters.size() != 1)
{
- // TODO: Error.
- System.err.print
+ ErrorManager.handle
(
- "[E] Wrong number of arguments at "
- + origin.toString()
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + "! <(LIST X) REFERENCE>)"
+ )
);
return null;
@@ -54,14 +59,7 @@ public class Shuffle extends GenericInstruction
collection.expect_non_string();
- if (alias.startsWith("set:"))
- {
- RecurrentChecks.assert_is_a_set(collection);
- }
- else
- {
- RecurrentChecks.assert_is_a_list(collection);
- }
+ RecurrentChecks.assert_is_a_list(collection);
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 5723518..72d0ef6 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
@@ -10,6 +10,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.type.CollectionType;
@@ -36,36 +40,60 @@ public class Sort extends GenericInstruction
public static Instruction build
(
final Origin origin,
- final String _alias,
+ final String alias,
final List<Computation> call_parameters
)
throws Throwable
{
- // TODO: implement
- final Computation lambda_function = null;
- final Computation collection = null;
- final List<Computation> extra_params = null;
- final List<Type> types_in;
+ final Computation lambda_function;
+ final Computation collection;
+ final List<Computation> extra_params;
+ final List<Type> base_param_types;
+
+ base_param_types = new ArrayList<Type>();
+ base_param_types.add(Type.INT);
+
+ if (call_parameters.size() < 2)
+ {
+ ErrorManager.handle
+ (
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "("
+ + alias
+ + "! <(LAMBDA INT (X Y0...YN))> <(LIST X)|(SET X) REFERENCE>"
+ + " <Y0>...<YN>)"
+ )
+ );
+
+ return null;
+ }
+
+ lambda_function = call_parameters.get(0);
+ collection = call_parameters.get(1);
+ extra_params = call_parameters.subList(2, call_parameters.size());
- types_in = new ArrayList<Type>();
+ collection.expect_non_string();
RecurrentChecks.assert_is_a_list(collection);
- types_in.add(((CollectionType) collection.get_type()).get_content_type());
- types_in.add(types_in.get(0));
+ base_param_types.add
+ (
+ ((CollectionType) collection.get_type()).get_content_type()
+ );
- for (final Computation c: extra_params)
- {
- types_in.add(c.get_type());
- }
+ base_param_types.add(base_param_types.get(0));
- RecurrentChecks.assert_lambda_matches_types
+ RecurrentChecks.propagate_expected_types_and_assert_is_lambda
(
lambda_function,
- Type.INT,
- types_in
+ base_param_types,
+ extra_params
);
+ RecurrentChecks.assert_return_type_is(lambda_function, Type.INT);
+
collection.use_as_reference();
return new Sort(origin, lambda_function, collection, extra_params);
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/SubList.java b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/SubList.java
index 69c498f..7c2b6c1 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/generic/SubList.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/generic/SubList.java
@@ -7,6 +7,10 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
+import tonkadur.error.ErrorManager;
+
+import tonkadur.fate.v1.error.WrongNumberOfParametersException;
+
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.meta.Computation;
@@ -51,11 +55,13 @@ public class SubList extends GenericInstruction
if (call_parameters.size() != 3)
{
- // TODO: Error.
- System.err.print
+ ErrorManager.handle
(
- "[E] Wrong number of arguments at "
- + origin.toString()
+ new WrongNumberOfParametersException
+ (
+ origin,
+ "(" + alias + "! <(LIST X)|(SET X) REFERENCE>)"
+ )
);
return null;