summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2020-07-17 21:20:50 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2020-07-17 21:20:50 +0200
commitca36b9f2ae93d989aeacf0b7267e19ed6913a4fe (patch)
treef9fe0b8e6a8b2d48cdab98c8456f31ce3598f7f6
parentf1b045e03a7a5f3d9d4b94c5e4d41359ee77a594 (diff)
Sorting stuff...
-rw-r--r--src/core/src/tonkadur/fate/v1/error/ConflictingTypeException.java2
-rw-r--r--src/core/src/tonkadur/fate/v1/error/IncomparableTypeException.java2
-rw-r--r--src/core/src/tonkadur/fate/v1/error/IncompatibleTypeException.java2
-rw-r--r--src/core/src/tonkadur/fate/v1/error/InvalidTypeException.java2
-rw-r--r--src/core/src/tonkadur/fate/v1/error/UnknownDictionaryFieldException.java4
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/Event.java2
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/TextEffect.java2
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/Variable.java2
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/World.java1
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/AddElement.java148
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/InstructionList.java (renamed from src/core/src/tonkadur/fate/v1/lang/InstructionList.java)2
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/SequenceCall.java (renamed from src/core/src/tonkadur/fate/v1/lang/SequenceCall.java)2
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/meta/TypedEntryList.java2
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/meta/ValueNode.java2
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/type/CollectionType.java (renamed from src/core/src/tonkadur/fate/v1/lang/CollectionType.java)2
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/type/DictType.java (renamed from src/core/src/tonkadur/fate/v1/lang/DictType.java)2
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/type/RefType.java (renamed from src/core/src/tonkadur/fate/v1/lang/RefType.java)2
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/type/Type.java (renamed from src/core/src/tonkadur/fate/v1/lang/Type.java)2
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/valued_node/Cast.java (renamed from src/core/src/tonkadur/fate/v1/lang/Cast.java)8
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/valued_node/CondValue.java (renamed from src/core/src/tonkadur/fate/v1/lang/CondValue.java)8
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/valued_node/Constant.java (renamed from src/core/src/tonkadur/fate/v1/lang/Constant.java)4
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/valued_node/CountOperator.java (renamed from src/core/src/tonkadur/fate/v1/lang/CountOperator.java)9
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/valued_node/IfElseValue.java (renamed from src/core/src/tonkadur/fate/v1/lang/IfElseValue.java)8
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/valued_node/IsMemberOperator.java (renamed from src/core/src/tonkadur/fate/v1/lang/IsMemberOperator.java)9
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/valued_node/Operation.java (renamed from src/core/src/tonkadur/fate/v1/lang/Operation.java)4
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/valued_node/Operator.java (renamed from src/core/src/tonkadur/fate/v1/lang/Operator.java)4
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/valued_node/RefOperator.java (renamed from src/core/src/tonkadur/fate/v1/lang/RefOperator.java)6
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/valued_node/VariableFieldReference.java (renamed from src/core/src/tonkadur/fate/v1/lang/VariableFieldReference.java)11
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/valued_node/VariableReference.java (renamed from src/core/src/tonkadur/fate/v1/lang/VariableReference.java)6
-rw-r--r--src/core/src/tonkadur/fate/v1/parser/FateParser.g43
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