| summaryrefslogtreecommitdiff |
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2021-09-05 23:20:56 +0200 |
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2021-09-05 23:20:56 +0200 |
| commit | 08776453837b50642b678ae864cfc6b70ec7f2b5 (patch) | |
| tree | 38ee3fefae70a2d133f90b9fa108972ddd2fd39b /src | |
| parent | c14f60f9c3dd45610ff3cba48ce7b33a2b67a315 (diff) | |
Adds error handling for generic instructions/computations (prints documentation)
Diffstat (limited to 'src')
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; |


