| 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 /src/core | |
| parent | 4b58719598fccac6decb92ba787b40178e2f1f32 (diff) | |
Adds visitors to Wyrd. End instruction to Fate.
Diffstat (limited to 'src/core')
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; +} | 


