summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/InputEvent.java181
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/TextEffect.java8
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/World.java73
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/ExtraComputationInstance.java94
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/ValueToText.java (renamed from src/core/src/tonkadur/fate/v1/lang/computation/ValueToRichText.java)0
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/ExtraInstructionInstance.java (renamed from src/core/src/tonkadur/fate/v1/lang/instruction/EventCall.java)51
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/PlayerInput.java12
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/meta/ComputationVisitor.java3
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/meta/ExtensionComputation.java39
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/meta/ExtensionInstruction.java35
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/meta/ExtraComputation.java92
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/meta/ExtraInstruction.java80
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/meta/InstructionVisitor.java6
-rw-r--r--src/core/src/tonkadur/fate/v1/parser/FateLexer.g412
-rw-r--r--src/core/src/tonkadur/fate/v1/parser/FateParser.g4200
-rw-r--r--src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/ComputationCompiler.java10
-rw-r--r--src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/InstructionCompiler.java26
-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/AddTextEffect.java (renamed from src/core/src/tonkadur/wyrd/v1/lang/computation/AddRichTextEffect.java)8
-rw-r--r--src/core/src/tonkadur/wyrd/v1/lang/computation/Newline.java2
-rw-r--r--src/core/src/tonkadur/wyrd/v1/lang/computation/Text.java (renamed from src/core/src/tonkadur/wyrd/v1/lang/computation/RichText.java)10
-rw-r--r--src/core/src/tonkadur/wyrd/v1/lang/instruction/AddEventOption.java (renamed from src/core/src/tonkadur/wyrd/v1/lang/instruction/EventCall.java)8
-rw-r--r--src/core/src/tonkadur/wyrd/v1/lang/instruction/AddTextOption.java (renamed from src/core/src/tonkadur/wyrd/v1/lang/instruction/AddChoice.java)8
-rw-r--r--src/core/src/tonkadur/wyrd/v1/lang/instruction/ExtraInstruction.java (renamed from src/core/src/tonkadur/wyrd/v1/lang/instruction/AddEventInput.java)12
-rw-r--r--src/core/src/tonkadur/wyrd/v1/lang/instruction/ResolveChoice.java (renamed from src/core/src/tonkadur/wyrd/v1/lang/instruction/ResolveChoices.java)8
-rw-r--r--src/core/src/tonkadur/wyrd/v1/lang/meta/ComputationVisitor.java7
-rw-r--r--src/core/src/tonkadur/wyrd/v1/lang/meta/InstructionVisitor.java12
-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
29 files changed, 532 insertions, 481 deletions
diff --git a/src/core/src/tonkadur/fate/v1/lang/InputEvent.java b/src/core/src/tonkadur/fate/v1/lang/InputEvent.java
deleted file mode 100644
index 17d6a48..0000000
--- a/src/core/src/tonkadur/fate/v1/lang/InputEvent.java
+++ /dev/null
@@ -1,181 +0,0 @@
-package tonkadur.fate.v1.lang;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import tonkadur.functional.Merge;
-
-import tonkadur.parser.Context;
-import tonkadur.parser.Location;
-import tonkadur.parser.Origin;
-
-import tonkadur.fate.v1.lang.meta.DeclaredEntity;
-
-import tonkadur.fate.v1.lang.type.Type;
-
-public class InputEvent extends DeclaredEntity
-{
- protected static final InputEvent ANY;
-
- static
- {
- ANY =
- new InputEvent
- (
- Origin.BASE_LANGUAGE,
- new ArrayList<Type>(),
- /*
- * Use of a space necessary to avoid conflicting with a user created
- * type.
- */
- "undetermined input event"
- );
- }
-
- public static InputEvent value_on_missing ()
- {
- return ANY;
- }
-
- @Override
- public /* static */ String get_type_name ()
- {
- return "InputEvent";
- }
-
-
- /***************************************************************************/
- /**** MEMBERS **************************************************************/
- /***************************************************************************/
- protected final List<Type> signature;
-
- /***************************************************************************/
- /**** PUBLIC ***************************************************************/
- /***************************************************************************/
-
- /**** Constructors *********************************************************/
- public InputEvent
- (
- final Origin origin,
- final List<Type> signature,
- final String name
- )
- {
- super(origin, name);
-
- this.signature = signature;
- }
-
- /**** Accessors ************************************************************/
- public List<Type> get_signature ()
- {
- return signature;
- }
-
- @Override
- public DeclaredEntity generate_comparable_to (final DeclaredEntity de)
- {
- final List<Type> new_signature;
- final InputEvent e;
-
- if (!(de instanceof InputEvent))
- {
- return ANY;
- }
-
- e = (InputEvent) de;
-
- if (signature.size() != e.signature.size())
- {
- return ANY;
- }
-
- new_signature =
- new Merge<Type, Type, Type>()
- {
- @Override
- protected Type lambda (final Type a, final Type b)
- {
- return (Type) a.generate_comparable_to(b);
- }
- }.merge(signature, e.signature);
-
- return new InputEvent(origin, new_signature, name);
- }
-
- /**** Misc. ****************************************************************/
- @Override
- public boolean is_incompatible_with_declaration (final DeclaredEntity de)
- {
- if (de instanceof InputEvent)
- {
- final InputEvent e;
-
- e = (InputEvent) de;
-
- if (signature.size() == e.signature.size())
- {
- final List<Boolean> compatibility_result;
-
- /*
- * Basically, the events are compatible if, and only if, the old
- * signature is as least as restrictive as the new one.
- */
- compatibility_result =
- (
- new Merge<Type, Type, Boolean>()
- {
- @Override
- protected Boolean lambda (final Type a, final Type b)
- {
- return
- new Boolean(a.can_be_used_as(b));
- }
- }.merge(signature, e.signature)
- );
-
- return compatibility_result.contains(Boolean.TRUE);
- }
- }
-
- return true;
- }
-
- @Override
- public String toString ()
- {
- final StringBuilder sb = new StringBuilder();
-
- sb.append("(");
- sb.append(get_type_name());
- sb.append(" ");
- sb.append(name);
-
- if (!signature.isEmpty())
- {
- boolean first_argument;
-
- sb.append(": ");
-
- first_argument = true;
-
- for (final Type type: signature)
- {
- if (first_argument)
- {
- first_argument = false;
- }
- else
- {
- sb.append(" -> ");
- }
-
- sb.append(type.get_name());
- }
- }
-
- sb.append(")");
-
- return sb.toString();
- }
-}
diff --git a/src/core/src/tonkadur/fate/v1/lang/TextEffect.java b/src/core/src/tonkadur/fate/v1/lang/TextEffect.java
index f833027..2ac4000 100644
--- a/src/core/src/tonkadur/fate/v1/lang/TextEffect.java
+++ b/src/core/src/tonkadur/fate/v1/lang/TextEffect.java
@@ -13,7 +13,7 @@ import tonkadur.fate.v1.lang.meta.DeclaredEntity;
import tonkadur.fate.v1.lang.type.Type;
-public class TextEffect extends Event
+public class TextEffect extends DeclaredEntity
{
protected static final TextEffect ANY;
@@ -47,6 +47,7 @@ public class TextEffect extends Event
/***************************************************************************/
/**** MEMBERS **************************************************************/
/***************************************************************************/
+ protected final List<Type> signature;
/***************************************************************************/
/**** PUBLIC ***************************************************************/
@@ -94,6 +95,11 @@ public class TextEffect extends Event
return new TextEffect(origin, new_signature, name);
}
+ public List<Type> get_signature ()
+ {
+ return signature;
+ }
+
/**** Misc. ****************************************************************/
@Override
public boolean is_incompatible_with_declaration (final DeclaredEntity de)
diff --git a/src/core/src/tonkadur/fate/v1/lang/World.java b/src/core/src/tonkadur/fate/v1/lang/World.java
index d07d9b7..f6caa7c 100644
--- a/src/core/src/tonkadur/fate/v1/lang/World.java
+++ b/src/core/src/tonkadur/fate/v1/lang/World.java
@@ -20,8 +20,8 @@ import tonkadur.fate.v1.error.UnknownSequenceException;
import tonkadur.fate.v1.lang.meta.Computation;
import tonkadur.fate.v1.lang.meta.DeclarationCollection;
-import tonkadur.fate.v1.lang.meta.ExtensionInstruction;
-import tonkadur.fate.v1.lang.meta.ExtensionComputation;
+import tonkadur.fate.v1.lang.meta.ExtraInstruction;
+import tonkadur.fate.v1.lang.meta.ExtraComputation;
import tonkadur.fate.v1.lang.meta.RecurrentChecks;
import tonkadur.fate.v1.lang.meta.Instruction;
@@ -41,13 +41,10 @@ public class World
protected final Map<String, List<Cons<Origin, List<Computation>>>>
sequence_uses;
protected final Map<String, List<SequenceReference>> sequence_variables;
- protected final Map<String, ExtensionComputation> extension_value_nodes;
- protected final Map<String, ExtensionInstruction> extension_instructions;
- protected final Map<String, ExtensionInstruction>
- extension_first_level_instructions;
+ protected final DeclarationCollection<ExtraInstruction> ei_collection;
+ protected final DeclarationCollection<ExtraComputation> ec_collection;
protected final DeclarationCollection<Event> event_collection;
- protected final DeclarationCollection<InputEvent> input_event_collection;
protected final DeclarationCollection<Sequence> sequence_collection;
protected final DeclarationCollection<TextEffect> text_effect_collection;
protected final DeclarationCollection<Type> type_collection;
@@ -70,15 +67,19 @@ public class World
sequence_variables = new HashMap<String, List<SequenceReference>>();
- extension_value_nodes = new HashMap<String, ExtensionComputation>();
- extension_instructions = new HashMap<String, ExtensionInstruction>();
- extension_first_level_instructions =
- new HashMap<String, ExtensionInstruction>();
+ ei_collection =
+ new DeclarationCollection<ExtraInstruction>
+ (
+ ExtraInstruction.value_on_missing()
+ );
+ ec_collection =
+ new DeclarationCollection<ExtraComputation>
+ (
+ ExtraComputation.value_on_missing()
+ );
event_collection =
new DeclarationCollection<Event>(Event.value_on_missing());
- input_event_collection =
- new DeclarationCollection<InputEvent>(InputEvent.value_on_missing());
sequence_collection = new DeclarationCollection<Sequence>(null);
text_effect_collection =
@@ -164,35 +165,22 @@ public class World
list_of_variables.add(sr);
}
- /**** Extension Stuff ****/
- public Map<String, ExtensionInstruction> extension_instructions ()
- {
- return extension_instructions;
- }
-
- public Map<String, ExtensionInstruction> extension_first_level_instructions
- (
- )
+ /**** Collections ****/
+ public DeclarationCollection<ExtraInstruction> extra_instructions ()
{
- return extension_first_level_instructions;
+ return ei_collection;
}
- public Map<String, ExtensionComputation> extension_value_nodes ()
+ public DeclarationCollection<ExtraComputation> extra_computations ()
{
- return extension_value_nodes;
+ return ec_collection;
}
- /**** Collections ****/
public DeclarationCollection<Event> events ()
{
return event_collection;
}
- public DeclarationCollection<InputEvent> input_events ()
- {
- return input_event_collection;
- }
-
public DeclarationCollection<Sequence> sequences ()
{
return sequence_collection;
@@ -267,38 +255,45 @@ public class World
}
sb.append(System.lineSeparator());
- sb.append("Events: ");
+ sb.append("Extra Instructions:");
sb.append(System.lineSeparator());
- sb.append(event_collection.toString());
+ sb.append(ei_collection.toString());
+ sb.append(System.lineSeparator());
+ sb.append(System.lineSeparator());
+
+ sb.append(System.lineSeparator());
+ sb.append("Extra Computations:");
+ sb.append(System.lineSeparator());
+ sb.append(ec_collection.toString());
sb.append(System.lineSeparator());
sb.append(System.lineSeparator());
sb.append(System.lineSeparator());
- sb.append("Input Events: ");
+ sb.append("Events:");
sb.append(System.lineSeparator());
- sb.append(input_event_collection.toString());
+ sb.append(event_collection.toString());
sb.append(System.lineSeparator());
sb.append(System.lineSeparator());
- sb.append("Text Effects: ");
+ sb.append("Text Effects:");
sb.append(System.lineSeparator());
sb.append(text_effect_collection.toString());
sb.append(System.lineSeparator());
sb.append(System.lineSeparator());
- sb.append("Types: ");
+ sb.append("Types:");
sb.append(System.lineSeparator());
sb.append(type_collection.toString());
sb.append(System.lineSeparator());
sb.append(System.lineSeparator());
- sb.append("Variables: ");
+ sb.append("Variables:");
sb.append(System.lineSeparator());
sb.append(variable_collection.toString());
sb.append(System.lineSeparator());
sb.append(System.lineSeparator());
- sb.append("Sequences: ");
+ sb.append("Sequences:");
sb.append(System.lineSeparator());
sb.append(sequence_collection.toString());
sb.append(System.lineSeparator());
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/ExtraComputationInstance.java b/src/core/src/tonkadur/fate/v1/lang/computation/ExtraComputationInstance.java
new file mode 100644
index 0000000..d46d20f
--- /dev/null
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/ExtraComputationInstance.java
@@ -0,0 +1,94 @@
+package tonkadur.fate.v1.lang.computation;
+
+import java.util.List;
+
+import tonkadur.parser.Context;
+import tonkadur.parser.Origin;
+
+import tonkadur.fate.v1.lang.meta.Computation;
+import tonkadur.fate.v1.lang.meta.ExtraComputation;
+
+public class ExtraComputationInstance extends Computation
+{
+ protected final ExtraComputation computation;
+ protected final List<Computation> parameters;
+
+ /***************************************************************************/
+ /**** PROTECTED ************************************************************/
+ /***************************************************************************/
+ /**** Constructors *********************************************************/
+ protected ExtraComputationInstance
+ (
+ final Origin origin,
+ final ExtraComputation computation,
+ final List<Computation> parameters
+ )
+ {
+ super(origin, computation.get_result_type());
+
+ this.computation = computation;
+ this.parameters = parameters;
+ }
+
+ /***************************************************************************/
+ /**** PUBLIC ***************************************************************/
+ /***************************************************************************/
+ /**** Constructors *********************************************************/
+ public ExtraComputationInstance build
+ (
+ final Origin origin,
+ final ExtraComputation computation,
+ final List<Computation> parameters
+ )
+ throws ParsingError
+ {
+ RecurrentChecks.assert_computations_matches_signature
+ (
+ origin,
+ parameters,
+ computation.get_signature()
+ );
+
+ return new ExtraComputationInstance(origin, computation, parameters);
+ }
+
+ /**** Accessors ************************************************************/
+ public ExtraComputation get_computation_type ()
+ {
+ return computation;
+ }
+
+ public List<Computation> get_parameters ()
+ {
+ return parameters;
+ }
+
+ @Override
+ public void get_visited_by (final ComputationVisitor cv)
+ throws Throwable
+ {
+ cv.visit_extra_computation(this);
+ }
+
+ /**** Misc. ****************************************************************/
+ @Override
+ public String toString ()
+ {
+ final StringBuilder sb;
+
+ sb = new StringBuilder();
+
+ sb.append("(");
+ sb.append(computation.get_name());
+
+ for (final Computation p: parameters)
+ {
+ sb.append(" ");
+ sb.append(p.toString());
+ }
+
+ sb.append(")");
+
+ return sb.toString();
+ }
+}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/ValueToRichText.java b/src/core/src/tonkadur/fate/v1/lang/computation/ValueToText.java
index b21024b..b21024b 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/ValueToRichText.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/ValueToText.java
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/EventCall.java b/src/core/src/tonkadur/fate/v1/lang/instruction/ExtraInstructionInstance.java
index 16d23ed..f333509 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/EventCall.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/ExtraInstructionInstance.java
@@ -2,40 +2,31 @@ package tonkadur.fate.v1.lang.instruction;
import java.util.List;
+import tonkadur.parser.Context;
import tonkadur.parser.Origin;
-import tonkadur.parser.ParsingError;
-import tonkadur.fate.v1.lang.Event;
-
-import tonkadur.fate.v1.lang.type.Type;
-
-import tonkadur.fate.v1.lang.meta.InstructionVisitor;
import tonkadur.fate.v1.lang.meta.Instruction;
-import tonkadur.fate.v1.lang.meta.Computation;
-import tonkadur.fate.v1.lang.meta.RecurrentChecks;
+import tonkadur.fate.v1.lang.meta.ExtraInstruction;
-public class EventCall extends Instruction
+public class ExtraInstructionInstance extends Instruction
{
- /***************************************************************************/
- /**** MEMBERS **************************************************************/
- /***************************************************************************/
- protected final Event event;
+ protected final ExtraInstruction instruction;
protected final List<Computation> parameters;
/***************************************************************************/
/**** PROTECTED ************************************************************/
/***************************************************************************/
/**** Constructors *********************************************************/
- protected EventCall
+ protected ExtraInstructionInstance
(
final Origin origin,
- final Event event,
+ final ExtraInstruction instruction,
final List<Computation> parameters
)
{
super(origin);
- this.event = event;
+ this.instruction = instruction;
this.parameters = parameters;
}
@@ -43,10 +34,10 @@ public class EventCall extends Instruction
/**** PUBLIC ***************************************************************/
/***************************************************************************/
/**** Constructors *********************************************************/
- public static EventCall build
+ public ExtraInstructionInstance build
(
final Origin origin,
- final Event event,
+ final ExtraInstruction instruction,
final List<Computation> parameters
)
throws ParsingError
@@ -55,10 +46,10 @@ public class EventCall extends Instruction
(
origin,
parameters,
- event.get_signature()
+ instruction.get_signature()
);
- return new EventCall(origin, event, parameters);
+ return new ExtraInstructionInstance(origin, instruction, parameters);
}
/**** Accessors ************************************************************/
@@ -66,12 +57,12 @@ public class EventCall extends Instruction
public void get_visited_by (final InstructionVisitor iv)
throws Throwable
{
- iv.visit_event_call(this);
+ iv.visit_extra_instruction(this);
}
- public Event get_event ()
+ public ExtraInstruction get_instruction_type ()
{
- return event;
+ return instruction;
}
public List<Computation> get_parameters ()
@@ -83,18 +74,20 @@ public class EventCall extends Instruction
@Override
public String toString ()
{
- final StringBuilder sb = new StringBuilder();
+ final StringBuilder sb;
+
+ sb = new StringBuilder();
- sb.append("(EventCall (");
- sb.append(event.get_name());
+ sb.append("(");
+ sb.append(instruction.get_name());
- for (final Computation param: parameters)
+ for (final Computation p: parameters)
{
sb.append(" ");
- sb.append(param.toString());
+ sb.append(p.toString());
}
- sb.append("))");
+ sb.append(")");
return sb.toString();
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/PlayerInput.java b/src/core/src/tonkadur/fate/v1/lang/instruction/PlayerInput.java
index a1efed4..3daef53 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/PlayerInput.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/PlayerInput.java
@@ -6,7 +6,7 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.parser.ParsingError;
-import tonkadur.fate.v1.lang.InputEvent;
+import tonkadur.fate.v1.lang.Event;
import tonkadur.fate.v1.lang.type.Type;
@@ -20,7 +20,7 @@ public class PlayerInput extends Instruction
/***************************************************************************/
/**** MEMBERS **************************************************************/
/***************************************************************************/
- protected final InputEvent input_event;
+ protected final Event input_event;
protected final List<Computation> params;
protected final List<Instruction> effects;
@@ -31,7 +31,7 @@ public class PlayerInput extends Instruction
protected PlayerInput
(
final Origin origin,
- final InputEvent input_event,
+ final Event input_event,
final List<Computation> params,
final List<Instruction> effects
)
@@ -50,7 +50,7 @@ public class PlayerInput extends Instruction
public PlayerInput
(
final Origin origin,
- final InputEvent input_event,
+ final Event input_event,
final List<Instruction> effects
)
{
@@ -64,7 +64,7 @@ public class PlayerInput extends Instruction
public static PlayerInput build
(
final Origin origin,
- final InputEvent event,
+ final Event event,
final List<Computation> parameters,
final List<Instruction> effects
)
@@ -88,7 +88,7 @@ public class PlayerInput extends Instruction
iv.visit_player_input(this);
}
- public InputEvent get_input_event ()
+ public Event get_input_event ()
{
return input_event;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/meta/ComputationVisitor.java b/src/core/src/tonkadur/fate/v1/lang/meta/ComputationVisitor.java
index adb3a05..5d0821e 100644
--- a/src/core/src/tonkadur/fate/v1/lang/meta/ComputationVisitor.java
+++ b/src/core/src/tonkadur/fate/v1/lang/meta/ComputationVisitor.java
@@ -4,6 +4,9 @@ import tonkadur.fate.v1.lang.computation.*;
public interface ComputationVisitor
{
+ public void visit_extra_computation (final ExtraComputationInstance n)
+ throws Throwable;
+
public void visit_at_reference (final AtReference n)
throws Throwable;
diff --git a/src/core/src/tonkadur/fate/v1/lang/meta/ExtensionComputation.java b/src/core/src/tonkadur/fate/v1/lang/meta/ExtensionComputation.java
deleted file mode 100644
index 465aed7..0000000
--- a/src/core/src/tonkadur/fate/v1/lang/meta/ExtensionComputation.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package tonkadur.fate.v1.lang.meta;
-
-import java.util.List;
-
-import tonkadur.parser.Context;
-import tonkadur.parser.Origin;
-
-import tonkadur.fate.v1.lang.World;
-
-import tonkadur.fate.v1.lang.type.Type;
-
-import tonkadur.fate.v1.lang.meta.Computation;
-
-public class ExtensionComputation extends Computation
-{
- /***************************************************************************/
- /**** PUBLIC ***************************************************************/
- /***************************************************************************/
- /**** Constructors *********************************************************/
- protected ExtensionComputation
- (
- final Origin origin,
- final Type result_type
- )
- {
- super(origin, result_type);
- }
-
- public ExtensionComputation build
- (
- final World world,
- final Context context,
- final Origin origin,
- final List<Computation> parameters
- )
- {
- return new ExtensionComputation(Origin.BASE_LANGUAGE, Type.ANY);
- }
-}
diff --git a/src/core/src/tonkadur/fate/v1/lang/meta/ExtensionInstruction.java b/src/core/src/tonkadur/fate/v1/lang/meta/ExtensionInstruction.java
deleted file mode 100644
index 939e151..0000000
--- a/src/core/src/tonkadur/fate/v1/lang/meta/ExtensionInstruction.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package tonkadur.fate.v1.lang.meta;
-
-import java.util.List;
-
-import tonkadur.parser.Context;
-import tonkadur.parser.Origin;
-
-import tonkadur.fate.v1.lang.World;
-
-import tonkadur.fate.v1.lang.type.Type;
-
-import tonkadur.fate.v1.lang.meta.Instruction;
-
-public class ExtensionInstruction extends Instruction
-{
- /***************************************************************************/
- /**** PUBLIC ***************************************************************/
- /***************************************************************************/
- /**** Constructors *********************************************************/
- public ExtensionInstruction (final Origin origin)
- {
- super(origin);
- }
-
- public ExtensionInstruction build
- (
- final World world,
- final Context context,
- final Origin origin,
- final List<Instruction> parameters
- )
- {
- return new ExtensionInstruction(Origin.BASE_LANGUAGE);
- }
-}
diff --git a/src/core/src/tonkadur/fate/v1/lang/meta/ExtraComputation.java b/src/core/src/tonkadur/fate/v1/lang/meta/ExtraComputation.java
new file mode 100644
index 0000000..703e079
--- /dev/null
+++ b/src/core/src/tonkadur/fate/v1/lang/meta/ExtraComputation.java
@@ -0,0 +1,92 @@
+package tonkadur.fate.v1.lang.meta;
+
+import java.util.List;
+
+import tonkadur.parser.Context;
+import tonkadur.parser.Origin;
+
+import tonkadur.fate.v1.lang.World;
+
+import tonkadur.fate.v1.lang.type.Type;
+
+public class ExtraComputation extends DeclaredEntity
+{
+ protected final Type returned_type;
+ protected final List<Type> signature;
+
+ /***************************************************************************/
+ /**** PUBLIC ***************************************************************/
+ /***************************************************************************/
+ /**** Constructors *********************************************************/
+ public ExtraComputation
+ (
+ final Origin origin,
+ final Type returned_type,
+ final String name,
+ final List<Type> signature
+ )
+ {
+ super(origin, name);
+
+ this.returned_type = returned_type;
+ this.signature = signature;
+ }
+
+ public ExtraComputation
+ (
+ final Type returned_type,
+ final String name,
+ final List<Type> signature
+ )
+ {
+ super(Origin.BASE_LANGUAGE, name);
+
+ this.returned_type = returned_type;
+ this.signature = signature;
+ }
+
+ /**** Accessors ************************************************************/
+ public Type get_returned_type ()
+ {
+ return returned_type;
+ }
+
+ public List<Type> get_signature ()
+ {
+ return signature;
+ }
+
+ /**** Instantiating ********************************************************/
+ public ExtraComputationInstance instantiate
+ (
+ final World world,
+ final Context context,
+ final Origin origin,
+ final List<Computation> parameters
+ )
+ throws ParsingError
+ {
+ return ExtraComputationInstance.build(origin, this, parameters);
+ }
+
+ /**** Misc. ****************************************************************/
+ @Override
+ public String toString ()
+ {
+ final StringBuilder sb;
+
+ sb = new StringBuilder();
+
+ sb.append(returned_type.toString());
+ sb.append(" ");
+ sb.append(name);
+
+ for (final Type t: signature)
+ {
+ sb.append(" ");
+ sb.append(t.toString());
+ }
+
+ return name;
+ }
+}
diff --git a/src/core/src/tonkadur/fate/v1/lang/meta/ExtraInstruction.java b/src/core/src/tonkadur/fate/v1/lang/meta/ExtraInstruction.java
new file mode 100644
index 0000000..10a8f05
--- /dev/null
+++ b/src/core/src/tonkadur/fate/v1/lang/meta/ExtraInstruction.java
@@ -0,0 +1,80 @@
+package tonkadur.fate.v1.lang.meta;
+
+import java.util.List;
+
+import tonkadur.parser.Context;
+import tonkadur.parser.Origin;
+
+import tonkadur.fate.v1.lang.World;
+
+import tonkadur.fate.v1.lang.type.Type;
+
+public class ExtraInstruction extends DeclaredEntity
+{
+ protected final List<Type> signature;
+
+ /***************************************************************************/
+ /**** PUBLIC ***************************************************************/
+ /***************************************************************************/
+ /**** Constructors *********************************************************/
+ public ExtraInstruction
+ (
+ final Origin origin,
+ final String name,
+ final List<Type> signature
+ )
+ {
+ super(origin, name);
+
+ this.signature = signature;
+ }
+
+ public ExtraInstruction
+ (
+ final String name,
+ final List<Type> signature
+ )
+ {
+ super(Origin.BASE_LANGUAGE, name);
+
+ this.signature = signature;
+ }
+
+ /**** Accessors ************************************************************/
+ public List<Type> get_signature ()
+ {
+ return signature;
+ }
+
+ /**** Instantiating ********************************************************/
+ public ExtraInstructionInstance instantiate
+ (
+ final World world,
+ final Context context,
+ final Origin origin,
+ final List<Instruction> parameters
+ )
+ throws ParsingError
+ {
+ return ExtraInstructionInstance.build(origin, this, parameters);
+ }
+
+ /**** Misc. ****************************************************************/
+ @Override
+ public String toString ()
+ {
+ final StringBuilder sb;
+
+ sb = new StringBuilder();
+
+ sb.append(name);
+
+ for (final Type t: signature)
+ {
+ sb.append(" ");
+ sb.append(t.toString());
+ }
+
+ return name;
+ }
+}
diff --git a/src/core/src/tonkadur/fate/v1/lang/meta/InstructionVisitor.java b/src/core/src/tonkadur/fate/v1/lang/meta/InstructionVisitor.java
index 406cd7f..6426cfb 100644
--- a/src/core/src/tonkadur/fate/v1/lang/meta/InstructionVisitor.java
+++ b/src/core/src/tonkadur/fate/v1/lang/meta/InstructionVisitor.java
@@ -8,6 +8,9 @@ public interface InstructionVisitor
public void visit_add_element (final AddElement n)
throws Throwable;
+ public void visit_extra_instruction (final ExtraInstructionInstance n)
+ throws Throwable;
+
public void visit_add_element_at (final AddElementAt n)
throws Throwable;
@@ -101,9 +104,6 @@ public interface InstructionVisitor
public void visit_display (final Display n)
throws Throwable;
- public void visit_event_call (final EventCall n)
- throws Throwable;
-
public void visit_if_else_instruction (final IfElseInstruction n)
throws Throwable;
diff --git a/src/core/src/tonkadur/fate/v1/parser/FateLexer.g4 b/src/core/src/tonkadur/fate/v1/parser/FateLexer.g4
index 68bf6d9..cd96bb4 100644
--- a/src/core/src/tonkadur/fate/v1/parser/FateLexer.g4
+++ b/src/core/src/tonkadur/fate/v1/parser/FateLexer.g4
@@ -39,8 +39,9 @@ DECLARE_ALIAS_TYPE_KW:
L_PAREN ((('declare'|'define'|'def')US(('sub'|'alias')US)?'type')|'typedef') SEP+;
DECLARE_DICT_TYPE_KW: L_PAREN
('declare'|'define'|'def')US('dict'|('struct''ure'?))(US'type')? SEP+;
-DECLARE_EVENT_TYPE_KW: L_PAREN ('declare'|'define'|'def')US'event'(US'type')? SEP+;
-DECLARE_INPUT_EVENT_TYPE_KW: L_PAREN ('declare'|'define'|'def')US'input'US'event'(US'type')? SEP+;
+DECLARE_EXTRA_INSTRUCTION_KW: L_PAREN ('declare'|'define'|'def')US'extra'US'instruction' SEP+;
+DECLARE_EXTRA_COMPUTATION_KW: L_PAREN ('declare'|'define'|'def')US'extra'US'computation' SEP+;
+DECLARE_INPUT_EVENT_TYPE_KW: L_PAREN ('declare'|'define'|'def')(US'input')?US'event'(US'type')? SEP+;
DECLARE_TEXT_EFFECT_KW: L_PAREN ('declare'|'define'|'def')US'text'US'effect' SEP+;
DECLARE_VARIABLE_KW: L_PAREN 'global' SEP+;
LOCAL_KW: L_PAREN 'local' SEP+;
@@ -52,10 +53,9 @@ DO_WHILE_KW: L_PAREN ('do'US'while') SEP+;
ENABLE_TEXT_EFFECT_KW: L_PAREN 'text'US'effect' SEP+;
END_KW: L_PAREN 'end)';
EQUALS_KW: L_PAREN ('equals'|'='|'=='|'eq') SEP+;
-EVENT_KW: L_PAREN 'event' SEP+;
EXTENSION_FIRST_LEVEL_KW: L_PAREN '@';
-EXTENSION_INSTRUCTION_KW: L_PAREN '#';
-EXTENSION_VALUE_KW: L_PAREN '$';
+EXTRA_INSTRUCTION_KW: L_PAREN '#';
+EXTRA_COMPUTATION_KW: L_PAREN '$';
FALSE_KW: L_PAREN 'false)';
IGNORE_ERROR_KW: L_PAREN 'ignore'US('error'|'warning') SEP+;
FATE_VERSION_KW: L_PAREN 'fate'US'version' SEP+;
@@ -126,7 +126,7 @@ PUSH_RIGHT_KW: L_PAREN 'push'US'right' SEP+;
IMP_PUSH_RIGHT_KW: L_PAREN 'push'US'right!' SEP+;
PLAYER_CHOICE_KW: L_PAREN ('choice'|'user'US'choice'|'player'US'choice') SEP+;
PLAYER_OPTION_KW: L_PAREN ('option'|'user'US'option'|'player'US'option') SEP+;
-PLAYER_EVENT_KW: L_PAREN ('user'US'event'|'player'US'event') SEP+;
+PLAYER_EVENT_KW: L_PAREN ('event'|'user'US'event'|'player'US'event') SEP+;
PLUS_KW: L_PAREN ('plus'|'+') SEP+;
POWER_KW: L_PAREN ('power'|'^'|'**'|'pow') SEP+;
RANGE_KW: L_PAREN 'range' SEP+;
diff --git a/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 b/src/core/src/tonkadur/fate/v1/parser/FateParser.g4
index dc01452..612d77d 100644
--- a/src/core/src/tonkadur/fate/v1/parser/FateParser.g4
+++ b/src/core/src/tonkadur/fate/v1/parser/FateParser.g4
@@ -351,50 +351,98 @@ first_level_fate_instr:
WORLD.types().add(new_type);
}
- | DECLARE_EVENT_TYPE_KW new_reference_name WS* R_PAREN
+ | DECLARE_EXTRA_INSTRUCTION_KW new_reference_name WS* R_PAREN
{
final Origin start_origin;
- final Event new_event;
+ final ExtraInstruction extra_instruction;
start_origin =
CONTEXT.get_origin_at
(
- ($DECLARE_EVENT_TYPE_KW.getLine()),
- ($DECLARE_EVENT_TYPE_KW.getCharPositionInLine())
+ ($DECLARE_EXTRA_INSTRUCTION_KW.getLine()),
+ ($DECLARE_EXTRA_INSTRUCTION_KW.getCharPositionInLine())
);
new_event =
- new Event
+ new ExtraInstruction
(
start_origin,
- new ArrayList<Type>(),
- ($new_reference_name.result)
+ ($new_reference_name.result),
+ new ArrayList<Type>()
);
- WORLD.events().add(new_event);
+ WORLD.extra_instructions().add(extra_instruction);
}
- | DECLARE_EVENT_TYPE_KW new_reference_name WS+ type_list WS* R_PAREN
+ | DECLARE_EXTRA_INSTRUCTION_KW new_reference_name WS+ type_list WS* R_PAREN
{
final Origin start_origin;
- final Event new_event;
+ final ExtraInstruction extra_instruction;
start_origin =
CONTEXT.get_origin_at
(
- ($DECLARE_EVENT_TYPE_KW.getLine()),
- ($DECLARE_EVENT_TYPE_KW.getCharPositionInLine())
+ ($DECLARE_EXTRA_INSTRUCTION_KW.getLine()),
+ ($DECLARE_EXTRA_INSTRUCTION_KW.getCharPositionInLine())
);
new_event =
- new Event
+ new ExtraInstruction
(
start_origin,
- ($type_list.result),
- ($new_reference_name.result)
+ ($new_reference_name.result),
+ ($type_list.result)
);
- WORLD.events().add(new_event);
+ WORLD.extra_instructions().add(extra_instruction);
+ }
+
+ | DECLARE_EXTRA_COMPUTATION_KW type WS+ new_reference_name WS+ type_list WS* R_PAREN
+ {
+ final Origin start_origin;
+ final ExtraComputation extra_computation;
+
+ start_origin =
+ CONTEXT.get_origin_at
+ (
+ ($DECLARE_EXTRA_COMPUTATION_KW.getLine()),
+ ($DECLARE_EXTRA_COMPUTATION_KW.getCharPositionInLine())
+ );
+
+ extra_computation =
+ new ExtraComputation
+ (
+ start_origin,
+ ($type.result),
+ ($new_reference_name.result),
+ ($type_list.result)
+ );
+
+ WORLD.extra_computations().add(extra_computation);
+ }
+
+ | DECLARE_EXTRA_COMPUTATION_KW type WS+ new_reference_name WS* R_PAREN
+ {
+ final Origin start_origin;
+ final ExtraComputation extra_computation;
+
+ start_origin =
+ CONTEXT.get_origin_at
+ (
+ ($DECLARE_EXTRA_COMPUTATION_KW.getLine()),
+ ($DECLARE_EXTRA_COMPUTATION_KW.getCharPositionInLine())
+ );
+
+ extra_computation =
+ new ExtraComputation
+ (
+ start_origin,
+ ($type.result),
+ ($new_reference_name.result),
+ new ArrayList<Type>()
+ );
+
+ WORLD.extra_computations().add(extra_computation);
}
| DECLARE_INPUT_EVENT_TYPE_KW new_reference_name WS* R_PAREN
@@ -1673,48 +1721,50 @@ returns [Instruction result]
variable_map.remove(($new_reference_name.result));
}
- | EVENT_KW WORD WS+ value_list WS* R_PAREN
+ | EXTRA_INSTRUCTION_KW WORD WS+ value_list WS* R_PAREN
{
final Origin origin;
- final Event event;
+ final ExtraInstruction extra_instruction;
origin =
CONTEXT.get_origin_at
(
- ($EVENT_KW.getLine()),
- ($EVENT_KW.getCharPositionInLine())
+ ($EXTRA_INSTRUCTION_KW.getLine()),
+ ($EXTRA_INSTRUCTION_KW.getCharPositionInLine())
);
- event = WORLD.events().get(origin, ($WORD.text));
+ extra_instruction = WORLD.extra_instructions().get(origin, ($WORD.text));
$result =
- EventCall.build
+ extra_instruction.instantiate
(
+ WORLD,
+ CONTEXT,
origin,
- event,
($value_list.result)
);
}
- | EVENT_KW WORD WS* R_PAREN
+ | EXTRA_INSTRUCTION_KW WORD WS* R_PAREN
{
final Origin origin;
- final Event event;
+ final ExtraInstruction extra_instruction;
origin =
CONTEXT.get_origin_at
(
- ($EVENT_KW.getLine()),
- ($EVENT_KW.getCharPositionInLine())
+ ($EXTRA_INSTRUCTION_KW.getLine()),
+ ($EXTRA_INSTRUCTION_KW.getCharPositionInLine())
);
- event = WORLD.events().get(origin, ($WORD.text));
+ extra_instruction = WORLD.extra_instructions().get(origin, ($WORD.text));
$result =
- EventCall.build
+ extra_instruction.instantiate
(
+ WORLD,
+ CONTEXT,
origin,
- event,
new ArrayList<Computation>()
);
}
@@ -2007,40 +2057,6 @@ returns [Instruction result]
);
}
- | EXTENSION_INSTRUCTION_KW WORD WS+ general_fate_sequence WS* R_PAREN
- {
- final Origin origin;
- final ExtensionInstruction instr;
-
- origin =
- CONTEXT.get_origin_at
- (
- ($WORD.getLine()),
- ($WORD.getCharPositionInLine())
- );
-
- instr = WORLD.extension_instructions().get(($WORD.text));
-
- if (instr == null)
- {
- ErrorManager.handle
- (
- new UnknownExtensionContentException(origin, ($WORD.text))
- );
- }
- else
- {
- $result =
- instr.build
- (
- WORLD,
- CONTEXT,
- origin,
- ($general_fate_sequence.result)
- );
- }
- }
-
| paragraph
{
$result =
@@ -2215,7 +2231,7 @@ returns [Instruction result]
);
}
- | (EVENT_KW | PLAYER_EVENT_KW)
+ | PLAYER_EVENT_KW
L_PAREN WS* WORD WS* R_PAREN WS+
{
HIERARCHICAL_VARIABLES.push(new ArrayList());
@@ -2251,7 +2267,7 @@ returns [Instruction result]
);
}
- | (EVENT_KW | PLAYER_EVENT_KW)
+ | PLAYER_EVENT_KW
L_PAREN WS* WORD WS+ value_list WS* R_PAREN WS+
{
HIERARCHICAL_VARIABLES.push(new ArrayList());
@@ -4168,10 +4184,10 @@ returns [Computation result]
);
}
- | EXTENSION_VALUE_KW WORD WS+ value_list WS* R_PAREN
+ | EXTRA_COMPUTATION_KW WORD WS+ value_list WS* R_PAREN
{
final Origin origin;
- final ExtensionComputation value;
+ final ExtensionComputation extra_computation;
origin =
CONTEXT.get_origin_at
@@ -4180,26 +4196,40 @@ returns [Computation result]
($WORD.getCharPositionInLine())
);
- value = WORLD.extension_value_nodes().get(($WORD.text));
+ extra_computation = WORLD.extra_computations().get(origin, ($WORD.text));
- if (value == null)
- {
- ErrorManager.handle
+ $result =
+ extra_computation.build
(
- new UnknownExtensionContentException(origin, ($WORD.text))
+ WORLD,
+ CONTEXT,
+ origin,
+ ($value_list.result)
+ );
+ }
+
+ | EXTRA_COMPUTATION_KW WORD WS* R_PAREN
+ {
+ final Origin origin;
+ final ExtensionComputation extra_computation;
+
+ origin =
+ CONTEXT.get_origin_at
+ (
+ ($WORD.getLine()),
+ ($WORD.getCharPositionInLine())
+ );
+
+ extra_computation = WORLD.extra_computations().get(origin, ($WORD.text));
+
+ $result =
+ extra_computation.build
+ (
+ WORLD,
+ CONTEXT,
+ origin,
+ ($value_list.result)
);
- }
- else
- {
- $result =
- value.build
- (
- WORLD,
- CONTEXT,
- origin,
- ($value_list.result)
- );
- }
}
| SEQUENCE_KW WORD WS* R_PAREN
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 110c670..ad3abc3 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
@@ -1686,7 +1686,7 @@ implements tonkadur.fate.v1.lang.meta.ComputationVisitor
content.add(content_cc.get_computation());
}
- result_as_computation = new RichText(content);
+ result_as_computation = new Text(content);
}
@Override
@@ -1742,7 +1742,7 @@ implements tonkadur.fate.v1.lang.meta.ComputationVisitor
}
result_as_computation =
- new AddRichTextEffect
+ new AddTextEffect
(
n.get_effect().get_name(),
parameters,
@@ -1751,9 +1751,9 @@ implements tonkadur.fate.v1.lang.meta.ComputationVisitor
}
@Override
- public void visit_value_to_rich_text
+ public void visit_value_to_text
(
- final tonkadur.fate.v1.lang.computation.ValueToRichText n
+ final tonkadur.fate.v1.lang.computation.ValueToText n
)
throws Throwable
{
@@ -1766,7 +1766,7 @@ implements tonkadur.fate.v1.lang.meta.ComputationVisitor
assimilate(cc);
result_as_computation =
- new RichText(Collections.singletonList(cc.get_computation()));
+ new Text(Collections.singletonList(cc.get_computation()));
}
@Override
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 dda6d2e..f1c28fc 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
@@ -28,17 +28,17 @@ import tonkadur.wyrd.v1.lang.computation.Size;
import tonkadur.wyrd.v1.lang.computation.GetLastChoiceIndex;
import tonkadur.wyrd.v1.lang.computation.ValueOf;
-import tonkadur.wyrd.v1.lang.instruction.AddChoice;
-import tonkadur.wyrd.v1.lang.instruction.AddEventInput;
+import tonkadur.wyrd.v1.lang.instruction.AddTextOption;
+import tonkadur.wyrd.v1.lang.instruction.AddEventOption;
import tonkadur.wyrd.v1.lang.instruction.Assert;
import tonkadur.wyrd.v1.lang.instruction.Display;
import tonkadur.wyrd.v1.lang.instruction.End;
-import tonkadur.wyrd.v1.lang.instruction.EventCall;
+import tonkadur.wyrd.v1.lang.instruction.ExtraInstruction;
import tonkadur.wyrd.v1.lang.instruction.Initialize;
import tonkadur.wyrd.v1.lang.instruction.PromptInteger;
import tonkadur.wyrd.v1.lang.instruction.PromptString;
import tonkadur.wyrd.v1.lang.instruction.Remove;
-import tonkadur.wyrd.v1.lang.instruction.ResolveChoices;
+import tonkadur.wyrd.v1.lang.instruction.ResolveChoice;
import tonkadur.wyrd.v1.lang.instruction.SetPC;
import tonkadur.wyrd.v1.lang.instruction.SetValue;
@@ -2594,9 +2594,9 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
}
@Override
- public void visit_event_call
+ public void visit_extra_instruction
(
- final tonkadur.fate.v1.lang.instruction.EventCall n
+ final tonkadur.fate.v1.lang.instruction.ExtraInstructionInstance n
)
throws Throwable
{
@@ -2632,7 +2632,13 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
parameters.add(cc.get_computation());
}
- result.add(new EventCall(n.get_event().get_name(), parameters));
+ result.add
+ (
+ new ExtraInstruction
+ (
+ n.get_instruction().get_name(), parameters
+ )
+ );
for (final ComputationCompiler cc: cc_list)
{
@@ -2860,7 +2866,7 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
result.add(cc.get_init());
}
- labels_only.add(new AddChoice(cc.get_computation()));
+ labels_only.add(new AddTextOption(cc.get_computation()));
labels_only.add
(
@@ -3013,7 +3019,7 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
labels_only.add
(
- new AddEventInput(n.get_input_event().get_name(), params)
+ new AddEventOption(n.get_input_event().get_name(), params)
);
for (final ComputationCompiler cc: params_cc)
@@ -3185,7 +3191,7 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
compiler.assembler().pop_context_label("choices");
- result.add(new ResolveChoices());
+ result.add(new ResolveChoice());
result.add
(
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 af4f703..572fa19 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
@@ -90,9 +90,9 @@ public class TypeCompiler
return Type.INT;
}
- if (fate_type.equals(tonkadur.fate.v1.lang.type.Type.RICH_TEXT))
+ if (fate_type.equals(tonkadur.fate.v1.lang.type.Type.TEXT))
{
- return Type.RICH_TEXT;
+ return Type.TEXT;
}
if (fate_type.equals(tonkadur.fate.v1.lang.type.Type.STRING))
@@ -176,9 +176,9 @@ public class TypeCompiler
return MapType.MAP_TO_STRING;
}
- if (fate_content_type.equals(tonkadur.fate.v1.lang.type.Type.RICH_TEXT))
+ if (fate_content_type.equals(tonkadur.fate.v1.lang.type.Type.TEXT))
{
- return MapType.MAP_TO_RICH_TEXT;
+ return MapType.MAP_TO_TEXT;
}
if (fate_content_type instanceof tonkadur.fate.v1.lang.type.LambdaType)
diff --git a/src/core/src/tonkadur/wyrd/v1/lang/computation/AddRichTextEffect.java b/src/core/src/tonkadur/wyrd/v1/lang/computation/AddTextEffect.java
index 30a5538..6eab85f 100644
--- a/src/core/src/tonkadur/wyrd/v1/lang/computation/AddRichTextEffect.java
+++ b/src/core/src/tonkadur/wyrd/v1/lang/computation/AddTextEffect.java
@@ -7,7 +7,7 @@ import tonkadur.wyrd.v1.lang.type.Type;
import tonkadur.wyrd.v1.lang.meta.Computation;
import tonkadur.wyrd.v1.lang.meta.ComputationVisitor;
-public class AddRichTextEffect extends RichText
+public class AddTextEffect extends Text
{
/***************************************************************************/
/**** MEMBERS **************************************************************/
@@ -19,7 +19,7 @@ public class AddRichTextEffect extends RichText
/**** PUBLIC ***************************************************************/
/***************************************************************************/
/**** Constructors *********************************************************/
- public AddRichTextEffect
+ public AddTextEffect
(
final String effect_name,
final List<Computation> effect_parameters,
@@ -47,7 +47,7 @@ public class AddRichTextEffect extends RichText
public void get_visited_by (final ComputationVisitor cv)
throws Throwable
{
- cv.visit_add_rich_text_effect(this);
+ cv.visit_add_text_effect(this);
}
/**** Misc. ****************************************************************/
@@ -58,7 +58,7 @@ public class AddRichTextEffect extends RichText
sb = new StringBuilder();
- sb.append("(AddRichTextEffect (");
+ sb.append("(AddTextEffect (");
sb.append(effect_name);
for (final Computation param: effect_parameters)
diff --git a/src/core/src/tonkadur/wyrd/v1/lang/computation/Newline.java b/src/core/src/tonkadur/wyrd/v1/lang/computation/Newline.java
index 74accf3..22e25f9 100644
--- a/src/core/src/tonkadur/wyrd/v1/lang/computation/Newline.java
+++ b/src/core/src/tonkadur/wyrd/v1/lang/computation/Newline.java
@@ -4,7 +4,7 @@ import java.util.ArrayList;
import tonkadur.wyrd.v1.lang.meta.ComputationVisitor;
-public class Newline extends RichText
+public class Newline extends Text
{
/***************************************************************************/
/**** MEMBERS **************************************************************/
diff --git a/src/core/src/tonkadur/wyrd/v1/lang/computation/RichText.java b/src/core/src/tonkadur/wyrd/v1/lang/computation/Text.java
index 2a0a001..bf0c148 100644
--- a/src/core/src/tonkadur/wyrd/v1/lang/computation/RichText.java
+++ b/src/core/src/tonkadur/wyrd/v1/lang/computation/Text.java
@@ -7,7 +7,7 @@ import tonkadur.wyrd.v1.lang.type.Type;
import tonkadur.wyrd.v1.lang.meta.Computation;
import tonkadur.wyrd.v1.lang.meta.ComputationVisitor;
-public class RichText extends Computation
+public class Text extends Computation
{
/***************************************************************************/
/**** MEMBERS **************************************************************/
@@ -18,9 +18,9 @@ public class RichText extends Computation
/**** PUBLIC ***************************************************************/
/***************************************************************************/
/**** Constructors *********************************************************/
- public RichText (final List<Computation> content)
+ public Text (final List<Computation> content)
{
- super(Type.RICH_TEXT);
+ super(Type.TEXT);
this.content = content;
}
@@ -35,7 +35,7 @@ public class RichText extends Computation
public void get_visited_by (final ComputationVisitor cv)
throws Throwable
{
- cv.visit_rich_text(this);
+ cv.visit_text(this);
}
/**** Misc. ****************************************************************/
@@ -46,7 +46,7 @@ public class RichText extends Computation
sb = new StringBuilder();
- sb.append("(RichText ");
+ sb.append("(Text ");
for (final Computation text: content)
{
diff --git a/src/core/src/tonkadur/wyrd/v1/lang/instruction/EventCall.java b/src/core/src/tonkadur/wyrd/v1/lang/instruction/AddEventOption.java
index 221d47d..26ea3d5 100644
--- a/src/core/src/tonkadur/wyrd/v1/lang/instruction/EventCall.java
+++ b/src/core/src/tonkadur/wyrd/v1/lang/instruction/AddEventOption.java
@@ -6,7 +6,7 @@ import tonkadur.wyrd.v1.lang.meta.Computation;
import tonkadur.wyrd.v1.lang.meta.Instruction;
import tonkadur.wyrd.v1.lang.meta.InstructionVisitor;
-public class EventCall extends Instruction
+public class AddEventOption extends Instruction
{
/***************************************************************************/
/**** MEMBERS **************************************************************/
@@ -18,7 +18,7 @@ public class EventCall extends Instruction
/**** PUBLIC ***************************************************************/
/***************************************************************************/
/**** Constructors *********************************************************/
- public EventCall (final String name, final List<Computation> parameters)
+ public AddEventOption (final String name, final List<Computation> parameters)
{
this.name = name;
this.parameters = parameters;
@@ -39,7 +39,7 @@ public class EventCall extends Instruction
public void get_visited_by (final InstructionVisitor iv)
throws Throwable
{
- iv.visit_event_call(this);
+ iv.visit_add_event_option(this);
}
/**** Misc. ****************************************************************/
@@ -50,7 +50,7 @@ public class EventCall extends Instruction
sb = new StringBuilder();
- sb.append("(EventCall ");
+ sb.append("(AddEventOption ");
sb.append(name);
for (final Computation param: parameters)
diff --git a/src/core/src/tonkadur/wyrd/v1/lang/instruction/AddChoice.java b/src/core/src/tonkadur/wyrd/v1/lang/instruction/AddTextOption.java
index 02f4bc8..d89cbee 100644
--- a/src/core/src/tonkadur/wyrd/v1/lang/instruction/AddChoice.java
+++ b/src/core/src/tonkadur/wyrd/v1/lang/instruction/AddTextOption.java
@@ -4,7 +4,7 @@ import tonkadur.wyrd.v1.lang.meta.Computation;
import tonkadur.wyrd.v1.lang.meta.Instruction;
import tonkadur.wyrd.v1.lang.meta.InstructionVisitor;
-public class AddChoice extends Instruction
+public class AddTextOption extends Instruction
{
/***************************************************************************/
/**** MEMBERS **************************************************************/
@@ -15,7 +15,7 @@ public class AddChoice extends Instruction
/**** PUBLIC ***************************************************************/
/***************************************************************************/
/**** Constructors *********************************************************/
- public AddChoice (final Computation label)
+ public AddTextOption (final Computation label)
{
this.label = label;
}
@@ -30,7 +30,7 @@ public class AddChoice extends Instruction
public void get_visited_by (final InstructionVisitor iv)
throws Throwable
{
- iv.visit_add_choice(this);
+ iv.visit_add_text_option(this);
}
/**** Misc. ****************************************************************/
@@ -41,7 +41,7 @@ public class AddChoice extends Instruction
sb = new StringBuilder();
- sb.append("(AddChoice ");
+ sb.append("(AddTextOption ");
sb.append(label.toString());
sb.append(")");
diff --git a/src/core/src/tonkadur/wyrd/v1/lang/instruction/AddEventInput.java b/src/core/src/tonkadur/wyrd/v1/lang/instruction/ExtraInstruction.java
index 5d476a5..08b0bfc 100644
--- a/src/core/src/tonkadur/wyrd/v1/lang/instruction/AddEventInput.java
+++ b/src/core/src/tonkadur/wyrd/v1/lang/instruction/ExtraInstruction.java
@@ -6,7 +6,7 @@ import tonkadur.wyrd.v1.lang.meta.Computation;
import tonkadur.wyrd.v1.lang.meta.Instruction;
import tonkadur.wyrd.v1.lang.meta.InstructionVisitor;
-public class AddEventInput extends Instruction
+public class ExtraInstruction extends Instruction
{
/***************************************************************************/
/**** MEMBERS **************************************************************/
@@ -18,7 +18,11 @@ public class AddEventInput extends Instruction
/**** PUBLIC ***************************************************************/
/***************************************************************************/
/**** Constructors *********************************************************/
- public AddEventInput (final String name, final List<Computation> parameters)
+ public ExtraInstruction
+ (
+ final String name,
+ final List<Computation> parameters
+ )
{
this.name = name;
this.parameters = parameters;
@@ -39,7 +43,7 @@ public class AddEventInput extends Instruction
public void get_visited_by (final InstructionVisitor iv)
throws Throwable
{
- iv.visit_add_event_input(this);
+ iv.visit_extra_instruction(this);
}
/**** Misc. ****************************************************************/
@@ -50,7 +54,7 @@ public class AddEventInput extends Instruction
sb = new StringBuilder();
- sb.append("(AddEventInput ");
+ sb.append("(ExtraInstruction ");
sb.append(name);
for (final Computation param: parameters)
diff --git a/src/core/src/tonkadur/wyrd/v1/lang/instruction/ResolveChoices.java b/src/core/src/tonkadur/wyrd/v1/lang/instruction/ResolveChoice.java
index 27fdc79..23adce1 100644
--- a/src/core/src/tonkadur/wyrd/v1/lang/instruction/ResolveChoices.java
+++ b/src/core/src/tonkadur/wyrd/v1/lang/instruction/ResolveChoice.java
@@ -3,7 +3,7 @@ package tonkadur.wyrd.v1.lang.instruction;
import tonkadur.wyrd.v1.lang.meta.Instruction;
import tonkadur.wyrd.v1.lang.meta.InstructionVisitor;
-public class ResolveChoices extends Instruction
+public class ResolveChoice extends Instruction
{
/***************************************************************************/
/**** MEMBERS **************************************************************/
@@ -13,7 +13,7 @@ public class ResolveChoices extends Instruction
/**** PUBLIC ***************************************************************/
/***************************************************************************/
/**** Constructors *********************************************************/
- public ResolveChoices ()
+ public ResolveChoice ()
{
}
@@ -21,13 +21,13 @@ public class ResolveChoices extends Instruction
public void get_visited_by (final InstructionVisitor iv)
throws Throwable
{
- iv.visit_resolve_choices(this);
+ iv.visit_resolve_choice(this);
}
/**** Misc. ****************************************************************/
@Override
public String toString ()
{
- return "(ResolveChoices)";
+ return "(ResolveChoice)";
}
}
diff --git a/src/core/src/tonkadur/wyrd/v1/lang/meta/ComputationVisitor.java b/src/core/src/tonkadur/wyrd/v1/lang/meta/ComputationVisitor.java
index 1d9b2be..d1fefb8 100644
--- a/src/core/src/tonkadur/wyrd/v1/lang/meta/ComputationVisitor.java
+++ b/src/core/src/tonkadur/wyrd/v1/lang/meta/ComputationVisitor.java
@@ -4,7 +4,10 @@ import tonkadur.wyrd.v1.lang.computation.*;
public interface ComputationVisitor
{
- public void visit_add_rich_text_effect (final AddRichTextEffect n)
+ public void visit_extra_computation (final ExtraComputation n)
+ throws Throwable;
+
+ public void visit_add_text_effect (final AddTextEffect n)
throws Throwable;
public void visit_cast (final Cast n)
@@ -34,7 +37,7 @@ public interface ComputationVisitor
public void visit_get_last_choice_index (final GetLastChoiceIndex n)
throws Throwable;
- public void visit_rich_text (final RichText n)
+ public void visit_text (final Text n)
throws Throwable;
public void visit_size (final Size n)
diff --git a/src/core/src/tonkadur/wyrd/v1/lang/meta/InstructionVisitor.java b/src/core/src/tonkadur/wyrd/v1/lang/meta/InstructionVisitor.java
index 2d79298..e398de6 100644
--- a/src/core/src/tonkadur/wyrd/v1/lang/meta/InstructionVisitor.java
+++ b/src/core/src/tonkadur/wyrd/v1/lang/meta/InstructionVisitor.java
@@ -4,10 +4,13 @@ import tonkadur.wyrd.v1.lang.instruction.*;
public interface InstructionVisitor
{
- public void visit_add_choice (final AddChoice n)
+ public void visit_extra_instruction (final ExtraInstruction n)
throws Throwable;
- public void visit_add_event_input (final AddEventInput n)
+ public void visit_add_text_option (final AddTextOption n)
+ throws Throwable;
+
+ public void visit_add_event_option (final AddEventOption n)
throws Throwable;
public void visit_assert (final Assert n)
@@ -19,13 +22,10 @@ public interface InstructionVisitor
public void visit_end (final End n)
throws Throwable;
- public void visit_event_call (final EventCall n)
- throws Throwable;
-
public void visit_remove (final Remove n)
throws Throwable;
- public void visit_resolve_choices (final ResolveChoices n)
+ public void visit_resolve_choice (final ResolveChoice n)
throws Throwable;
public void visit_set_pc (final SetPC n)
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 c9586ee..ea2c005 100644
--- a/src/core/src/tonkadur/wyrd/v1/lang/type/MapType.java
+++ b/src/core/src/tonkadur/wyrd/v1/lang/type/MapType.java
@@ -6,14 +6,14 @@ public class MapType extends Type
public static final MapType MAP_TO_FLOAT;
public static final MapType MAP_TO_INT;
public static final MapType MAP_TO_STRING;
- public static final MapType MAP_TO_RICH_TEXT;
+ public static final MapType MAP_TO_TEXT;
static
{
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);
+ MAP_TO_TEXT = new MapType(Type.TEXT);
MAP_TO_STRING = new MapType(Type.STRING);
}
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 d123104..5b88264 100644
--- a/src/core/src/tonkadur/wyrd/v1/lang/type/Type.java
+++ b/src/core/src/tonkadur/wyrd/v1/lang/type/Type.java
@@ -5,7 +5,7 @@ public class Type
public static final Type BOOL;
public static final Type FLOAT;
public static final Type INT;
- public static final Type RICH_TEXT;
+ public static final Type TEXT;
public static final Type STRING;
static
@@ -13,7 +13,7 @@ public class Type
BOOL = new Type("bool");
FLOAT = new Type("float");
INT = new Type("int");
- RICH_TEXT = new Type("rich_text");
+ TEXT = new Type("text");
STRING = new Type("string");
}