| summaryrefslogtreecommitdiff | 
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2021-12-22 22:38:53 +0100 | 
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2021-12-22 22:38:53 +0100 | 
| commit | c0a0790ca48f3128242b3d322915a4cd2ffb1236 (patch) | |
| tree | aad6be3467a7d49db69d69b44549c0c3a9bf02b9 /src/core | |
| parent | 7bb7b8124fdcf7f9067737c4a387d5c675650a64 (diff) | |
Adds prompt_command.
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/src/tonkadur/fate/v1/lang/instruction/PromptCommand.java | 134 | ||||
| -rw-r--r-- | src/core/src/tonkadur/wyrd/v1/lang/instruction/PromptCommand.java | 81 | 
2 files changed, 215 insertions, 0 deletions
| diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/PromptCommand.java b/src/core/src/tonkadur/fate/v1/lang/instruction/PromptCommand.java new file mode 100644 index 0000000..a7da742 --- /dev/null +++ b/src/core/src/tonkadur/fate/v1/lang/instruction/PromptCommand.java @@ -0,0 +1,134 @@ +package tonkadur.fate.v1.lang.instruction; + +import tonkadur.parser.Origin; +import tonkadur.parser.ParsingError; + +import tonkadur.fate.v1.lang.type.Type; +import tonkadur.fate.v1.lang.type.PointerType; +import tonkadur.fate.v1.lang.type.CollectionType; + +import tonkadur.fate.v1.lang.meta.InstructionVisitor; +import tonkadur.fate.v1.lang.meta.Instruction; +import tonkadur.fate.v1.lang.meta.Computation; +import tonkadur.fate.v1.lang.meta.RecurrentChecks; + +public class PromptCommand extends Instruction +{ +   /***************************************************************************/ +   /**** MEMBERS **************************************************************/ +   /***************************************************************************/ +   protected final Computation target; +   protected final Computation min; +   protected final Computation max; +   protected final Computation label; + +   /***************************************************************************/ +   /**** PROTECTED ************************************************************/ +   /***************************************************************************/ +   /**** Constructors *********************************************************/ +   protected PromptCommand +   ( +      final Origin origin, +      final Computation target, +      final Computation min, +      final Computation max, +      final Computation label +   ) +   { +      super(origin); + +      this.target = target; +      this.min = min; +      this.max = max; +      this.label = label; +   } + +   /***************************************************************************/ +   /**** PUBLIC ***************************************************************/ +   /***************************************************************************/ +   /**** Constructors *********************************************************/ +   public static PromptCommand build +   ( +      final Origin origin, +      final Computation target, +      final Computation min, +      final Computation max, +      final Computation label +   ) +   throws ParsingError +   { +      target.expect_non_string(); +      min.expect_non_string(); +      max.expect_non_string(); +      label.expect_string(); + +      RecurrentChecks.assert_can_be_used_as(min, Type.INT); +      RecurrentChecks.assert_can_be_used_as(max, Type.INT); +      RecurrentChecks.assert_can_be_used_as(label, Type.TEXT); +      RecurrentChecks.assert_can_be_used_as +      ( +         target, +         new PointerType +         ( +            origin, +            CollectionType.build +            ( +               Origin.BASE_LANGUAGE, +               Type.STRING, +               false, +               "Command list" +            ), +            "pointer to command list" +         ) +      ); + +      return new PromptCommand(origin, target, min, max, label); +   } + +   /**** Accessors ************************************************************/ +   @Override +   public void get_visited_by (final InstructionVisitor iv) +   throws Throwable +   { +      iv.visit_prompt_command(this); +   } + +   public Computation get_target () +   { +      return target; +   } + +   public Computation get_max () +   { +      return max; +   } + +   public Computation get_min () +   { +      return min; +   } + +   public Computation get_label () +   { +      return label; +   } + +   /**** Misc. ****************************************************************/ +   @Override +   public String toString () +   { +      final StringBuilder sb = new StringBuilder(); + +      sb.append("(PromptCommand "); +      sb.append(target.toString()); +      sb.append(" "); +      sb.append(min.toString()); +      sb.append(" "); +      sb.append(max.toString()); +      sb.append(" "); +      sb.append(label.toString()); +      sb.append(")"); + +      return sb.toString(); +   } +} diff --git a/src/core/src/tonkadur/wyrd/v1/lang/instruction/PromptCommand.java b/src/core/src/tonkadur/wyrd/v1/lang/instruction/PromptCommand.java new file mode 100644 index 0000000..d116caf --- /dev/null +++ b/src/core/src/tonkadur/wyrd/v1/lang/instruction/PromptCommand.java @@ -0,0 +1,81 @@ +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 PromptCommand extends Instruction +{ +   /***************************************************************************/ +   /**** MEMBERS **************************************************************/ +   /***************************************************************************/ +   protected final Computation target; +   protected final Computation min, max, label; + +   /***************************************************************************/ +   /**** PUBLIC ***************************************************************/ +   /***************************************************************************/ +   /**** Constructors *********************************************************/ +   public PromptCommand +   ( +      final Computation target, +      final Computation min, +      final Computation max, +      final Computation label +   ) +   { +      this.target = target; +      this.min = min; +      this.max = max; +      this.label = label; +   } + +   /**** Accessors ************************************************************/ +   public Computation get_target () +   { +      return target; +   } + +   public Computation get_min () +   { +      return min; +   } + +   public Computation get_max () +   { +      return max; +   } + +   public Computation get_label () +   { +      return label; +   } + +   @Override +   public void get_visited_by (final InstructionVisitor iv) +   throws Throwable +   { +      iv.visit_prompt_command(this); +   } + +   /**** Misc. ****************************************************************/ +   @Override +   public String toString () +   { +      final StringBuilder sb; + +      sb = new StringBuilder(); + +      sb.append("(PromptCommand "); +      sb.append(target.toString()); +      sb.append(" "); +      sb.append(min.toString()); +      sb.append(" "); +      sb.append(max.toString()); +      sb.append(" "); +      sb.append(label.toString()); +      sb.append(")"); + +      return sb.toString(); +   } +} | 


