| summaryrefslogtreecommitdiff |
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-12-29 00:31:55 +0100 |
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-12-29 00:31:55 +0100 |
| commit | c2a3d1d2778c53738cad8e647b70edc98da84b59 (patch) | |
| tree | 03967895b07a7924c3f46252c127d12f8a67deb6 | |
| parent | 13ba88ea95012581cf8c1926ecb0ae8123a56f21 (diff) | |
Starting a considerable refactoring...
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"); } |


