| summaryrefslogtreecommitdiff |
diff options
30 files changed, 226 insertions, 37 deletions
diff --git a/src/core/src/tonkadur/fate/v1/error/ConflictingTypeException.java b/src/core/src/tonkadur/fate/v1/error/ConflictingTypeException.java index f084ea9..5a1d06e 100644 --- a/src/core/src/tonkadur/fate/v1/error/ConflictingTypeException.java +++ b/src/core/src/tonkadur/fate/v1/error/ConflictingTypeException.java @@ -5,7 +5,7 @@ import tonkadur.error.ErrorLevel; import tonkadur.parser.Origin; import tonkadur.parser.ParsingError; -import tonkadur.fate.v1.lang.Type; +import tonkadur.fate.v1.lang.type.Type; public class ConflictingTypeException extends ParsingError { diff --git a/src/core/src/tonkadur/fate/v1/error/IncomparableTypeException.java b/src/core/src/tonkadur/fate/v1/error/IncomparableTypeException.java index b3fa548..8169825 100644 --- a/src/core/src/tonkadur/fate/v1/error/IncomparableTypeException.java +++ b/src/core/src/tonkadur/fate/v1/error/IncomparableTypeException.java @@ -5,7 +5,7 @@ import tonkadur.error.ErrorLevel; import tonkadur.parser.Origin; import tonkadur.parser.ParsingError; -import tonkadur.fate.v1.lang.Type; +import tonkadur.fate.v1.lang.type.Type; public class IncomparableTypeException extends ParsingError { diff --git a/src/core/src/tonkadur/fate/v1/error/IncompatibleTypeException.java b/src/core/src/tonkadur/fate/v1/error/IncompatibleTypeException.java index d1827d3..6ada2c3 100644 --- a/src/core/src/tonkadur/fate/v1/error/IncompatibleTypeException.java +++ b/src/core/src/tonkadur/fate/v1/error/IncompatibleTypeException.java @@ -5,7 +5,7 @@ import tonkadur.error.ErrorLevel; import tonkadur.parser.Origin; import tonkadur.parser.ParsingError; -import tonkadur.fate.v1.lang.Type; +import tonkadur.fate.v1.lang.type.Type; public class IncompatibleTypeException extends ParsingError { diff --git a/src/core/src/tonkadur/fate/v1/error/InvalidTypeException.java b/src/core/src/tonkadur/fate/v1/error/InvalidTypeException.java index fcee1ef..a2745d9 100644 --- a/src/core/src/tonkadur/fate/v1/error/InvalidTypeException.java +++ b/src/core/src/tonkadur/fate/v1/error/InvalidTypeException.java @@ -7,7 +7,7 @@ import tonkadur.error.ErrorLevel; import tonkadur.parser.Origin; import tonkadur.parser.ParsingError; -import tonkadur.fate.v1.lang.Type; +import tonkadur.fate.v1.lang.type.Type; public class InvalidTypeException extends ParsingError { diff --git a/src/core/src/tonkadur/fate/v1/error/UnknownDictionaryFieldException.java b/src/core/src/tonkadur/fate/v1/error/UnknownDictionaryFieldException.java index aa1ff70..f5e67f2 100644 --- a/src/core/src/tonkadur/fate/v1/error/UnknownDictionaryFieldException.java +++ b/src/core/src/tonkadur/fate/v1/error/UnknownDictionaryFieldException.java @@ -7,8 +7,8 @@ import tonkadur.error.ErrorLevel; import tonkadur.parser.Origin; import tonkadur.parser.ParsingError; -import tonkadur.fate.v1.lang.DictType; -import tonkadur.fate.v1.lang.Type; +import tonkadur.fate.v1.lang.type.DictType; +import tonkadur.fate.v1.lang.type.Type; public class UnknownDictionaryFieldException extends ParsingError { diff --git a/src/core/src/tonkadur/fate/v1/lang/Event.java b/src/core/src/tonkadur/fate/v1/lang/Event.java index fe667af..55b8c62 100644 --- a/src/core/src/tonkadur/fate/v1/lang/Event.java +++ b/src/core/src/tonkadur/fate/v1/lang/Event.java @@ -11,6 +11,8 @@ import tonkadur.parser.Origin; import tonkadur.fate.v1.lang.meta.DeclaredEntity; +import tonkadur.fate.v1.lang.type.Type; + public class Event extends DeclaredEntity { protected static final Event ANY; diff --git a/src/core/src/tonkadur/fate/v1/lang/TextEffect.java b/src/core/src/tonkadur/fate/v1/lang/TextEffect.java index db29da1..dde0cfd 100644 --- a/src/core/src/tonkadur/fate/v1/lang/TextEffect.java +++ b/src/core/src/tonkadur/fate/v1/lang/TextEffect.java @@ -11,6 +11,8 @@ import tonkadur.parser.Origin; import tonkadur.fate.v1.lang.meta.DeclaredEntity; +import tonkadur.fate.v1.lang.type.Type; + public class TextEffect extends Event { protected static final TextEffect ANY; diff --git a/src/core/src/tonkadur/fate/v1/lang/Variable.java b/src/core/src/tonkadur/fate/v1/lang/Variable.java index 3e17d61..0b6bba5 100644 --- a/src/core/src/tonkadur/fate/v1/lang/Variable.java +++ b/src/core/src/tonkadur/fate/v1/lang/Variable.java @@ -11,6 +11,8 @@ import tonkadur.parser.Origin; import tonkadur.fate.v1.lang.meta.DeclaredEntity; +import tonkadur.fate.v1.lang.type.Type; + public class Variable extends DeclaredEntity { protected static final Variable ANY; diff --git a/src/core/src/tonkadur/fate/v1/lang/World.java b/src/core/src/tonkadur/fate/v1/lang/World.java index 76b7805..eb87c45 100644 --- a/src/core/src/tonkadur/fate/v1/lang/World.java +++ b/src/core/src/tonkadur/fate/v1/lang/World.java @@ -18,6 +18,7 @@ import tonkadur.fate.v1.error.UnknownSequenceException; import tonkadur.fate.v1.lang.meta.DeclarationCollection; +import tonkadur.fate.v1.lang.type.Type; public class World { diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/AddElement.java b/src/core/src/tonkadur/fate/v1/lang/instruction/AddElement.java new file mode 100644 index 0000000..9cc9b3b --- /dev/null +++ b/src/core/src/tonkadur/fate/v1/lang/instruction/AddElement.java @@ -0,0 +1,148 @@ +package tonkadur.fate.v1.lang.instruction; + +import tonkadur.error.ErrorManager; + +import tonkadur.parser.Origin; + +import tonkadur.fate.v1.error.ConflictingTypeException; +import tonkadur.fate.v1.error.IncomparableTypeException; +import tonkadur.fate.v1.error.InvalidTypeException; + +import tonkadur.fate.v1.lang.type.CollectionType; +import tonkadur.fate.v1.lang.type.Type; + +import tonkadur.fate.v1.lang.meta.InstructionNode; +import tonkadur.fate.v1.lang.meta.ValueNode; + +public class AddElement extends InstructionNode +{ + /***************************************************************************/ + /**** MEMBERS **************************************************************/ + /***************************************************************************/ + protected final ValueNode element; + protected final ValueNode collection; + + /***************************************************************************/ + /**** PROTECTED ************************************************************/ + /***************************************************************************/ + /**** Constructors *********************************************************/ + protected AddElement + ( + final Origin origin, + final ValueNode element, + final ValueNode collection + ) + { + super(origin); + + this.collection = collection; + this.element = element; + } + + /***************************************************************************/ + /**** PUBLIC ***************************************************************/ + /***************************************************************************/ + /**** Constructors *********************************************************/ + public static AddElement build + ( + final Origin origin, + final ValueNode element, + final ValueNode collection + ) + throws + InvalidTypeException, + ConflictingTypeException, + IncomparableTypeException + { + final Type hint; + final Type collection_type; + final CollectionType collection_true_type; + final Type collection_element_type; + + collection_type = collection.get_type(); + + if + ( + !Type.COLLECTION_TYPES.contains(collection_type.get_base_type()) + || !(collection_type instanceof CollectionType) + ) + { + ErrorManager.handle + ( + new InvalidTypeException + ( + collection.get_origin(), + collection.get_type(), + Type.COLLECTION_TYPES + ) + ); + } + + collection_true_type = (CollectionType) collection_type; + collection_element_type = collection_true_type.get_content_type(); + + if (element.get_type().can_be_used_as(collection_element_type)) + { + return new AddElement(origin, element, collection); + } + + ErrorManager.handle + ( + new ConflictingTypeException + ( + element.get_origin(), + element.get_type(), + collection_element_type + ) + ); + + hint = + (Type) element.get_type().generate_comparable_to + ( + collection_element_type + ); + + if (hint.equals(Type.ANY)) + { + ErrorManager.handle + ( + new IncomparableTypeException + ( + element.get_origin(), + element.get_type(), + collection_element_type + ) + ); + } + + return new AddElement(origin, element, collection); + } + + /**** Accessors ************************************************************/ + + /**** Misc. ****************************************************************/ + @Override + public String toString () + { + final StringBuilder sb = new StringBuilder(); + + sb.append(origin.toString()); + sb.append("(AddElement"); + sb.append(System.lineSeparator()); + sb.append(System.lineSeparator()); + + sb.append("element:"); + sb.append(System.lineSeparator()); + sb.append(element.toString()); + sb.append(System.lineSeparator()); + sb.append(System.lineSeparator()); + + sb.append("collection:"); + sb.append(System.lineSeparator()); + sb.append(collection.toString()); + + sb.append(")"); + + return sb.toString(); + } +} diff --git a/src/core/src/tonkadur/fate/v1/lang/InstructionList.java b/src/core/src/tonkadur/fate/v1/lang/instruction/InstructionList.java index ee85120..47d0c35 100644 --- a/src/core/src/tonkadur/fate/v1/lang/InstructionList.java +++ b/src/core/src/tonkadur/fate/v1/lang/instruction/InstructionList.java @@ -1,4 +1,4 @@ -package tonkadur.fate.v1.lang; +package tonkadur.fate.v1.lang.instruction; import java.util.List; diff --git a/src/core/src/tonkadur/fate/v1/lang/SequenceCall.java b/src/core/src/tonkadur/fate/v1/lang/instruction/SequenceCall.java index 5b0df50..03b7453 100644 --- a/src/core/src/tonkadur/fate/v1/lang/SequenceCall.java +++ b/src/core/src/tonkadur/fate/v1/lang/instruction/SequenceCall.java @@ -1,4 +1,4 @@ -package tonkadur.fate.v1.lang; +package tonkadur.fate.v1.lang.instruction; import tonkadur.parser.Origin; diff --git a/src/core/src/tonkadur/fate/v1/lang/meta/TypedEntryList.java b/src/core/src/tonkadur/fate/v1/lang/meta/TypedEntryList.java index b8ad468..7692e38 100644 --- a/src/core/src/tonkadur/fate/v1/lang/meta/TypedEntryList.java +++ b/src/core/src/tonkadur/fate/v1/lang/meta/TypedEntryList.java @@ -11,7 +11,7 @@ import tonkadur.error.ErrorManager; import tonkadur.fate.v1.error.DuplicateFieldException; -import tonkadur.fate.v1.lang.Type; +import tonkadur.fate.v1.lang.type.Type; public class TypedEntryList { diff --git a/src/core/src/tonkadur/fate/v1/lang/meta/ValueNode.java b/src/core/src/tonkadur/fate/v1/lang/meta/ValueNode.java index 6670855..f1a8b64 100644 --- a/src/core/src/tonkadur/fate/v1/lang/meta/ValueNode.java +++ b/src/core/src/tonkadur/fate/v1/lang/meta/ValueNode.java @@ -2,7 +2,7 @@ package tonkadur.fate.v1.lang.meta; import tonkadur.parser.Origin; -import tonkadur.fate.v1.lang.Type; +import tonkadur.fate.v1.lang.type.Type; public abstract class ValueNode extends Node { diff --git a/src/core/src/tonkadur/fate/v1/lang/CollectionType.java b/src/core/src/tonkadur/fate/v1/lang/type/CollectionType.java index 0fc52d0..04c02f2 100644 --- a/src/core/src/tonkadur/fate/v1/lang/CollectionType.java +++ b/src/core/src/tonkadur/fate/v1/lang/type/CollectionType.java @@ -1,4 +1,4 @@ -package tonkadur.fate.v1.lang; +package tonkadur.fate.v1.lang.type; import tonkadur.error.ErrorManager; diff --git a/src/core/src/tonkadur/fate/v1/lang/DictType.java b/src/core/src/tonkadur/fate/v1/lang/type/DictType.java index 0b1d138..93b9106 100644 --- a/src/core/src/tonkadur/fate/v1/lang/DictType.java +++ b/src/core/src/tonkadur/fate/v1/lang/type/DictType.java @@ -1,4 +1,4 @@ -package tonkadur.fate.v1.lang; +package tonkadur.fate.v1.lang.type; import java.util.Map; import java.util.HashSet; diff --git a/src/core/src/tonkadur/fate/v1/lang/RefType.java b/src/core/src/tonkadur/fate/v1/lang/type/RefType.java index 423f695..277e369 100644 --- a/src/core/src/tonkadur/fate/v1/lang/RefType.java +++ b/src/core/src/tonkadur/fate/v1/lang/type/RefType.java @@ -1,4 +1,4 @@ -package tonkadur.fate.v1.lang; +package tonkadur.fate.v1.lang.type; import tonkadur.parser.Origin; diff --git a/src/core/src/tonkadur/fate/v1/lang/Type.java b/src/core/src/tonkadur/fate/v1/lang/type/Type.java index cbbeb42..4d3ad1d 100644 --- a/src/core/src/tonkadur/fate/v1/lang/Type.java +++ b/src/core/src/tonkadur/fate/v1/lang/type/Type.java @@ -1,4 +1,4 @@ -package tonkadur.fate.v1.lang; +package tonkadur.fate.v1.lang.type; import java.util.ArrayList; import java.util.Collections; diff --git a/src/core/src/tonkadur/fate/v1/lang/Cast.java b/src/core/src/tonkadur/fate/v1/lang/valued_node/Cast.java index f8b4a75..afc2c0e 100644 --- a/src/core/src/tonkadur/fate/v1/lang/Cast.java +++ b/src/core/src/tonkadur/fate/v1/lang/valued_node/Cast.java @@ -1,4 +1,4 @@ -package tonkadur.fate.v1.lang; +package tonkadur.fate.v1.lang.valued_node; import java.util.Set; import java.util.Map; @@ -9,11 +9,13 @@ import tonkadur.error.ErrorManager; import tonkadur.parser.Origin; -import tonkadur.fate.v1.lang.meta.ValueNode; - import tonkadur.fate.v1.error.IncompatibleTypeException; import tonkadur.fate.v1.error.IncomparableTypeException; +import tonkadur.fate.v1.lang.type.Type; + +import tonkadur.fate.v1.lang.meta.ValueNode; + public class Cast extends ValueNode { protected static final Map<Type,Set<Type>> allowed_type_changes; diff --git a/src/core/src/tonkadur/fate/v1/lang/CondValue.java b/src/core/src/tonkadur/fate/v1/lang/valued_node/CondValue.java index cb0bf7c..fa8dcaf 100644 --- a/src/core/src/tonkadur/fate/v1/lang/CondValue.java +++ b/src/core/src/tonkadur/fate/v1/lang/valued_node/CondValue.java @@ -1,4 +1,4 @@ -package tonkadur.fate.v1.lang; +package tonkadur.fate.v1.lang.valued_node; import java.util.List; import java.util.Collections; @@ -9,12 +9,14 @@ import tonkadur.error.ErrorManager; import tonkadur.parser.Origin; -import tonkadur.fate.v1.lang.meta.ValueNode; - import tonkadur.fate.v1.error.ConflictingTypeException; import tonkadur.fate.v1.error.IncomparableTypeException; import tonkadur.fate.v1.error.InvalidTypeException; +import tonkadur.fate.v1.lang.type.Type; + +import tonkadur.fate.v1.lang.meta.ValueNode; + public class CondValue extends ValueNode { /***************************************************************************/ diff --git a/src/core/src/tonkadur/fate/v1/lang/Constant.java b/src/core/src/tonkadur/fate/v1/lang/valued_node/Constant.java index 9c13b1f..f99f375 100644 --- a/src/core/src/tonkadur/fate/v1/lang/Constant.java +++ b/src/core/src/tonkadur/fate/v1/lang/valued_node/Constant.java @@ -1,7 +1,9 @@ -package tonkadur.fate.v1.lang; +package tonkadur.fate.v1.lang.valued_node; import tonkadur.parser.Origin; +import tonkadur.fate.v1.lang.type.Type; + import tonkadur.fate.v1.lang.meta.ValueNode; public class Constant extends ValueNode diff --git a/src/core/src/tonkadur/fate/v1/lang/CountOperator.java b/src/core/src/tonkadur/fate/v1/lang/valued_node/CountOperator.java index eabbe5c..7eacc40 100644 --- a/src/core/src/tonkadur/fate/v1/lang/CountOperator.java +++ b/src/core/src/tonkadur/fate/v1/lang/valued_node/CountOperator.java @@ -1,15 +1,18 @@ -package tonkadur.fate.v1.lang; +package tonkadur.fate.v1.lang.valued_node; import tonkadur.error.ErrorManager; import tonkadur.parser.Origin; -import tonkadur.fate.v1.lang.meta.ValueNode; - import tonkadur.fate.v1.error.ConflictingTypeException; import tonkadur.fate.v1.error.IncomparableTypeException; import tonkadur.fate.v1.error.InvalidTypeException; +import tonkadur.fate.v1.lang.type.CollectionType; +import tonkadur.fate.v1.lang.type.Type; + +import tonkadur.fate.v1.lang.meta.ValueNode; + public class CountOperator extends ValueNode { /***************************************************************************/ diff --git a/src/core/src/tonkadur/fate/v1/lang/IfElseValue.java b/src/core/src/tonkadur/fate/v1/lang/valued_node/IfElseValue.java index d54e164..1b40f73 100644 --- a/src/core/src/tonkadur/fate/v1/lang/IfElseValue.java +++ b/src/core/src/tonkadur/fate/v1/lang/valued_node/IfElseValue.java @@ -1,4 +1,4 @@ -package tonkadur.fate.v1.lang; +package tonkadur.fate.v1.lang.valued_node; import java.util.Collections; @@ -6,12 +6,14 @@ import tonkadur.error.ErrorManager; import tonkadur.parser.Origin; -import tonkadur.fate.v1.lang.meta.ValueNode; - import tonkadur.fate.v1.error.ConflictingTypeException; import tonkadur.fate.v1.error.IncomparableTypeException; import tonkadur.fate.v1.error.InvalidTypeException; +import tonkadur.fate.v1.lang.type.Type; + +import tonkadur.fate.v1.lang.meta.ValueNode; + public class IfElseValue extends ValueNode { /***************************************************************************/ diff --git a/src/core/src/tonkadur/fate/v1/lang/IsMemberOperator.java b/src/core/src/tonkadur/fate/v1/lang/valued_node/IsMemberOperator.java index 3120c6c..7701614 100644 --- a/src/core/src/tonkadur/fate/v1/lang/IsMemberOperator.java +++ b/src/core/src/tonkadur/fate/v1/lang/valued_node/IsMemberOperator.java @@ -1,15 +1,18 @@ -package tonkadur.fate.v1.lang; +package tonkadur.fate.v1.lang.valued_node; import tonkadur.error.ErrorManager; import tonkadur.parser.Origin; -import tonkadur.fate.v1.lang.meta.ValueNode; - import tonkadur.fate.v1.error.ConflictingTypeException; import tonkadur.fate.v1.error.IncomparableTypeException; import tonkadur.fate.v1.error.InvalidTypeException; +import tonkadur.fate.v1.lang.type.CollectionType; +import tonkadur.fate.v1.lang.type.Type; + +import tonkadur.fate.v1.lang.meta.ValueNode; + public class IsMemberOperator extends ValueNode { /***************************************************************************/ diff --git a/src/core/src/tonkadur/fate/v1/lang/Operation.java b/src/core/src/tonkadur/fate/v1/lang/valued_node/Operation.java index b3549e6..87ea676 100644 --- a/src/core/src/tonkadur/fate/v1/lang/Operation.java +++ b/src/core/src/tonkadur/fate/v1/lang/valued_node/Operation.java @@ -1,4 +1,4 @@ -package tonkadur.fate.v1.lang; +package tonkadur.fate.v1.lang.valued_node; import java.util.Collection; import java.util.List; @@ -13,6 +13,8 @@ import tonkadur.fate.v1.error.IncompatibleTypeException; import tonkadur.fate.v1.error.InvalidArityException; import tonkadur.fate.v1.error.InvalidTypeException; +import tonkadur.fate.v1.lang.type.Type; + import tonkadur.fate.v1.lang.meta.ValueNode; public class Operation extends ValueNode diff --git a/src/core/src/tonkadur/fate/v1/lang/Operator.java b/src/core/src/tonkadur/fate/v1/lang/valued_node/Operator.java index 5a8f303..7f1db14 100644 --- a/src/core/src/tonkadur/fate/v1/lang/Operator.java +++ b/src/core/src/tonkadur/fate/v1/lang/valued_node/Operator.java @@ -1,8 +1,10 @@ -package tonkadur.fate.v1.lang; +package tonkadur.fate.v1.lang.valued_node; import java.util.Collections; import java.util.Set; +import tonkadur.fate.v1.lang.type.Type; + /* * Yes, it *could* have been an enum. In fact, it used to be one. Except that * unless you want to ensure coverage of all cases in a switch, Java enums are diff --git a/src/core/src/tonkadur/fate/v1/lang/RefOperator.java b/src/core/src/tonkadur/fate/v1/lang/valued_node/RefOperator.java index f55be22..e6d03b2 100644 --- a/src/core/src/tonkadur/fate/v1/lang/RefOperator.java +++ b/src/core/src/tonkadur/fate/v1/lang/valued_node/RefOperator.java @@ -1,7 +1,11 @@ -package tonkadur.fate.v1.lang; +package tonkadur.fate.v1.lang.valued_node; import tonkadur.parser.Origin; +import tonkadur.fate.v1.lang.Variable; + +import tonkadur.fate.v1.lang.type.RefType; + import tonkadur.fate.v1.lang.meta.ValueNode; public class RefOperator extends ValueNode diff --git a/src/core/src/tonkadur/fate/v1/lang/VariableFieldReference.java b/src/core/src/tonkadur/fate/v1/lang/valued_node/VariableFieldReference.java index 767a56b..17a99fa 100644 --- a/src/core/src/tonkadur/fate/v1/lang/VariableFieldReference.java +++ b/src/core/src/tonkadur/fate/v1/lang/valued_node/VariableFieldReference.java @@ -1,4 +1,4 @@ -package tonkadur.fate.v1.lang; +package tonkadur.fate.v1.lang.valued_node; import java.util.Arrays; import java.util.List; @@ -7,11 +7,16 @@ import tonkadur.parser.Origin; import tonkadur.error.ErrorManager; -import tonkadur.fate.v1.lang.meta.ValueNode; - import tonkadur.fate.v1.error.InvalidTypeException; import tonkadur.fate.v1.error.UnknownDictionaryFieldException; +import tonkadur.fate.v1.lang.Variable; + +import tonkadur.fate.v1.lang.meta.ValueNode; + +import tonkadur.fate.v1.lang.type.DictType; +import tonkadur.fate.v1.lang.type.Type; + public class VariableFieldReference extends VariableReference { /***************************************************************************/ diff --git a/src/core/src/tonkadur/fate/v1/lang/VariableReference.java b/src/core/src/tonkadur/fate/v1/lang/valued_node/VariableReference.java index 5a08483..1423b31 100644 --- a/src/core/src/tonkadur/fate/v1/lang/VariableReference.java +++ b/src/core/src/tonkadur/fate/v1/lang/valued_node/VariableReference.java @@ -1,9 +1,13 @@ -package tonkadur.fate.v1.lang; +package tonkadur.fate.v1.lang.valued_node; import tonkadur.parser.Origin; +import tonkadur.fate.v1.lang.Variable; + import tonkadur.fate.v1.lang.meta.ValueNode; +import tonkadur.fate.v1.lang.type.Type; + public class VariableReference extends ValueNode { /***************************************************************************/ diff --git a/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 b/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 index 8f84217..fbb1d2d 100644 --- a/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 +++ b/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 @@ -28,7 +28,10 @@ options import tonkadur.fate.v1.error.UnknownVariableScopeException; import tonkadur.fate.v1.lang.*; + import tonkadur.fate.v1.lang.instruction.*; import tonkadur.fate.v1.lang.meta.*; + import tonkadur.fate.v1.lang.type.*; + import tonkadur.fate.v1.lang.valued_node.*; } @members |


