| 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 | |
| parent | 7bb7b8124fdcf7f9067737c4a387d5c675650a64 (diff) | |
Adds prompt_command.
Diffstat (limited to 'src')
| -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(); + } +} |


