| summaryrefslogtreecommitdiff | 
diff options
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; | 


