From 3ddd062d60d621971af59b480ba70e8bf9e705f1 Mon Sep 17 00:00:00 2001 From: Ben Culkin Date: Sat, 21 Nov 2020 18:04:20 -0500 Subject: Rudimentary CLI for new die implementation --- .../neodice/commands/ShowBindingsCommand.java | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 dice/src/example/java/bjc/dicelang/neodice/commands/ShowBindingsCommand.java (limited to 'dice/src/example/java/bjc/dicelang/neodice/commands/ShowBindingsCommand.java') diff --git a/dice/src/example/java/bjc/dicelang/neodice/commands/ShowBindingsCommand.java b/dice/src/example/java/bjc/dicelang/neodice/commands/ShowBindingsCommand.java new file mode 100644 index 0000000..fe2ac89 --- /dev/null +++ b/dice/src/example/java/bjc/dicelang/neodice/commands/ShowBindingsCommand.java @@ -0,0 +1,30 @@ +package bjc.dicelang.neodice.commands; + +import static bjc.dicelang.neodice.statements.VoidStatementValue.*; + +import java.util.*; + +import bjc.dicelang.neodice.*; +import bjc.dicelang.neodice.statements.*; + +public class ShowBindingsCommand implements Command { + @Override + public StatementValue execute(Iterator words, DieBoxCLI state) { + state.output.printf("Showing all %d variables currently bound:", state.bindings.size()); + state.bindings.forEach((name, bound) -> { + state.output.printf("\t%t\t%s\n", name, bound); + }); + + return VOID_INST; + } + + @Override + public String shortHelp() { + return "print out all the variable bindings"; + } + + @Override + public String longHelp() { + return "Prints out all of the variable bindings that exist at the moment"; + } +} \ No newline at end of file -- cgit v1.2.3