From c2a3d1d2778c53738cad8e647b70edc98da84b59 Mon Sep 17 00:00:00 2001 From: Nathanael Sensfelder Date: Tue, 29 Dec 2020 00:31:55 +0100 Subject: Starting a considerable refactoring... --- src/core/src/tonkadur/fate/v1/lang/InputEvent.java | 181 ------------------- src/core/src/tonkadur/fate/v1/lang/TextEffect.java | 8 +- src/core/src/tonkadur/fate/v1/lang/World.java | 73 ++++---- .../lang/computation/ExtraComputationInstance.java | 94 ++++++++++ .../fate/v1/lang/computation/ValueToRichText.java | 92 ---------- .../fate/v1/lang/computation/ValueToText.java | 92 ++++++++++ .../fate/v1/lang/instruction/EventCall.java | 101 ----------- .../lang/instruction/ExtraInstructionInstance.java | 94 ++++++++++ .../fate/v1/lang/instruction/PlayerInput.java | 12 +- .../fate/v1/lang/meta/ComputationVisitor.java | 3 + .../fate/v1/lang/meta/ExtensionComputation.java | 39 ---- .../fate/v1/lang/meta/ExtensionInstruction.java | 35 ---- .../fate/v1/lang/meta/ExtraComputation.java | 92 ++++++++++ .../fate/v1/lang/meta/ExtraInstruction.java | 80 +++++++++ .../fate/v1/lang/meta/InstructionVisitor.java | 6 +- src/core/src/tonkadur/fate/v1/parser/FateLexer.g4 | 12 +- src/core/src/tonkadur/fate/v1/parser/FateParser.g4 | 200 ++++++++++++--------- .../v1/compiler/fate/v1/ComputationCompiler.java | 10 +- .../v1/compiler/fate/v1/InstructionCompiler.java | 26 +-- .../wyrd/v1/compiler/fate/v1/TypeCompiler.java | 8 +- .../v1/lang/computation/AddRichTextEffect.java | 82 --------- .../wyrd/v1/lang/computation/AddTextEffect.java | 82 +++++++++ .../tonkadur/wyrd/v1/lang/computation/Newline.java | 2 +- .../wyrd/v1/lang/computation/RichText.java | 67 ------- .../tonkadur/wyrd/v1/lang/computation/Text.java | 67 +++++++ .../wyrd/v1/lang/instruction/AddChoice.java | 50 ------ .../wyrd/v1/lang/instruction/AddEventInput.java | 66 ------- .../wyrd/v1/lang/instruction/AddEventOption.java | 66 +++++++ .../wyrd/v1/lang/instruction/AddTextOption.java | 50 ++++++ .../wyrd/v1/lang/instruction/EventCall.java | 66 ------- .../wyrd/v1/lang/instruction/ExtraInstruction.java | 70 ++++++++ .../wyrd/v1/lang/instruction/ResolveChoice.java | 33 ++++ .../wyrd/v1/lang/instruction/ResolveChoices.java | 33 ---- .../wyrd/v1/lang/meta/ComputationVisitor.java | 7 +- .../wyrd/v1/lang/meta/InstructionVisitor.java | 12 +- .../src/tonkadur/wyrd/v1/lang/type/MapType.java | 4 +- src/core/src/tonkadur/wyrd/v1/lang/type/Type.java | 4 +- 37 files changed, 1035 insertions(+), 984 deletions(-) delete mode 100644 src/core/src/tonkadur/fate/v1/lang/InputEvent.java create mode 100644 src/core/src/tonkadur/fate/v1/lang/computation/ExtraComputationInstance.java delete mode 100644 src/core/src/tonkadur/fate/v1/lang/computation/ValueToRichText.java create mode 100644 src/core/src/tonkadur/fate/v1/lang/computation/ValueToText.java delete mode 100644 src/core/src/tonkadur/fate/v1/lang/instruction/EventCall.java create mode 100644 src/core/src/tonkadur/fate/v1/lang/instruction/ExtraInstructionInstance.java delete mode 100644 src/core/src/tonkadur/fate/v1/lang/meta/ExtensionComputation.java delete mode 100644 src/core/src/tonkadur/fate/v1/lang/meta/ExtensionInstruction.java create mode 100644 src/core/src/tonkadur/fate/v1/lang/meta/ExtraComputation.java create mode 100644 src/core/src/tonkadur/fate/v1/lang/meta/ExtraInstruction.java delete mode 100644 src/core/src/tonkadur/wyrd/v1/lang/computation/AddRichTextEffect.java create mode 100644 src/core/src/tonkadur/wyrd/v1/lang/computation/AddTextEffect.java delete mode 100644 src/core/src/tonkadur/wyrd/v1/lang/computation/RichText.java create mode 100644 src/core/src/tonkadur/wyrd/v1/lang/computation/Text.java delete mode 100644 src/core/src/tonkadur/wyrd/v1/lang/instruction/AddChoice.java delete mode 100644 src/core/src/tonkadur/wyrd/v1/lang/instruction/AddEventInput.java create mode 100644 src/core/src/tonkadur/wyrd/v1/lang/instruction/AddEventOption.java create mode 100644 src/core/src/tonkadur/wyrd/v1/lang/instruction/AddTextOption.java delete mode 100644 src/core/src/tonkadur/wyrd/v1/lang/instruction/EventCall.java create mode 100644 src/core/src/tonkadur/wyrd/v1/lang/instruction/ExtraInstruction.java create mode 100644 src/core/src/tonkadur/wyrd/v1/lang/instruction/ResolveChoice.java delete mode 100644 src/core/src/tonkadur/wyrd/v1/lang/instruction/ResolveChoices.java (limited to 'src') 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(), - /* - * 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 signature; - - /***************************************************************************/ - /**** PUBLIC ***************************************************************/ - /***************************************************************************/ - - /**** Constructors *********************************************************/ - public InputEvent - ( - final Origin origin, - final List signature, - final String name - ) - { - super(origin, name); - - this.signature = signature; - } - - /**** Accessors ************************************************************/ - public List get_signature () - { - return signature; - } - - @Override - public DeclaredEntity generate_comparable_to (final DeclaredEntity de) - { - final List 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() - { - @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 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() - { - @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 signature; /***************************************************************************/ /**** PUBLIC ***************************************************************/ @@ -94,6 +95,11 @@ public class TextEffect extends Event return new TextEffect(origin, new_signature, name); } + public List 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>>> sequence_uses; protected final Map> sequence_variables; - protected final Map extension_value_nodes; - protected final Map extension_instructions; - protected final Map - extension_first_level_instructions; + protected final DeclarationCollection ei_collection; + protected final DeclarationCollection ec_collection; protected final DeclarationCollection event_collection; - protected final DeclarationCollection input_event_collection; protected final DeclarationCollection sequence_collection; protected final DeclarationCollection text_effect_collection; protected final DeclarationCollection type_collection; @@ -70,15 +67,19 @@ public class World sequence_variables = new HashMap>(); - extension_value_nodes = new HashMap(); - extension_instructions = new HashMap(); - extension_first_level_instructions = - new HashMap(); + ei_collection = + new DeclarationCollection + ( + ExtraInstruction.value_on_missing() + ); + ec_collection = + new DeclarationCollection + ( + ExtraComputation.value_on_missing() + ); event_collection = new DeclarationCollection(Event.value_on_missing()); - input_event_collection = - new DeclarationCollection(InputEvent.value_on_missing()); sequence_collection = new DeclarationCollection(null); text_effect_collection = @@ -164,35 +165,22 @@ public class World list_of_variables.add(sr); } - /**** Extension Stuff ****/ - public Map extension_instructions () - { - return extension_instructions; - } - - public Map extension_first_level_instructions - ( - ) + /**** Collections ****/ + public DeclarationCollection extra_instructions () { - return extension_first_level_instructions; + return ei_collection; } - public Map extension_value_nodes () + public DeclarationCollection extra_computations () { - return extension_value_nodes; + return ec_collection; } - /**** Collections ****/ public DeclarationCollection events () { return event_collection; } - public DeclarationCollection input_events () - { - return input_event_collection; - } - public DeclarationCollection 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 parameters; + + /***************************************************************************/ + /**** PROTECTED ************************************************************/ + /***************************************************************************/ + /**** Constructors *********************************************************/ + protected ExtraComputationInstance + ( + final Origin origin, + final ExtraComputation computation, + final List 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 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 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/ValueToRichText.java deleted file mode 100644 index b21024b..0000000 --- a/src/core/src/tonkadur/fate/v1/lang/computation/ValueToRichText.java +++ /dev/null @@ -1,92 +0,0 @@ -package tonkadur.fate.v1.lang.computation; - -import tonkadur.parser.Origin; - -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.ComputationVisitor; -import tonkadur.fate.v1.lang.meta.RichTextNode; -import tonkadur.fate.v1.lang.meta.Computation; - -public class ValueToRichText extends RichTextNode -{ - /***************************************************************************/ - /**** MEMBERS **************************************************************/ - /***************************************************************************/ - protected final Computation value; - - /***************************************************************************/ - /**** PROTECTED ************************************************************/ - /***************************************************************************/ - /**** Constructors *********************************************************/ - protected ValueToRichText (final Computation value) - { - super(value.get_origin()); - - this.value = value; - } - - /***************************************************************************/ - /**** PUBLIC ***************************************************************/ - /***************************************************************************/ - /**** Constructors *********************************************************/ - public static ValueToRichText build (final Computation value) - throws - IncompatibleTypeException, - IncomparableTypeException - { - final Type value_base_type; - - value_base_type = value.get_type().get_base_type(); - - if - ( - value_base_type.equals(Type.STRING) - || value_base_type.equals(Type.RICH_TEXT) - ) - { - return new ValueToRichText(value); - } - - return - new ValueToRichText - ( - Cast.build - ( - value.get_origin(), - Type.STRING, - value, - true - ) - ); - } - - /**** Accessors ************************************************************/ - @Override - public void get_visited_by (final ComputationVisitor cv) - throws Throwable - { - cv.visit_value_to_rich_text(this); - } - - public Computation get_value () - { - return value; - } - - /**** Misc. ****************************************************************/ - @Override - public String toString () - { - final StringBuilder sb = new StringBuilder(); - - sb.append("(ValueToRichText "); - sb.append(value.toString()); - sb.append(")"); - - return sb.toString(); - } -} diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/ValueToText.java b/src/core/src/tonkadur/fate/v1/lang/computation/ValueToText.java new file mode 100644 index 0000000..b21024b --- /dev/null +++ b/src/core/src/tonkadur/fate/v1/lang/computation/ValueToText.java @@ -0,0 +1,92 @@ +package tonkadur.fate.v1.lang.computation; + +import tonkadur.parser.Origin; + +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.ComputationVisitor; +import tonkadur.fate.v1.lang.meta.RichTextNode; +import tonkadur.fate.v1.lang.meta.Computation; + +public class ValueToRichText extends RichTextNode +{ + /***************************************************************************/ + /**** MEMBERS **************************************************************/ + /***************************************************************************/ + protected final Computation value; + + /***************************************************************************/ + /**** PROTECTED ************************************************************/ + /***************************************************************************/ + /**** Constructors *********************************************************/ + protected ValueToRichText (final Computation value) + { + super(value.get_origin()); + + this.value = value; + } + + /***************************************************************************/ + /**** PUBLIC ***************************************************************/ + /***************************************************************************/ + /**** Constructors *********************************************************/ + public static ValueToRichText build (final Computation value) + throws + IncompatibleTypeException, + IncomparableTypeException + { + final Type value_base_type; + + value_base_type = value.get_type().get_base_type(); + + if + ( + value_base_type.equals(Type.STRING) + || value_base_type.equals(Type.RICH_TEXT) + ) + { + return new ValueToRichText(value); + } + + return + new ValueToRichText + ( + Cast.build + ( + value.get_origin(), + Type.STRING, + value, + true + ) + ); + } + + /**** Accessors ************************************************************/ + @Override + public void get_visited_by (final ComputationVisitor cv) + throws Throwable + { + cv.visit_value_to_rich_text(this); + } + + public Computation get_value () + { + return value; + } + + /**** Misc. ****************************************************************/ + @Override + public String toString () + { + final StringBuilder sb = new StringBuilder(); + + sb.append("(ValueToRichText "); + sb.append(value.toString()); + sb.append(")"); + + return sb.toString(); + } +} diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/EventCall.java b/src/core/src/tonkadur/fate/v1/lang/instruction/EventCall.java deleted file mode 100644 index 16d23ed..0000000 --- a/src/core/src/tonkadur/fate/v1/lang/instruction/EventCall.java +++ /dev/null @@ -1,101 +0,0 @@ -package tonkadur.fate.v1.lang.instruction; - -import java.util.List; - -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; - -public class EventCall extends Instruction -{ - /***************************************************************************/ - /**** MEMBERS **************************************************************/ - /***************************************************************************/ - protected final Event event; - protected final List parameters; - - /***************************************************************************/ - /**** PROTECTED ************************************************************/ - /***************************************************************************/ - /**** Constructors *********************************************************/ - protected EventCall - ( - final Origin origin, - final Event event, - final List parameters - ) - { - super(origin); - - this.event = event; - this.parameters = parameters; - } - - /***************************************************************************/ - /**** PUBLIC ***************************************************************/ - /***************************************************************************/ - /**** Constructors *********************************************************/ - public static EventCall build - ( - final Origin origin, - final Event event, - final List parameters - ) - throws ParsingError - { - RecurrentChecks.assert_computations_matches_signature - ( - origin, - parameters, - event.get_signature() - ); - - return new EventCall(origin, event, parameters); - } - - /**** Accessors ************************************************************/ - @Override - public void get_visited_by (final InstructionVisitor iv) - throws Throwable - { - iv.visit_event_call(this); - } - - public Event get_event () - { - return event; - } - - public List get_parameters () - { - return parameters; - } - - /**** Misc. ****************************************************************/ - @Override - public String toString () - { - final StringBuilder sb = new StringBuilder(); - - sb.append("(EventCall ("); - sb.append(event.get_name()); - - for (final Computation param: parameters) - { - sb.append(" "); - sb.append(param.toString()); - } - - sb.append("))"); - - return sb.toString(); - } -} diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/ExtraInstructionInstance.java b/src/core/src/tonkadur/fate/v1/lang/instruction/ExtraInstructionInstance.java new file mode 100644 index 0000000..f333509 --- /dev/null +++ b/src/core/src/tonkadur/fate/v1/lang/instruction/ExtraInstructionInstance.java @@ -0,0 +1,94 @@ +package tonkadur.fate.v1.lang.instruction; + +import java.util.List; + +import tonkadur.parser.Context; +import tonkadur.parser.Origin; + +import tonkadur.fate.v1.lang.meta.Instruction; +import tonkadur.fate.v1.lang.meta.ExtraInstruction; + +public class ExtraInstructionInstance extends Instruction +{ + protected final ExtraInstruction instruction; + protected final List parameters; + + /***************************************************************************/ + /**** PROTECTED ************************************************************/ + /***************************************************************************/ + /**** Constructors *********************************************************/ + protected ExtraInstructionInstance + ( + final Origin origin, + final ExtraInstruction instruction, + final List parameters + ) + { + super(origin); + + this.instruction = instruction; + this.parameters = parameters; + } + + /***************************************************************************/ + /**** PUBLIC ***************************************************************/ + /***************************************************************************/ + /**** Constructors *********************************************************/ + public ExtraInstructionInstance build + ( + final Origin origin, + final ExtraInstruction instruction, + final List parameters + ) + throws ParsingError + { + RecurrentChecks.assert_computations_matches_signature + ( + origin, + parameters, + instruction.get_signature() + ); + + return new ExtraInstructionInstance(origin, instruction, parameters); + } + + /**** Accessors ************************************************************/ + @Override + public void get_visited_by (final InstructionVisitor iv) + throws Throwable + { + iv.visit_extra_instruction(this); + } + + public ExtraInstruction get_instruction_type () + { + return instruction; + } + + public List get_parameters () + { + return parameters; + } + + /**** Misc. ****************************************************************/ + @Override + public String toString () + { + final StringBuilder sb; + + sb = new StringBuilder(); + + sb.append("("); + sb.append(instruction.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/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 params; protected final List 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 params, final List 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 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 parameters, final List 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 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 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 signature; + + /***************************************************************************/ + /**** PUBLIC ***************************************************************/ + /***************************************************************************/ + /**** Constructors *********************************************************/ + public ExtraComputation + ( + final Origin origin, + final Type returned_type, + final String name, + final List signature + ) + { + super(origin, name); + + this.returned_type = returned_type; + this.signature = signature; + } + + public ExtraComputation + ( + final Type returned_type, + final String name, + final List 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 get_signature () + { + return signature; + } + + /**** Instantiating ********************************************************/ + public ExtraComputationInstance instantiate + ( + final World world, + final Context context, + final Origin origin, + final List 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 signature; + + /***************************************************************************/ + /**** PUBLIC ***************************************************************/ + /***************************************************************************/ + /**** Constructors *********************************************************/ + public ExtraInstruction + ( + final Origin origin, + final String name, + final List signature + ) + { + super(origin, name); + + this.signature = signature; + } + + public ExtraInstruction + ( + final String name, + final List signature + ) + { + super(Origin.BASE_LANGUAGE, name); + + this.signature = signature; + } + + /**** Accessors ************************************************************/ + public List get_signature () + { + return signature; + } + + /**** Instantiating ********************************************************/ + public ExtraInstructionInstance instantiate + ( + final World world, + final Context context, + final Origin origin, + final List 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(), - ($new_reference_name.result) + ($new_reference_name.result), + new ArrayList() ); - 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() + ); + + 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() ); } @@ -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/AddRichTextEffect.java deleted file mode 100644 index 30a5538..0000000 --- a/src/core/src/tonkadur/wyrd/v1/lang/computation/AddRichTextEffect.java +++ /dev/null @@ -1,82 +0,0 @@ -package tonkadur.wyrd.v1.lang.computation; - -import java.util.List; - -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 -{ - /***************************************************************************/ - /**** MEMBERS **************************************************************/ - /***************************************************************************/ - protected final String effect_name; - protected final List effect_parameters; - - /***************************************************************************/ - /**** PUBLIC ***************************************************************/ - /***************************************************************************/ - /**** Constructors *********************************************************/ - public AddRichTextEffect - ( - final String effect_name, - final List effect_parameters, - final List content - ) - { - super(content); - - this.effect_name = effect_name; - this.effect_parameters = effect_parameters; - } - - /**** Accessors ************************************************************/ - public String get_effect_name () - { - return effect_name; - } - - public List get_effect_parameters () - { - return effect_parameters; - } - - @Override - public void get_visited_by (final ComputationVisitor cv) - throws Throwable - { - cv.visit_add_rich_text_effect(this); - } - - /**** Misc. ****************************************************************/ - @Override - public String toString () - { - final StringBuilder sb; - - sb = new StringBuilder(); - - sb.append("(AddRichTextEffect ("); - sb.append(effect_name); - - for (final Computation param: effect_parameters) - { - sb.append(" "); - sb.append(param.toString()); - } - - sb.append(")"); - - for (final Computation text: content) - { - sb.append(" "); - sb.append(text.toString()); - } - - sb.append(")"); - - return sb.toString(); - } -} diff --git a/src/core/src/tonkadur/wyrd/v1/lang/computation/AddTextEffect.java b/src/core/src/tonkadur/wyrd/v1/lang/computation/AddTextEffect.java new file mode 100644 index 0000000..6eab85f --- /dev/null +++ b/src/core/src/tonkadur/wyrd/v1/lang/computation/AddTextEffect.java @@ -0,0 +1,82 @@ +package tonkadur.wyrd.v1.lang.computation; + +import java.util.List; + +import tonkadur.wyrd.v1.lang.type.Type; + +import tonkadur.wyrd.v1.lang.meta.Computation; +import tonkadur.wyrd.v1.lang.meta.ComputationVisitor; + +public class AddTextEffect extends Text +{ + /***************************************************************************/ + /**** MEMBERS **************************************************************/ + /***************************************************************************/ + protected final String effect_name; + protected final List effect_parameters; + + /***************************************************************************/ + /**** PUBLIC ***************************************************************/ + /***************************************************************************/ + /**** Constructors *********************************************************/ + public AddTextEffect + ( + final String effect_name, + final List effect_parameters, + final List content + ) + { + super(content); + + this.effect_name = effect_name; + this.effect_parameters = effect_parameters; + } + + /**** Accessors ************************************************************/ + public String get_effect_name () + { + return effect_name; + } + + public List get_effect_parameters () + { + return effect_parameters; + } + + @Override + public void get_visited_by (final ComputationVisitor cv) + throws Throwable + { + cv.visit_add_text_effect(this); + } + + /**** Misc. ****************************************************************/ + @Override + public String toString () + { + final StringBuilder sb; + + sb = new StringBuilder(); + + sb.append("(AddTextEffect ("); + sb.append(effect_name); + + for (final Computation param: effect_parameters) + { + sb.append(" "); + sb.append(param.toString()); + } + + sb.append(")"); + + for (final Computation text: content) + { + sb.append(" "); + sb.append(text.toString()); + } + + sb.append(")"); + + return sb.toString(); + } +} 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/RichText.java deleted file mode 100644 index 2a0a001..0000000 --- a/src/core/src/tonkadur/wyrd/v1/lang/computation/RichText.java +++ /dev/null @@ -1,67 +0,0 @@ -package tonkadur.wyrd.v1.lang.computation; - -import java.util.List; - -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 -{ - /***************************************************************************/ - /**** MEMBERS **************************************************************/ - /***************************************************************************/ - protected final List content; - - /***************************************************************************/ - /**** PUBLIC ***************************************************************/ - /***************************************************************************/ - /**** Constructors *********************************************************/ - public RichText (final List content) - { - super(Type.RICH_TEXT); - - this.content = content; - } - - /**** Accessors ************************************************************/ - public List get_content () - { - return content; - } - - @Override - public void get_visited_by (final ComputationVisitor cv) - throws Throwable - { - cv.visit_rich_text(this); - } - - /**** Misc. ****************************************************************/ - @Override - public String toString () - { - final StringBuilder sb; - - sb = new StringBuilder(); - - sb.append("(RichText "); - - for (final Computation text: content) - { - if (text == null) - { - sb.append(""); - } - else - { - sb.append(text.toString()); - } - } - - sb.append(")"); - - return sb.toString(); - } -} diff --git a/src/core/src/tonkadur/wyrd/v1/lang/computation/Text.java b/src/core/src/tonkadur/wyrd/v1/lang/computation/Text.java new file mode 100644 index 0000000..bf0c148 --- /dev/null +++ b/src/core/src/tonkadur/wyrd/v1/lang/computation/Text.java @@ -0,0 +1,67 @@ +package tonkadur.wyrd.v1.lang.computation; + +import java.util.List; + +import tonkadur.wyrd.v1.lang.type.Type; + +import tonkadur.wyrd.v1.lang.meta.Computation; +import tonkadur.wyrd.v1.lang.meta.ComputationVisitor; + +public class Text extends Computation +{ + /***************************************************************************/ + /**** MEMBERS **************************************************************/ + /***************************************************************************/ + protected final List content; + + /***************************************************************************/ + /**** PUBLIC ***************************************************************/ + /***************************************************************************/ + /**** Constructors *********************************************************/ + public Text (final List content) + { + super(Type.TEXT); + + this.content = content; + } + + /**** Accessors ************************************************************/ + public List get_content () + { + return content; + } + + @Override + public void get_visited_by (final ComputationVisitor cv) + throws Throwable + { + cv.visit_text(this); + } + + /**** Misc. ****************************************************************/ + @Override + public String toString () + { + final StringBuilder sb; + + sb = new StringBuilder(); + + sb.append("(Text "); + + for (final Computation text: content) + { + if (text == null) + { + sb.append(""); + } + else + { + sb.append(text.toString()); + } + } + + sb.append(")"); + + return sb.toString(); + } +} diff --git a/src/core/src/tonkadur/wyrd/v1/lang/instruction/AddChoice.java b/src/core/src/tonkadur/wyrd/v1/lang/instruction/AddChoice.java deleted file mode 100644 index 02f4bc8..0000000 --- a/src/core/src/tonkadur/wyrd/v1/lang/instruction/AddChoice.java +++ /dev/null @@ -1,50 +0,0 @@ -package tonkadur.wyrd.v1.lang.instruction; - -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 -{ - /***************************************************************************/ - /**** MEMBERS **************************************************************/ - /***************************************************************************/ - protected final Computation label; - - /***************************************************************************/ - /**** PUBLIC ***************************************************************/ - /***************************************************************************/ - /**** Constructors *********************************************************/ - public AddChoice (final Computation label) - { - this.label = label; - } - - /**** Accessors ************************************************************/ - public Computation get_label () - { - return label; - } - - @Override - public void get_visited_by (final InstructionVisitor iv) - throws Throwable - { - iv.visit_add_choice(this); - } - - /**** Misc. ****************************************************************/ - @Override - public String toString () - { - final StringBuilder sb; - - sb = new StringBuilder(); - - sb.append("(AddChoice "); - sb.append(label.toString()); - sb.append(")"); - - return sb.toString(); - } -} diff --git a/src/core/src/tonkadur/wyrd/v1/lang/instruction/AddEventInput.java b/src/core/src/tonkadur/wyrd/v1/lang/instruction/AddEventInput.java deleted file mode 100644 index 5d476a5..0000000 --- a/src/core/src/tonkadur/wyrd/v1/lang/instruction/AddEventInput.java +++ /dev/null @@ -1,66 +0,0 @@ -package tonkadur.wyrd.v1.lang.instruction; - -import java.util.List; - -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 -{ - /***************************************************************************/ - /**** MEMBERS **************************************************************/ - /***************************************************************************/ - protected final String name; - protected final List parameters; - - /***************************************************************************/ - /**** PUBLIC ***************************************************************/ - /***************************************************************************/ - /**** Constructors *********************************************************/ - public AddEventInput (final String name, final List parameters) - { - this.name = name; - this.parameters = parameters; - } - - /**** Accessors ************************************************************/ - public String get_name () - { - return name; - } - - public List get_parameters () - { - return parameters; - } - - @Override - public void get_visited_by (final InstructionVisitor iv) - throws Throwable - { - iv.visit_add_event_input(this); - } - - /**** Misc. ****************************************************************/ - @Override - public String toString () - { - final StringBuilder sb; - - sb = new StringBuilder(); - - sb.append("(AddEventInput "); - sb.append(name); - - for (final Computation param: parameters) - { - sb.append(" "); - sb.append(param.toString()); - } - - sb.append(")"); - - return sb.toString(); - } -} diff --git a/src/core/src/tonkadur/wyrd/v1/lang/instruction/AddEventOption.java b/src/core/src/tonkadur/wyrd/v1/lang/instruction/AddEventOption.java new file mode 100644 index 0000000..26ea3d5 --- /dev/null +++ b/src/core/src/tonkadur/wyrd/v1/lang/instruction/AddEventOption.java @@ -0,0 +1,66 @@ +package tonkadur.wyrd.v1.lang.instruction; + +import java.util.List; + +import tonkadur.wyrd.v1.lang.meta.Computation; +import tonkadur.wyrd.v1.lang.meta.Instruction; +import tonkadur.wyrd.v1.lang.meta.InstructionVisitor; + +public class AddEventOption extends Instruction +{ + /***************************************************************************/ + /**** MEMBERS **************************************************************/ + /***************************************************************************/ + protected final String name; + protected final List parameters; + + /***************************************************************************/ + /**** PUBLIC ***************************************************************/ + /***************************************************************************/ + /**** Constructors *********************************************************/ + public AddEventOption (final String name, final List parameters) + { + this.name = name; + this.parameters = parameters; + } + + /**** Accessors ************************************************************/ + public String get_name () + { + return name; + } + + public List get_parameters () + { + return parameters; + } + + @Override + public void get_visited_by (final InstructionVisitor iv) + throws Throwable + { + iv.visit_add_event_option(this); + } + + /**** Misc. ****************************************************************/ + @Override + public String toString () + { + final StringBuilder sb; + + sb = new StringBuilder(); + + sb.append("(AddEventOption "); + sb.append(name); + + for (final Computation param: parameters) + { + sb.append(" "); + sb.append(param.toString()); + } + + sb.append(")"); + + return sb.toString(); + } +} diff --git a/src/core/src/tonkadur/wyrd/v1/lang/instruction/AddTextOption.java b/src/core/src/tonkadur/wyrd/v1/lang/instruction/AddTextOption.java new file mode 100644 index 0000000..d89cbee --- /dev/null +++ b/src/core/src/tonkadur/wyrd/v1/lang/instruction/AddTextOption.java @@ -0,0 +1,50 @@ +package tonkadur.wyrd.v1.lang.instruction; + +import tonkadur.wyrd.v1.lang.meta.Computation; +import tonkadur.wyrd.v1.lang.meta.Instruction; +import tonkadur.wyrd.v1.lang.meta.InstructionVisitor; + +public class AddTextOption extends Instruction +{ + /***************************************************************************/ + /**** MEMBERS **************************************************************/ + /***************************************************************************/ + protected final Computation label; + + /***************************************************************************/ + /**** PUBLIC ***************************************************************/ + /***************************************************************************/ + /**** Constructors *********************************************************/ + public AddTextOption (final Computation label) + { + this.label = label; + } + + /**** Accessors ************************************************************/ + public Computation get_label () + { + return label; + } + + @Override + public void get_visited_by (final InstructionVisitor iv) + throws Throwable + { + iv.visit_add_text_option(this); + } + + /**** Misc. ****************************************************************/ + @Override + public String toString () + { + final StringBuilder sb; + + sb = new StringBuilder(); + + sb.append("(AddTextOption "); + sb.append(label.toString()); + sb.append(")"); + + return sb.toString(); + } +} diff --git a/src/core/src/tonkadur/wyrd/v1/lang/instruction/EventCall.java b/src/core/src/tonkadur/wyrd/v1/lang/instruction/EventCall.java deleted file mode 100644 index 221d47d..0000000 --- a/src/core/src/tonkadur/wyrd/v1/lang/instruction/EventCall.java +++ /dev/null @@ -1,66 +0,0 @@ -package tonkadur.wyrd.v1.lang.instruction; - -import java.util.List; - -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 -{ - /***************************************************************************/ - /**** MEMBERS **************************************************************/ - /***************************************************************************/ - protected final String name; - protected final List parameters; - - /***************************************************************************/ - /**** PUBLIC ***************************************************************/ - /***************************************************************************/ - /**** Constructors *********************************************************/ - public EventCall (final String name, final List parameters) - { - this.name = name; - this.parameters = parameters; - } - - /**** Accessors ************************************************************/ - public String get_name () - { - return name; - } - - public List get_parameters () - { - return parameters; - } - - @Override - public void get_visited_by (final InstructionVisitor iv) - throws Throwable - { - iv.visit_event_call(this); - } - - /**** Misc. ****************************************************************/ - @Override - public String toString () - { - final StringBuilder sb; - - sb = new StringBuilder(); - - sb.append("(EventCall "); - sb.append(name); - - for (final Computation param: parameters) - { - sb.append(" "); - sb.append(param.toString()); - } - - sb.append(")"); - - return sb.toString(); - } -} diff --git a/src/core/src/tonkadur/wyrd/v1/lang/instruction/ExtraInstruction.java b/src/core/src/tonkadur/wyrd/v1/lang/instruction/ExtraInstruction.java new file mode 100644 index 0000000..08b0bfc --- /dev/null +++ b/src/core/src/tonkadur/wyrd/v1/lang/instruction/ExtraInstruction.java @@ -0,0 +1,70 @@ +package tonkadur.wyrd.v1.lang.instruction; + +import java.util.List; + +import tonkadur.wyrd.v1.lang.meta.Computation; +import tonkadur.wyrd.v1.lang.meta.Instruction; +import tonkadur.wyrd.v1.lang.meta.InstructionVisitor; + +public class ExtraInstruction extends Instruction +{ + /***************************************************************************/ + /**** MEMBERS **************************************************************/ + /***************************************************************************/ + protected final String name; + protected final List parameters; + + /***************************************************************************/ + /**** PUBLIC ***************************************************************/ + /***************************************************************************/ + /**** Constructors *********************************************************/ + public ExtraInstruction + ( + final String name, + final List parameters + ) + { + this.name = name; + this.parameters = parameters; + } + + /**** Accessors ************************************************************/ + public String get_name () + { + return name; + } + + public List get_parameters () + { + return parameters; + } + + @Override + public void get_visited_by (final InstructionVisitor iv) + throws Throwable + { + iv.visit_extra_instruction(this); + } + + /**** Misc. ****************************************************************/ + @Override + public String toString () + { + final StringBuilder sb; + + sb = new StringBuilder(); + + sb.append("(ExtraInstruction "); + sb.append(name); + + for (final Computation param: parameters) + { + sb.append(" "); + sb.append(param.toString()); + } + + sb.append(")"); + + return sb.toString(); + } +} diff --git a/src/core/src/tonkadur/wyrd/v1/lang/instruction/ResolveChoice.java b/src/core/src/tonkadur/wyrd/v1/lang/instruction/ResolveChoice.java new file mode 100644 index 0000000..23adce1 --- /dev/null +++ b/src/core/src/tonkadur/wyrd/v1/lang/instruction/ResolveChoice.java @@ -0,0 +1,33 @@ +package tonkadur.wyrd.v1.lang.instruction; + +import tonkadur.wyrd.v1.lang.meta.Instruction; +import tonkadur.wyrd.v1.lang.meta.InstructionVisitor; + +public class ResolveChoice extends Instruction +{ + /***************************************************************************/ + /**** MEMBERS **************************************************************/ + /***************************************************************************/ + + /***************************************************************************/ + /**** PUBLIC ***************************************************************/ + /***************************************************************************/ + /**** Constructors *********************************************************/ + public ResolveChoice () + { + } + + @Override + public void get_visited_by (final InstructionVisitor iv) + throws Throwable + { + iv.visit_resolve_choice(this); + } + + /**** Misc. ****************************************************************/ + @Override + public String toString () + { + return "(ResolveChoice)"; + } +} diff --git a/src/core/src/tonkadur/wyrd/v1/lang/instruction/ResolveChoices.java b/src/core/src/tonkadur/wyrd/v1/lang/instruction/ResolveChoices.java deleted file mode 100644 index 27fdc79..0000000 --- a/src/core/src/tonkadur/wyrd/v1/lang/instruction/ResolveChoices.java +++ /dev/null @@ -1,33 +0,0 @@ -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 -{ - /***************************************************************************/ - /**** MEMBERS **************************************************************/ - /***************************************************************************/ - - /***************************************************************************/ - /**** PUBLIC ***************************************************************/ - /***************************************************************************/ - /**** Constructors *********************************************************/ - public ResolveChoices () - { - } - - @Override - public void get_visited_by (final InstructionVisitor iv) - throws Throwable - { - iv.visit_resolve_choices(this); - } - - /**** Misc. ****************************************************************/ - @Override - public String toString () - { - return "(ResolveChoices)"; - } -} 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"); } -- cgit v1.2.3-70-g09d2