summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2020-08-25 23:18:12 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2020-08-25 23:18:12 +0200
commit8f1702278c55cb2f55ef7ca7d26d46e96ceffd73 (patch)
tree40758443de000ed9ef13ad3e720f55f061897afd
parentf745cf10b898eafbe4fe781b05d243d5e32f72bc (diff)
Version 0.9.0 release.
-rw-r--r--src/core/src/tonkadur/RuntimeParameters.java17
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/World.java2
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/Cast.java4
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/CondValue.java4
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/Constant.java2
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/IfElseValue.java4
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/IsMemberOperator.java2
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/Operator.java20
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/Assert.java4
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/CondInstruction.java4
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/DoWhile.java4
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/For.java4
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/IfElseInstruction.java4
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/IfInstruction.java4
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/While.java4
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/type/CollectionType.java12
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/type/DictType.java6
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/type/LambdaType.java6
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/type/PointerType.java6
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/type/Type.java31
-rw-r--r--src/core/src/tonkadur/fate/v1/parser/FateParser.g43
-rw-r--r--src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/ComputationCompiler.java6
-rw-r--r--src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/InstructionCompiler.java6
-rw-r--r--src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/TypeCompiler.java8
-rw-r--r--src/core/src/tonkadur/wyrd/v1/lang/computation/Constant.java4
-rw-r--r--src/core/src/tonkadur/wyrd/v1/lang/computation/Operation.java8
-rw-r--r--src/core/src/tonkadur/wyrd/v1/lang/type/MapType.java4
-rw-r--r--src/core/src/tonkadur/wyrd/v1/lang/type/Type.java4
-rw-r--r--src/json-export/src/tonkadur/plugin/JSONExport.java10
29 files changed, 126 insertions, 71 deletions
diff --git a/src/core/src/tonkadur/RuntimeParameters.java b/src/core/src/tonkadur/RuntimeParameters.java
index bf72b04..b6a8f5c 100644
--- a/src/core/src/tonkadur/RuntimeParameters.java
+++ b/src/core/src/tonkadur/RuntimeParameters.java
@@ -11,6 +11,7 @@ import tonkadur.error.ErrorCategory;
public class RuntimeParameters
{
+ protected static final String version;
protected static final List<String> include_directories;
protected static final Collection<ErrorCategory> disabled_errors;
protected static final Collection<ErrorCategory> tolerated_errors;
@@ -19,6 +20,7 @@ public class RuntimeParameters
static
{
+ version = "0.9.0";
include_directories = new ArrayList<String>();
disabled_errors = new HashSet<ErrorCategory>();
tolerated_errors = new HashSet<ErrorCategory>();
@@ -60,6 +62,7 @@ public class RuntimeParameters
final Collection<TonkadurPlugin> plugins
)
{
+ System.out.println("Tonkadur version " + version);
System.out.println("Usage: tonkadur [<options>] <file>");
System.out.println("Options:");
System.out.println
@@ -78,6 +81,10 @@ public class RuntimeParameters
(
" -se|--silence-error <name>\tErrors of type <name> are ignored."
);
+ System.out.println
+ (
+ " --legal \t\t\tPrints the relevant licenses."
+ );
for (final TonkadurPlugin plugin: plugins)
{
@@ -182,8 +189,18 @@ public class RuntimeParameters
disabled_errors.add(er);
}
+ else if (option.equals("--legal"))
+ {
+ print_license();
+ }
}
return true;
}
+
+ protected static void print_license ()
+ {
+ System.out.println("Tonkadur is released under an Apache license. Go to https://tonkadur.of.tacticians.online/LICENSE to consult it.");
+ System.out.println("Tonkadur uses and ships with a copy of ANTLR 4. Go to https://www.antlr.org/license.html to see ANTLR's license.");
+ }
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/World.java b/src/core/src/tonkadur/fate/v1/lang/World.java
index 98a6f06..893b0e6 100644
--- a/src/core/src/tonkadur/fate/v1/lang/World.java
+++ b/src/core/src/tonkadur/fate/v1/lang/World.java
@@ -277,7 +277,7 @@ public class World
{
try
{
- type_collection.add(Type.BOOLEAN);
+ type_collection.add(Type.BOOL);
//type_collection.add(Type.DICT);
type_collection.add(Type.FLOAT);
type_collection.add(Type.INT);
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/Cast.java b/src/core/src/tonkadur/fate/v1/lang/computation/Cast.java
index 10ccd1b..d0096fb 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/Cast.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/Cast.java
@@ -58,7 +58,7 @@ public class Cast extends Computation
allowed_type_changes.put
(
- Type.BOOLEAN,
+ Type.BOOL,
Collections.emptySet()
);
@@ -71,7 +71,7 @@ public class Cast extends Computation
allowed_type_changes.put
(
Type.STRING,
- Type.SIMPLE_BASE_TYPES
+ Type.COMPARABLE_TYPES
);
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/CondValue.java b/src/core/src/tonkadur/fate/v1/lang/computation/CondValue.java
index 1ac1f0c..dcd014b 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/CondValue.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/CondValue.java
@@ -63,7 +63,7 @@ public class CondValue extends Computation
for (final Cons<Computation, Computation> entry: branches)
{
- if (!entry.get_car().get_type().can_be_used_as(Type.BOOLEAN))
+ if (!entry.get_car().get_type().can_be_used_as(Type.BOOL))
{
ErrorManager.handle
(
@@ -71,7 +71,7 @@ public class CondValue extends Computation
(
entry.get_car().get_origin(),
entry.get_car().get_type(),
- Collections.singleton(Type.BOOLEAN)
+ Collections.singleton(Type.BOOL)
)
);
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/Constant.java b/src/core/src/tonkadur/fate/v1/lang/computation/Constant.java
index 13233bc..1945cea 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/Constant.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/Constant.java
@@ -40,7 +40,7 @@ public class Constant extends Computation
final boolean value
)
{
- return new Constant(origin, Type.BOOLEAN, value ? "true" : "false");
+ return new Constant(origin, Type.BOOL, value ? "true" : "false");
}
public static Constant build_string
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/IfElseValue.java b/src/core/src/tonkadur/fate/v1/lang/computation/IfElseValue.java
index 5288163..2fdb15e 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/IfElseValue.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/IfElseValue.java
@@ -64,7 +64,7 @@ public class IfElseValue extends Computation
final Type if_true_type;
final Type if_false_type;
- if (!condition.get_type().can_be_used_as(Type.BOOLEAN))
+ if (!condition.get_type().can_be_used_as(Type.BOOL))
{
ErrorManager.handle
(
@@ -72,7 +72,7 @@ public class IfElseValue extends Computation
(
condition.get_origin(),
condition.get_type(),
- Collections.singleton(Type.BOOLEAN)
+ Collections.singleton(Type.BOOL)
)
);
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/IsMemberOperator.java b/src/core/src/tonkadur/fate/v1/lang/computation/IsMemberOperator.java
index ce110ab..0422dc2 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/IsMemberOperator.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/IsMemberOperator.java
@@ -33,7 +33,7 @@ public class IsMemberOperator extends Computation
final Computation collection
)
{
- super(origin, Type.BOOLEAN);
+ super(origin, Type.BOOL);
this.collection = collection;
this.element = element;
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/Operator.java b/src/core/src/tonkadur/fate/v1/lang/computation/Operator.java
index fff66a1..fd6ec28 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/Operator.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/Operator.java
@@ -56,18 +56,18 @@ public class Operator
new Operator("rand", 2, 2, Collections.singleton(Type.INT), null);
AND =
- new Operator("and", 2, 0, Collections.singleton(Type.BOOLEAN), null);
+ new Operator("and", 2, 0, Collections.singleton(Type.BOOL), null);
OR =
- new Operator("or", 2, 0, Collections.singleton(Type.BOOLEAN), null);
+ new Operator("or", 2, 0, Collections.singleton(Type.BOOL), null);
NOT =
- new Operator("not", 1, 1, Collections.singleton(Type.BOOLEAN), null);
+ new Operator("not", 1, 1, Collections.singleton(Type.BOOL), null);
IMPLIES =
new Operator
(
"implies",
2,
2,
- Collections.singleton(Type.BOOLEAN),
+ Collections.singleton(Type.BOOL),
null
);
ONE_IN =
@@ -76,20 +76,20 @@ public class Operator
"one_in",
1,
0,
- Collections.singleton(Type.BOOLEAN),
+ Collections.singleton(Type.BOOL),
null
);
EQUALS =
- new Operator("equals", 2, 0, Type.ALL_TYPES, Type.BOOLEAN);
+ new Operator("equals", 2, 0, Type.ALL_TYPES, Type.BOOL);
LOWER_THAN =
- new Operator("<", 2, 2, Type.SIMPLE_BASE_TYPES, Type.BOOLEAN);
+ new Operator("<", 2, 2, Type.COMPARABLE_TYPES, Type.BOOL);
LOWER_EQUAL_THAN =
- new Operator("=<", 2, 2, Type.SIMPLE_BASE_TYPES, Type.BOOLEAN);
+ new Operator("=<", 2, 2, Type.COMPARABLE_TYPES, Type.BOOL);
GREATER_EQUAL_THAN =
- new Operator(">=", 2, 2, Type.SIMPLE_BASE_TYPES, Type.BOOLEAN);
+ new Operator(">=", 2, 2, Type.COMPARABLE_TYPES, Type.BOOL);
GREATER_THAN =
- new Operator(">", 2, 2, Type.SIMPLE_BASE_TYPES, Type.BOOLEAN);
+ new Operator(">", 2, 2, Type.COMPARABLE_TYPES, Type.BOOL);
}
final protected String name;
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/Assert.java b/src/core/src/tonkadur/fate/v1/lang/instruction/Assert.java
index 7869ab4..c4bf9a9 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/Assert.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/Assert.java
@@ -52,7 +52,7 @@ public class Assert extends Instruction
)
throws InvalidTypeException
{
- if (!condition.get_type().get_base_type().equals(Type.BOOLEAN))
+ if (!condition.get_type().get_base_type().equals(Type.BOOL))
{
ErrorManager.handle
(
@@ -60,7 +60,7 @@ public class Assert extends Instruction
(
condition.get_origin(),
condition.get_type(),
- Collections.singleton(Type.BOOLEAN)
+ Collections.singleton(Type.BOOL)
)
);
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/CondInstruction.java b/src/core/src/tonkadur/fate/v1/lang/instruction/CondInstruction.java
index 15c6fa4..0236a7e 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/CondInstruction.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/CondInstruction.java
@@ -52,7 +52,7 @@ public class CondInstruction extends Instruction
{
for (final Cons<Computation, Instruction> branch: branches)
{
- if (!branch.get_car().get_type().get_base_type().equals(Type.BOOLEAN))
+ if (!branch.get_car().get_type().get_base_type().equals(Type.BOOL))
{
ErrorManager.handle
(
@@ -60,7 +60,7 @@ public class CondInstruction extends Instruction
(
branch.get_car().get_origin(),
branch.get_car().get_type(),
- Collections.singleton(Type.BOOLEAN)
+ Collections.singleton(Type.BOOL)
)
);
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/DoWhile.java b/src/core/src/tonkadur/fate/v1/lang/instruction/DoWhile.java
index b4737a7..1eaed2a 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/DoWhile.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/DoWhile.java
@@ -52,7 +52,7 @@ public class DoWhile extends Instruction
)
throws InvalidTypeException
{
- if (!condition.get_type().get_base_type().equals(Type.BOOLEAN))
+ if (!condition.get_type().get_base_type().equals(Type.BOOL))
{
ErrorManager.handle
(
@@ -60,7 +60,7 @@ public class DoWhile extends Instruction
(
condition.get_origin(),
condition.get_type(),
- Collections.singleton(Type.BOOLEAN)
+ Collections.singleton(Type.BOOL)
)
);
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/For.java b/src/core/src/tonkadur/fate/v1/lang/instruction/For.java
index 2b8d478..45f50b9 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/For.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/For.java
@@ -60,7 +60,7 @@ public class For extends Instruction
)
throws InvalidTypeException
{
- if (!condition.get_type().get_base_type().equals(Type.BOOLEAN))
+ if (!condition.get_type().get_base_type().equals(Type.BOOL))
{
ErrorManager.handle
(
@@ -68,7 +68,7 @@ public class For extends Instruction
(
condition.get_origin(),
condition.get_type(),
- Collections.singleton(Type.BOOLEAN)
+ Collections.singleton(Type.BOOL)
)
);
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/IfElseInstruction.java b/src/core/src/tonkadur/fate/v1/lang/instruction/IfElseInstruction.java
index 1fcbb01..0a4f9d9 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/IfElseInstruction.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/IfElseInstruction.java
@@ -55,7 +55,7 @@ public class IfElseInstruction extends Instruction
)
throws InvalidTypeException
{
- if (!condition.get_type().get_base_type().equals(Type.BOOLEAN))
+ if (!condition.get_type().get_base_type().equals(Type.BOOL))
{
ErrorManager.handle
(
@@ -63,7 +63,7 @@ public class IfElseInstruction extends Instruction
(
condition.get_origin(),
condition.get_type(),
- Collections.singleton(Type.BOOLEAN)
+ Collections.singleton(Type.BOOL)
)
);
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/IfInstruction.java b/src/core/src/tonkadur/fate/v1/lang/instruction/IfInstruction.java
index 12a64d4..fab144a 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/IfInstruction.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/IfInstruction.java
@@ -51,7 +51,7 @@ public class IfInstruction extends Instruction
)
throws InvalidTypeException
{
- if (!condition.get_type().get_base_type().equals(Type.BOOLEAN))
+ if (!condition.get_type().get_base_type().equals(Type.BOOL))
{
ErrorManager.handle
(
@@ -59,7 +59,7 @@ public class IfInstruction extends Instruction
(
condition.get_origin(),
condition.get_type(),
- Collections.singleton(Type.BOOLEAN)
+ Collections.singleton(Type.BOOL)
)
);
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/While.java b/src/core/src/tonkadur/fate/v1/lang/instruction/While.java
index ad5c945..6c70025 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/While.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/While.java
@@ -52,7 +52,7 @@ public class While extends Instruction
)
throws InvalidTypeException
{
- if (!condition.get_type().get_base_type().equals(Type.BOOLEAN))
+ if (!condition.get_type().get_base_type().equals(Type.BOOL))
{
ErrorManager.handle
(
@@ -60,7 +60,7 @@ public class While extends Instruction
(
condition.get_origin(),
condition.get_type(),
- Collections.singleton(Type.BOOLEAN)
+ Collections.singleton(Type.BOOL)
)
);
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/type/CollectionType.java b/src/core/src/tonkadur/fate/v1/lang/type/CollectionType.java
index bf2fc90..95ff963 100644
--- a/src/core/src/tonkadur/fate/v1/lang/type/CollectionType.java
+++ b/src/core/src/tonkadur/fate/v1/lang/type/CollectionType.java
@@ -32,7 +32,9 @@ public class CollectionType extends Type
{
if
(
- !Type.SIMPLE_BASE_TYPES.contains
+ is_set
+ &&
+ !Type.COMPARABLE_TYPES.contains
(
content_type.get_act_as_type()
)
@@ -44,7 +46,7 @@ public class CollectionType extends Type
(
origin,
content_type,
- Type.SIMPLE_BASE_TYPES
+ Type.COMPARABLE_TYPES
)
);
}
@@ -121,6 +123,12 @@ public class CollectionType extends Type
/**** Misc. ****************************************************************/
@Override
+ public Type generate_alias (final Origin origin, final String name)
+ {
+ return new CollectionType(origin, content_type, is_set, name);
+ }
+
+ @Override
public String toString ()
{
final StringBuilder sb = new StringBuilder();
diff --git a/src/core/src/tonkadur/fate/v1/lang/type/DictType.java b/src/core/src/tonkadur/fate/v1/lang/type/DictType.java
index ce84863..d3ce314 100644
--- a/src/core/src/tonkadur/fate/v1/lang/type/DictType.java
+++ b/src/core/src/tonkadur/fate/v1/lang/type/DictType.java
@@ -159,6 +159,12 @@ public class DictType extends Type
/**** Misc. ****************************************************************/
@Override
+ public Type generate_alias (final Origin origin, final String name)
+ {
+ return new DictType(origin, field_types, name);
+ }
+
+ @Override
public String toString ()
{
final StringBuilder sb = new StringBuilder();
diff --git a/src/core/src/tonkadur/fate/v1/lang/type/LambdaType.java b/src/core/src/tonkadur/fate/v1/lang/type/LambdaType.java
index 0ca9c48..a434112 100644
--- a/src/core/src/tonkadur/fate/v1/lang/type/LambdaType.java
+++ b/src/core/src/tonkadur/fate/v1/lang/type/LambdaType.java
@@ -142,6 +142,12 @@ public class LambdaType extends Type
/**** Misc. ****************************************************************/
@Override
+ public Type generate_alias (final Origin origin, final String name)
+ {
+ return new LambdaType(origin, return_type, name, signature);
+ }
+
+ @Override
public String toString ()
{
final StringBuilder sb = new StringBuilder();
diff --git a/src/core/src/tonkadur/fate/v1/lang/type/PointerType.java b/src/core/src/tonkadur/fate/v1/lang/type/PointerType.java
index b610954..57e3450 100644
--- a/src/core/src/tonkadur/fate/v1/lang/type/PointerType.java
+++ b/src/core/src/tonkadur/fate/v1/lang/type/PointerType.java
@@ -82,6 +82,12 @@ public class PointerType extends Type
/**** Misc. ****************************************************************/
@Override
+ public Type generate_alias (final Origin origin, final String name)
+ {
+ return new PointerType(origin, referenced_type, name);
+ }
+
+ @Override
public String toString ()
{
final StringBuilder sb = new StringBuilder();
diff --git a/src/core/src/tonkadur/fate/v1/lang/type/Type.java b/src/core/src/tonkadur/fate/v1/lang/type/Type.java
index 509bce4..fefe7cd 100644
--- a/src/core/src/tonkadur/fate/v1/lang/type/Type.java
+++ b/src/core/src/tonkadur/fate/v1/lang/type/Type.java
@@ -20,7 +20,7 @@ import tonkadur.fate.v1.lang.meta.DeclaredEntity;
public class Type extends DeclaredEntity
{
public static final Type ANY;
- public static final Type BOOLEAN;
+ public static final Type BOOL;
public static final Type DICT;
public static final Type FLOAT;
public static final Type INT;
@@ -33,7 +33,7 @@ public class Type extends DeclaredEntity
public static final Set<Type> NUMBER_TYPES;
public static final Set<Type> ALL_TYPES;
- public static final Set<Type> SIMPLE_BASE_TYPES;
+ public static final Set<Type> COMPARABLE_TYPES;
public static final Set<Type> COLLECTION_TYPES;
static
@@ -47,7 +47,7 @@ public class Type extends DeclaredEntity
*/
ANY = new Type(base, null, "undetermined type");
- BOOLEAN = new Type(base, null, "boolean");
+ BOOL = new Type(base, null, "bool");
DICT = new Type(base, null, "dict");
FLOAT = new Type(base, null, "float");
INT = new Type(base, null, "int");
@@ -60,7 +60,7 @@ public class Type extends DeclaredEntity
ALL_TYPES = new HashSet<Type>();
ALL_TYPES.add(ANY);
- ALL_TYPES.add(BOOLEAN);
+ ALL_TYPES.add(BOOL);
ALL_TYPES.add(DICT);
ALL_TYPES.add(FLOAT);
ALL_TYPES.add(INT);
@@ -76,14 +76,14 @@ public class Type extends DeclaredEntity
NUMBER_TYPES.add(FLOAT);
NUMBER_TYPES.add(INT);
- SIMPLE_BASE_TYPES = new HashSet<Type>();
+ COMPARABLE_TYPES = new HashSet<Type>();
- SIMPLE_BASE_TYPES.add(FLOAT);
- SIMPLE_BASE_TYPES.add(INT);
- SIMPLE_BASE_TYPES.add(LAMBDA);
- SIMPLE_BASE_TYPES.add(STRING);
- SIMPLE_BASE_TYPES.add(BOOLEAN);
- SIMPLE_BASE_TYPES.add(REF);
+ COMPARABLE_TYPES.add(FLOAT);
+ COMPARABLE_TYPES.add(INT);
+ COMPARABLE_TYPES.add(LAMBDA);
+ COMPARABLE_TYPES.add(STRING);
+ COMPARABLE_TYPES.add(BOOL);
+ COMPARABLE_TYPES.add(REF);
COLLECTION_TYPES = new HashSet<Type>();
@@ -122,11 +122,11 @@ public class Type extends DeclaredEntity
)
throws InvalidTypeException
{
- if (!SIMPLE_BASE_TYPES.contains(parent.get_act_as_type()))
+ if (!COMPARABLE_TYPES.contains(parent.get_act_as_type()))
{
ErrorManager.handle
(
- new InvalidTypeException(origin, parent, SIMPLE_BASE_TYPES)
+ new InvalidTypeException(origin, parent, COMPARABLE_TYPES)
);
}
@@ -219,6 +219,11 @@ public class Type extends DeclaredEntity
/**** Misc. ****************************************************************/
+ public Type generate_alias (final Origin origin, final String name)
+ {
+ return new Type(origin, this, name);
+ }
+
@Override
public boolean is_incompatible_with_declaration (final DeclaredEntity de)
{
diff --git a/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 b/src/core/src/tonkadur/fate/v1/parser/FateParser.g4
index 7bde449..da6ea7f 100644
--- a/src/core/src/tonkadur/fate/v1/parser/FateParser.g4
+++ b/src/core/src/tonkadur/fate/v1/parser/FateParser.g4
@@ -233,10 +233,9 @@ first_level_fate_instr:
);
new_type =
- Type.build
+ ($parent.result).generate_alias
(
start_origin,
- ($parent.result),
($new_reference_name.result)
);
diff --git a/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/ComputationCompiler.java b/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/ComputationCompiler.java
index 0c5d49b..5a06201 100644
--- a/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/ComputationCompiler.java
+++ b/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/ComputationCompiler.java
@@ -375,7 +375,7 @@ implements tonkadur.fate.v1.lang.meta.ComputationVisitor
{
final Register was_found, index, element;
- was_found = reserve(Type.BOOLEAN);
+ was_found = reserve(Type.BOOL);
index = reserve(Type.INT);
element = reserve(element_compiler.get_computation().get_type());
@@ -604,7 +604,7 @@ implements tonkadur.fate.v1.lang.meta.ComputationVisitor
assimilate(collection_compiler);
assimilate(element_compiler);
- result = reserve(Type.BOOLEAN);
+ result = reserve(Type.BOOL);
result_as_address = result.get_address();
result_as_computation = result.get_value();
@@ -1132,7 +1132,7 @@ implements tonkadur.fate.v1.lang.meta.ComputationVisitor
final Register result, result_found;
result = reserve(Type.INT);
- result_found = reserve(Type.BOOLEAN);
+ result_found = reserve(Type.BOOL);
result_as_address = result.get_address();
result_as_computation = result.get_value();
diff --git a/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/InstructionCompiler.java b/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/InstructionCompiler.java
index 2fe7e43..de0532f 100644
--- a/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/InstructionCompiler.java
+++ b/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/InstructionCompiler.java
@@ -114,7 +114,7 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
collection = address_compiler.get_address();
- element_found = compiler.registers().reserve(Type.BOOLEAN);
+ element_found = compiler.registers().reserve(Type.BOOL);
element_index = compiler.registers().reserve(Type.INT);
collection_size = compiler.registers().reserve(Type.INT);
@@ -1452,7 +1452,7 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
final Register index, found;
index = compiler.registers().reserve(Type.INT);
- found = compiler.registers().reserve(Type.BOOLEAN);
+ found = compiler.registers().reserve(Type.BOOL);
value_of_elem = new ValueOf(elem);
@@ -1567,7 +1567,7 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
collection_cc = new ComputationCompiler(compiler);
collection_size = compiler.registers().reserve(Type.INT);
- found = compiler.registers().reserve(Type.BOOLEAN);
+ found = compiler.registers().reserve(Type.BOOL);
index = compiler.registers().reserve(Type.INT);
n.get_element().get_visited_by(elem_cc);
diff --git a/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/TypeCompiler.java b/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/TypeCompiler.java
index 9c20229..177be18 100644
--- a/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/TypeCompiler.java
+++ b/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/TypeCompiler.java
@@ -65,9 +65,9 @@ public class TypeCompiler
fate_type = fate_type.get_base_type();
- if (fate_type.equals(tonkadur.fate.v1.lang.type.Type.BOOLEAN))
+ if (fate_type.equals(tonkadur.fate.v1.lang.type.Type.BOOL))
{
- return Type.BOOLEAN;
+ return Type.BOOL;
}
if (fate_type.equals(tonkadur.fate.v1.lang.type.Type.FLOAT))
@@ -146,9 +146,9 @@ public class TypeCompiler
fate_content_type =
fate_collection_type.get_content_type().get_base_type();
- if (fate_content_type.equals(tonkadur.fate.v1.lang.type.Type.BOOLEAN))
+ if (fate_content_type.equals(tonkadur.fate.v1.lang.type.Type.BOOL))
{
- return MapType.MAP_TO_BOOLEAN;
+ return MapType.MAP_TO_BOOL;
}
if (fate_content_type.equals(tonkadur.fate.v1.lang.type.Type.FLOAT))
diff --git a/src/core/src/tonkadur/wyrd/v1/lang/computation/Constant.java b/src/core/src/tonkadur/wyrd/v1/lang/computation/Constant.java
index 5b3a90e..c0c6778 100644
--- a/src/core/src/tonkadur/wyrd/v1/lang/computation/Constant.java
+++ b/src/core/src/tonkadur/wyrd/v1/lang/computation/Constant.java
@@ -15,8 +15,8 @@ public class Constant extends Computation
static
{
- TRUE = new Constant(Type.BOOLEAN, "true");
- FALSE = new Constant(Type.BOOLEAN, "false");
+ TRUE = new Constant(Type.BOOL, "true");
+ FALSE = new Constant(Type.BOOL, "false");
ZERO = new Constant(Type.INT, "0");
ONE = new Constant(Type.INT, "1");
diff --git a/src/core/src/tonkadur/wyrd/v1/lang/computation/Operation.java b/src/core/src/tonkadur/wyrd/v1/lang/computation/Operation.java
index 365bd07..93d005f 100644
--- a/src/core/src/tonkadur/wyrd/v1/lang/computation/Operation.java
+++ b/src/core/src/tonkadur/wyrd/v1/lang/computation/Operation.java
@@ -96,7 +96,7 @@ public class Operation extends Computation
final Computation b
)
{
- return new Operation(AND, Type.BOOLEAN, a, b);
+ return new Operation(AND, Type.BOOL, a, b);
}
public static Operation or
@@ -110,7 +110,7 @@ public class Operation extends Computation
public static Operation not (final Computation a)
{
- return new Operation(NOT, Type.BOOLEAN, a, null);
+ return new Operation(NOT, Type.BOOL, a, null);
}
public static Operation implies
@@ -129,7 +129,7 @@ public class Operation extends Computation
final Computation b
)
{
- return new Operation(LESS_THAN, Type.BOOLEAN, a, b);
+ return new Operation(LESS_THAN, Type.BOOL, a, b);
}
public static Operation less_equal_than
@@ -146,7 +146,7 @@ public class Operation extends Computation
final Computation b
)
{
- return new Operation(EQUALS, Type.BOOLEAN, a, b);
+ return new Operation(EQUALS, Type.BOOL, a, b);
}
public static Operation greater_than
diff --git a/src/core/src/tonkadur/wyrd/v1/lang/type/MapType.java b/src/core/src/tonkadur/wyrd/v1/lang/type/MapType.java
index 3af830c..c9586ee 100644
--- a/src/core/src/tonkadur/wyrd/v1/lang/type/MapType.java
+++ b/src/core/src/tonkadur/wyrd/v1/lang/type/MapType.java
@@ -2,7 +2,7 @@ package tonkadur.wyrd.v1.lang.type;
public class MapType extends Type
{
- public static final MapType MAP_TO_BOOLEAN;
+ public static final MapType MAP_TO_BOOL;
public static final MapType MAP_TO_FLOAT;
public static final MapType MAP_TO_INT;
public static final MapType MAP_TO_STRING;
@@ -10,7 +10,7 @@ public class MapType extends Type
static
{
- MAP_TO_BOOLEAN = new MapType(Type.BOOLEAN);
+ MAP_TO_BOOL = new MapType(Type.BOOL);
MAP_TO_FLOAT = new MapType(Type.FLOAT);
MAP_TO_INT = new MapType(Type.INT);
MAP_TO_RICH_TEXT = new MapType(Type.RICH_TEXT);
diff --git a/src/core/src/tonkadur/wyrd/v1/lang/type/Type.java b/src/core/src/tonkadur/wyrd/v1/lang/type/Type.java
index baa3bc3..ce1f4fe 100644
--- a/src/core/src/tonkadur/wyrd/v1/lang/type/Type.java
+++ b/src/core/src/tonkadur/wyrd/v1/lang/type/Type.java
@@ -2,7 +2,7 @@ package tonkadur.wyrd.v1.lang.type;
public class Type
{
- public static final Type BOOLEAN;
+ public static final Type BOOL;
public static final Type FLOAT;
public static final Type INT;
public static final Type RICH_TEXT;
@@ -10,7 +10,7 @@ public class Type
static
{
- BOOLEAN = new Type("boolean");
+ BOOL = new Type("boolean");
FLOAT = new Type("float");
INT = new Type("int");
RICH_TEXT = new Type("rich_text");
diff --git a/src/json-export/src/tonkadur/plugin/JSONExport.java b/src/json-export/src/tonkadur/plugin/JSONExport.java
index 1e5a070..74db24d 100644
--- a/src/json-export/src/tonkadur/plugin/JSONExport.java
+++ b/src/json-export/src/tonkadur/plugin/JSONExport.java
@@ -44,7 +44,10 @@ public class JSONExport extends TonkadurPlugin
output_file = args_it.next();
- break;
+ }
+ else if (option.equals("--legal"))
+ {
+ print_license();
}
}
@@ -73,4 +76,9 @@ public class JSONExport extends TonkadurPlugin
{
System.out.println(" -o|--output <file>\t\tOutput to <file>.");
}
+
+ protected static void print_license ()
+ {
+ System.out.println("This version of Tonkadur ships with a copy of the json-simple library, whose license is available at https://github.com/fangyidong/json-simple/blob/master/LICENSE.txt");
+ }
}