| summaryrefslogtreecommitdiff |
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-08-03 19:19:03 +0200 |
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-08-03 19:19:03 +0200 |
| commit | fc25970b2215d2f63ac26c05ca493aae2962310e (patch) | |
| tree | 017d23336015dcf07ff2bbcb585f73a05eb300bb | |
| parent | 4b58719598fccac6decb92ba787b40178e2f1f32 (diff) | |
Adds visitors to Wyrd. End instruction to Fate.
29 files changed, 322 insertions, 2 deletions
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/End.java b/src/core/src/tonkadur/fate/v1/lang/instruction/End.java new file mode 100644 index 0000000..e39f435 --- /dev/null +++ b/src/core/src/tonkadur/fate/v1/lang/instruction/End.java @@ -0,0 +1,37 @@ +package tonkadur.fate.v1.lang.instruction; + +import tonkadur.parser.Origin; + +import tonkadur.fate.v1.lang.meta.InstructionVisitor; +import tonkadur.fate.v1.lang.meta.Instruction; + +public class End extends Instruction +{ + /***************************************************************************/ + /**** MEMBERS **************************************************************/ + /***************************************************************************/ + + /***************************************************************************/ + /**** PUBLIC ***************************************************************/ + /***************************************************************************/ + /**** Constructors *********************************************************/ + public End (final Origin origin) + { + super(origin); + } + + /**** Accessors ************************************************************/ + @Override + public void get_visited_by (final InstructionVisitor iv) + throws Throwable + { + iv.visit_end(this); + } + + /**** Misc. ****************************************************************/ + @Override + public String toString () + { + return "(End)"; + } +} 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 7550895..41167bb 100644 --- a/src/core/src/tonkadur/fate/v1/lang/meta/InstructionVisitor.java +++ b/src/core/src/tonkadur/fate/v1/lang/meta/InstructionVisitor.java @@ -14,6 +14,9 @@ public interface InstructionVisitor public void visit_break (final Break n) throws Throwable; + public void visit_end (final End n) + throws Throwable; + public void visit_free (final Free n) throws Throwable; diff --git a/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 b/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 index f5868fb..52722df 100644 --- a/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 +++ b/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 @@ -597,6 +597,20 @@ returns [Instruction result] ); } + | END_KW + { + /* TODO */ + $result = + new End + ( + CONTEXT.get_origin_at + ( + ($END_KW.getLine()), + ($END_KW.getCharPositionInLine()) + ) + ); + } + | IGNORE_ERROR_KW WORD WS+ general_fate_instr WS* R_PAREN { /* TODO: temporarily disable an compiler error category */ 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 6eaf4b8..b4c0e38 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 @@ -26,6 +26,7 @@ import tonkadur.wyrd.v1.lang.computation.ValueOf; import tonkadur.wyrd.v1.lang.instruction.AddChoice; 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.Remove; import tonkadur.wyrd.v1.lang.instruction.ResolveChoices; @@ -1074,6 +1075,16 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor } @Override + public void visit_end + ( + final tonkadur.fate.v1.lang.instruction.End n + ) + throws Throwable + { + result.add(new End()); + } + + @Override public void visit_break ( final tonkadur.fate.v1.lang.instruction.Break n diff --git a/src/core/src/tonkadur/wyrd/v1/lang/computation/AddRichTextEffect.java b/src/core/src/tonkadur/wyrd/v1/lang/computation/AddRichTextEffect.java index e159b5f..30a5538 100644 --- a/src/core/src/tonkadur/wyrd/v1/lang/computation/AddRichTextEffect.java +++ b/src/core/src/tonkadur/wyrd/v1/lang/computation/AddRichTextEffect.java @@ -5,6 +5,7 @@ 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 { @@ -42,6 +43,13 @@ public class AddRichTextEffect extends RichText 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 () diff --git a/src/core/src/tonkadur/wyrd/v1/lang/computation/Cast.java b/src/core/src/tonkadur/wyrd/v1/lang/computation/Cast.java index 8235dfb..4c86ca8 100644 --- a/src/core/src/tonkadur/wyrd/v1/lang/computation/Cast.java +++ b/src/core/src/tonkadur/wyrd/v1/lang/computation/Cast.java @@ -3,6 +3,7 @@ package tonkadur.wyrd.v1.lang.computation; import tonkadur.wyrd.v1.lang.type.Type; import tonkadur.wyrd.v1.lang.meta.Computation; +import tonkadur.wyrd.v1.lang.meta.ComputationVisitor; public class Cast extends Computation { @@ -28,6 +29,12 @@ public class Cast extends Computation return parent; } + @Override + public void get_visited_by (final ComputationVisitor cv) + throws Throwable + { + cv.visit_cast(this); + } /**** Misc. ****************************************************************/ @Override public String toString () diff --git a/src/core/src/tonkadur/wyrd/v1/lang/computation/Constant.java b/src/core/src/tonkadur/wyrd/v1/lang/computation/Constant.java index e871ecc..5b3a90e 100644 --- a/src/core/src/tonkadur/wyrd/v1/lang/computation/Constant.java +++ b/src/core/src/tonkadur/wyrd/v1/lang/computation/Constant.java @@ -3,6 +3,7 @@ package tonkadur.wyrd.v1.lang.computation; import tonkadur.wyrd.v1.lang.type.Type; import tonkadur.wyrd.v1.lang.meta.Computation; +import tonkadur.wyrd.v1.lang.meta.ComputationVisitor; public class Constant extends Computation { @@ -43,6 +44,12 @@ public class Constant extends Computation return as_string; } + @Override + public void get_visited_by (final ComputationVisitor cv) + throws Throwable + { + cv.visit_constant(this); + } /**** Misc. ****************************************************************/ @Override public String toString () diff --git a/src/core/src/tonkadur/wyrd/v1/lang/computation/IfElseComputation.java b/src/core/src/tonkadur/wyrd/v1/lang/computation/IfElseComputation.java index 6848251..32f72e2 100644 --- a/src/core/src/tonkadur/wyrd/v1/lang/computation/IfElseComputation.java +++ b/src/core/src/tonkadur/wyrd/v1/lang/computation/IfElseComputation.java @@ -3,6 +3,7 @@ package tonkadur.wyrd.v1.lang.computation; import tonkadur.wyrd.v1.lang.type.Type; import tonkadur.wyrd.v1.lang.meta.Computation; +import tonkadur.wyrd.v1.lang.meta.ComputationVisitor; public class IfElseComputation extends Computation { @@ -47,6 +48,13 @@ public class IfElseComputation extends Computation return if_false; } + @Override + public void get_visited_by (final ComputationVisitor cv) + throws Throwable + { + cv.visit_if_else_computation(this); + } + /**** Misc. ****************************************************************/ @Override public String toString () diff --git a/src/core/src/tonkadur/wyrd/v1/lang/computation/New.java b/src/core/src/tonkadur/wyrd/v1/lang/computation/New.java index 01af634..c9bcdd8 100644 --- a/src/core/src/tonkadur/wyrd/v1/lang/computation/New.java +++ b/src/core/src/tonkadur/wyrd/v1/lang/computation/New.java @@ -6,6 +6,7 @@ import tonkadur.wyrd.v1.lang.type.Type; import tonkadur.wyrd.v1.lang.type.PointerType; import tonkadur.wyrd.v1.lang.meta.Computation; +import tonkadur.wyrd.v1.lang.meta.ComputationVisitor; public class New extends Computation { @@ -31,6 +32,13 @@ public class New extends Computation return target_type; } + @Override + public void get_visited_by (final ComputationVisitor cv) + throws Throwable + { + cv.visit_new(this); + } + /**** Misc. ****************************************************************/ @Override public String 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 2cffe91..74accf3 100644 --- a/src/core/src/tonkadur/wyrd/v1/lang/computation/Newline.java +++ b/src/core/src/tonkadur/wyrd/v1/lang/computation/Newline.java @@ -2,6 +2,8 @@ package tonkadur.wyrd.v1.lang.computation; import java.util.ArrayList; +import tonkadur.wyrd.v1.lang.meta.ComputationVisitor; + public class Newline extends RichText { /***************************************************************************/ @@ -17,6 +19,14 @@ public class Newline extends RichText super(new ArrayList()); } + /**** Accessors ************************************************************/ + @Override + public void get_visited_by (final ComputationVisitor cv) + throws Throwable + { + cv.visit_newline(this); + } + /**** Misc. ****************************************************************/ @Override public String toString () diff --git a/src/core/src/tonkadur/wyrd/v1/lang/computation/Operation.java b/src/core/src/tonkadur/wyrd/v1/lang/computation/Operation.java index 78cac66..6806936 100644 --- a/src/core/src/tonkadur/wyrd/v1/lang/computation/Operation.java +++ b/src/core/src/tonkadur/wyrd/v1/lang/computation/Operation.java @@ -5,6 +5,7 @@ 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 Operation extends Computation { @@ -203,6 +204,14 @@ public class Operation extends Computation return param_b; } + /**** Accessors ************************************************************/ + @Override + public void get_visited_by (final ComputationVisitor cv) + throws Throwable + { + cv.visit_operation(this); + } + /**** Misc. ****************************************************************/ @Override public String toString () diff --git a/src/core/src/tonkadur/wyrd/v1/lang/computation/Ref.java b/src/core/src/tonkadur/wyrd/v1/lang/computation/Ref.java index 5fe62d3..7e4f3ea 100644 --- a/src/core/src/tonkadur/wyrd/v1/lang/computation/Ref.java +++ b/src/core/src/tonkadur/wyrd/v1/lang/computation/Ref.java @@ -4,6 +4,7 @@ import tonkadur.wyrd.v1.lang.type.Type; import tonkadur.wyrd.v1.lang.type.PointerType; import tonkadur.wyrd.v1.lang.meta.Computation; +import tonkadur.wyrd.v1.lang.meta.ComputationVisitor; public class Ref extends Computation { @@ -36,6 +37,13 @@ public class Ref extends Computation return target_type; } + @Override + public void get_visited_by (final ComputationVisitor cv) + throws Throwable + { + cv.visit_ref(this); + } + /**** Misc. ****************************************************************/ @Override public String toString () diff --git a/src/core/src/tonkadur/wyrd/v1/lang/computation/RelativeRef.java b/src/core/src/tonkadur/wyrd/v1/lang/computation/RelativeRef.java index 56f8281..b37ab86 100644 --- a/src/core/src/tonkadur/wyrd/v1/lang/computation/RelativeRef.java +++ b/src/core/src/tonkadur/wyrd/v1/lang/computation/RelativeRef.java @@ -3,6 +3,7 @@ package tonkadur.wyrd.v1.lang.computation; import tonkadur.wyrd.v1.lang.type.Type; import tonkadur.wyrd.v1.lang.meta.Computation; +import tonkadur.wyrd.v1.lang.meta.ComputationVisitor; public class RelativeRef extends Ref { @@ -33,6 +34,13 @@ public class RelativeRef extends Ref return member; } + @Override + public void get_visited_by (final ComputationVisitor cv) + throws Throwable + { + cv.visit_relative_ref(this); + } + /**** Misc. ****************************************************************/ @Override public String toString () diff --git a/src/core/src/tonkadur/wyrd/v1/lang/computation/RichText.java b/src/core/src/tonkadur/wyrd/v1/lang/computation/RichText.java index 3a0d3e8..2a0a001 100644 --- a/src/core/src/tonkadur/wyrd/v1/lang/computation/RichText.java +++ b/src/core/src/tonkadur/wyrd/v1/lang/computation/RichText.java @@ -5,6 +5,7 @@ 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 { @@ -30,6 +31,13 @@ public class RichText extends Computation return content; } + @Override + public void get_visited_by (final ComputationVisitor cv) + throws Throwable + { + cv.visit_rich_text(this); + } + /**** Misc. ****************************************************************/ @Override public String toString () diff --git a/src/core/src/tonkadur/wyrd/v1/lang/computation/Size.java b/src/core/src/tonkadur/wyrd/v1/lang/computation/Size.java index ff41060..4f56656 100644 --- a/src/core/src/tonkadur/wyrd/v1/lang/computation/Size.java +++ b/src/core/src/tonkadur/wyrd/v1/lang/computation/Size.java @@ -3,6 +3,7 @@ package tonkadur.wyrd.v1.lang.computation; import tonkadur.wyrd.v1.lang.type.Type; import tonkadur.wyrd.v1.lang.meta.Computation; +import tonkadur.wyrd.v1.lang.meta.ComputationVisitor; public class Size extends Computation { @@ -28,6 +29,13 @@ public class Size extends Computation return collection; } + @Override + public void get_visited_by (final ComputationVisitor cv) + throws Throwable + { + cv.visit_size(this); + } + /**** Misc. ****************************************************************/ @Override public String toString () diff --git a/src/core/src/tonkadur/wyrd/v1/lang/computation/ValueOf.java b/src/core/src/tonkadur/wyrd/v1/lang/computation/ValueOf.java index f8abf6b..365fdf2 100644 --- a/src/core/src/tonkadur/wyrd/v1/lang/computation/ValueOf.java +++ b/src/core/src/tonkadur/wyrd/v1/lang/computation/ValueOf.java @@ -3,6 +3,7 @@ package tonkadur.wyrd.v1.lang.computation; import tonkadur.wyrd.v1.lang.type.Type; import tonkadur.wyrd.v1.lang.meta.Computation; +import tonkadur.wyrd.v1.lang.meta.ComputationVisitor; public class ValueOf extends Computation { @@ -35,6 +36,13 @@ public class ValueOf extends Computation return parent; } + @Override + public void get_visited_by (final ComputationVisitor cv) + throws Throwable + { + cv.visit_value_of(this); + } + /**** Misc. ****************************************************************/ @Override public String 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 index f16586a..e8da2c5 100644 --- a/src/core/src/tonkadur/wyrd/v1/lang/instruction/AddChoice.java +++ b/src/core/src/tonkadur/wyrd/v1/lang/instruction/AddChoice.java @@ -2,6 +2,7 @@ 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 { @@ -32,6 +33,13 @@ public class AddChoice extends Instruction return address; } + @Override + public void get_visited_by (final InstructionVisitor iv) + throws Throwable + { + iv.visit_add_choice(this); + } + /**** Misc. ****************************************************************/ @Override public String toString () diff --git a/src/core/src/tonkadur/wyrd/v1/lang/instruction/Assert.java b/src/core/src/tonkadur/wyrd/v1/lang/instruction/Assert.java index 393494c..7bfa25b 100644 --- a/src/core/src/tonkadur/wyrd/v1/lang/instruction/Assert.java +++ b/src/core/src/tonkadur/wyrd/v1/lang/instruction/Assert.java @@ -2,6 +2,7 @@ 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 Assert extends Instruction { @@ -25,6 +26,13 @@ public class Assert extends Instruction return condition; } + @Override + public void get_visited_by (final InstructionVisitor iv) + throws Throwable + { + iv.visit_assert(this); + } + /**** Misc. ****************************************************************/ @Override public String toString () diff --git a/src/core/src/tonkadur/wyrd/v1/lang/instruction/Display.java b/src/core/src/tonkadur/wyrd/v1/lang/instruction/Display.java index 81ef31f..4f74403 100644 --- a/src/core/src/tonkadur/wyrd/v1/lang/instruction/Display.java +++ b/src/core/src/tonkadur/wyrd/v1/lang/instruction/Display.java @@ -2,6 +2,7 @@ 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 Display extends Instruction { @@ -25,6 +26,13 @@ public class Display extends Instruction return content; } + @Override + public void get_visited_by (final InstructionVisitor iv) + throws Throwable + { + iv.visit_display(this); + } + /**** Misc. ****************************************************************/ @Override public String toString () diff --git a/src/core/src/tonkadur/wyrd/v1/lang/instruction/End.java b/src/core/src/tonkadur/wyrd/v1/lang/instruction/End.java index 4bfa97d..46eaa85 100644 --- a/src/core/src/tonkadur/wyrd/v1/lang/instruction/End.java +++ b/src/core/src/tonkadur/wyrd/v1/lang/instruction/End.java @@ -1,6 +1,7 @@ package tonkadur.wyrd.v1.lang.instruction; import tonkadur.wyrd.v1.lang.meta.Instruction; +import tonkadur.wyrd.v1.lang.meta.InstructionVisitor; public class End extends Instruction { @@ -16,6 +17,13 @@ public class End extends Instruction { } + @Override + public void get_visited_by (final InstructionVisitor iv) + throws Throwable + { + iv.visit_end(this); + } + /**** Misc. ****************************************************************/ @Override public String 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 index 4f27f35..221d47d 100644 --- a/src/core/src/tonkadur/wyrd/v1/lang/instruction/EventCall.java +++ b/src/core/src/tonkadur/wyrd/v1/lang/instruction/EventCall.java @@ -4,6 +4,7 @@ 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 { @@ -34,6 +35,13 @@ public class EventCall extends Instruction return parameters; } + @Override + public void get_visited_by (final InstructionVisitor iv) + throws Throwable + { + iv.visit_event_call(this); + } + /**** Misc. ****************************************************************/ @Override public String toString () diff --git a/src/core/src/tonkadur/wyrd/v1/lang/instruction/Remove.java b/src/core/src/tonkadur/wyrd/v1/lang/instruction/Remove.java index 28a2046..97e046b 100644 --- a/src/core/src/tonkadur/wyrd/v1/lang/instruction/Remove.java +++ b/src/core/src/tonkadur/wyrd/v1/lang/instruction/Remove.java @@ -3,6 +3,7 @@ package tonkadur.wyrd.v1.lang.instruction; import tonkadur.wyrd.v1.lang.computation.Ref; import tonkadur.wyrd.v1.lang.meta.Instruction; +import tonkadur.wyrd.v1.lang.meta.InstructionVisitor; public class Remove extends Instruction { @@ -26,6 +27,13 @@ public class Remove extends Instruction return reference; } + @Override + public void get_visited_by (final InstructionVisitor iv) + throws Throwable + { + iv.visit_remove(this); + } + /**** Misc. ****************************************************************/ @Override public String toString () diff --git a/src/core/src/tonkadur/wyrd/v1/lang/instruction/ResolveChoices.java b/src/core/src/tonkadur/wyrd/v1/lang/instruction/ResolveChoices.java index e0f13c1..27fdc79 100644 --- a/src/core/src/tonkadur/wyrd/v1/lang/instruction/ResolveChoices.java +++ b/src/core/src/tonkadur/wyrd/v1/lang/instruction/ResolveChoices.java @@ -1,6 +1,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 { @@ -16,6 +17,13 @@ public class ResolveChoices extends Instruction { } + @Override + public void get_visited_by (final InstructionVisitor iv) + throws Throwable + { + iv.visit_resolve_choices(this); + } + /**** Misc. ****************************************************************/ @Override public String toString () diff --git a/src/core/src/tonkadur/wyrd/v1/lang/instruction/SetPC.java b/src/core/src/tonkadur/wyrd/v1/lang/instruction/SetPC.java index d02fcfd..3534bba 100644 --- a/src/core/src/tonkadur/wyrd/v1/lang/instruction/SetPC.java +++ b/src/core/src/tonkadur/wyrd/v1/lang/instruction/SetPC.java @@ -1,7 +1,8 @@ package tonkadur.wyrd.v1.lang.instruction; -import tonkadur.wyrd.v1.lang.meta.Instruction; import tonkadur.wyrd.v1.lang.meta.Computation; +import tonkadur.wyrd.v1.lang.meta.Instruction; +import tonkadur.wyrd.v1.lang.meta.InstructionVisitor; public class SetPC extends Instruction { @@ -25,6 +26,13 @@ public class SetPC extends Instruction return value; } + @Override + public void get_visited_by (final InstructionVisitor iv) + throws Throwable + { + iv.visit_set_pc(this); + } + /**** Misc. ****************************************************************/ @Override public String toString () diff --git a/src/core/src/tonkadur/wyrd/v1/lang/instruction/SetValue.java b/src/core/src/tonkadur/wyrd/v1/lang/instruction/SetValue.java index 35656d7..a850094 100644 --- a/src/core/src/tonkadur/wyrd/v1/lang/instruction/SetValue.java +++ b/src/core/src/tonkadur/wyrd/v1/lang/instruction/SetValue.java @@ -2,8 +2,9 @@ package tonkadur.wyrd.v1.lang.instruction; import tonkadur.wyrd.v1.lang.computation.Ref; -import tonkadur.wyrd.v1.lang.meta.Instruction; import tonkadur.wyrd.v1.lang.meta.Computation; +import tonkadur.wyrd.v1.lang.meta.Instruction; +import tonkadur.wyrd.v1.lang.meta.InstructionVisitor; public class SetValue extends Instruction { @@ -34,6 +35,13 @@ public class SetValue extends Instruction return value; } + @Override + public void get_visited_by (final InstructionVisitor iv) + throws Throwable + { + iv.visit_set_value(this); + } + /**** Misc. ****************************************************************/ @Override public String toString () diff --git a/src/core/src/tonkadur/wyrd/v1/lang/meta/Computation.java b/src/core/src/tonkadur/wyrd/v1/lang/meta/Computation.java index 8745b24..f61de47 100644 --- a/src/core/src/tonkadur/wyrd/v1/lang/meta/Computation.java +++ b/src/core/src/tonkadur/wyrd/v1/lang/meta/Computation.java @@ -26,4 +26,10 @@ public abstract class Computation { return type; } + + public void get_visited_by (final ComputationVisitor cv) + throws Throwable + { + throw new Exception("Unhandled Wyrd AST Computation Node."); + } } diff --git a/src/core/src/tonkadur/wyrd/v1/lang/meta/ComputationVisitor.java b/src/core/src/tonkadur/wyrd/v1/lang/meta/ComputationVisitor.java new file mode 100644 index 0000000..a0e1dc1 --- /dev/null +++ b/src/core/src/tonkadur/wyrd/v1/lang/meta/ComputationVisitor.java @@ -0,0 +1,42 @@ +package tonkadur.wyrd.v1.lang.meta; + +import tonkadur.wyrd.v1.lang.computation.*; + +public interface ComputationVisitor +{ + public void visit_add_rich_text_effect (final AddRichTextEffect n) + throws Exception; + + public void visit_cast (final Cast n) + throws Exception; + + public void visit_constant (final Constant n) + throws Exception; + + public void visit_if_else_computation (final IfElseComputation n) + throws Exception; + + public void visit_new (final New n) + throws Exception; + + public void visit_newline (final Newline n) + throws Exception; + + public void visit_operation (final Operation n) + throws Exception; + + public void visit_ref (final Ref n) + throws Exception; + + public void visit_relative_ref (final RelativeRef n) + throws Exception; + + public void visit_rich_text (final RichText n) + throws Exception; + + public void visit_size (final Size n) + throws Exception; + + public void visit_value_of (final ValueOf n) + throws Exception; +} diff --git a/src/core/src/tonkadur/wyrd/v1/lang/meta/Instruction.java b/src/core/src/tonkadur/wyrd/v1/lang/meta/Instruction.java index 5ca1859..7069736 100644 --- a/src/core/src/tonkadur/wyrd/v1/lang/meta/Instruction.java +++ b/src/core/src/tonkadur/wyrd/v1/lang/meta/Instruction.java @@ -2,4 +2,9 @@ package tonkadur.wyrd.v1.lang.meta; public abstract class Instruction { + public void get_visited_by (final InstructionVisitor iv) + throws Throwable + { + throw new Exception("Unhandled Wyrd AST Instruction Node."); + } } diff --git a/src/core/src/tonkadur/wyrd/v1/lang/meta/InstructionVisitor.java b/src/core/src/tonkadur/wyrd/v1/lang/meta/InstructionVisitor.java new file mode 100644 index 0000000..cf28ae8 --- /dev/null +++ b/src/core/src/tonkadur/wyrd/v1/lang/meta/InstructionVisitor.java @@ -0,0 +1,33 @@ +package tonkadur.wyrd.v1.lang.meta; + +import tonkadur.wyrd.v1.lang.instruction.*; + +public interface InstructionVisitor +{ + public void visit_add_choice (final AddChoice n) + throws Exception; + + public void visit_assert (final Assert n) + throws Exception; + + public void visit_display (final Display n) + throws Exception; + + public void visit_end (final End n) + throws Exception; + + public void visit_event_call (final EventCall n) + throws Exception; + + public void visit_remove (final Remove n) + throws Exception; + + public void visit_resolve_choices (final ResolveChoices n) + throws Exception; + + public void visit_set_pc (final SetPC n) + throws Exception; + + public void visit_set_value (final SetValue n) + throws Exception; +} |


