aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-06-11 19:43:26 +0100
committerMichael Williamson <mike@zwobble.org>2023-06-11 19:43:26 +0100
commit225ffd949c67664faceca9ab6d9b86b19a8a71dd (patch)
treedf5b29fa3daddcfe40aaf91469d42a3f7fe08a64 /src/main/java
parente088b0ef3f7d76e7b7a81db9594524392147c596 (diff)
Add subparser for generating instructions
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/cli/ShedCli.java18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/main/java/org/shedlang/compiler/cli/ShedCli.java b/src/main/java/org/shedlang/compiler/cli/ShedCli.java
index e4955200..169e6e7f 100644
--- a/src/main/java/org/shedlang/compiler/cli/ShedCli.java
+++ b/src/main/java/org/shedlang/compiler/cli/ShedCli.java
@@ -25,14 +25,24 @@ public class ShedCli {
var sourcePath = Paths.get(args.getString("source"));
var compiler = new ShedCompiler();
- compiler.compile(sourcePath);
+
+ switch (args.<Command>get("command")) {
+ case GENERATE_INSTRUCTIONS -> {
+ compiler.compile(sourcePath);
+ }
+ }
+
}
private static Namespace parseArgs(String[] args) {
var parser = ArgumentParsers.newFor("shed").build()
.defaultHelp(true);
- parser.addArgument("source").required(true);
+ var subparsers = parser.addSubparsers();
+
+ var generateInstructionsSubParser = subparsers.addParser("generate-instructions");
+ generateInstructionsSubParser.setDefault("command", Command.GENERATE_INSTRUCTIONS);
+ generateInstructionsSubParser.addArgument("source").required(true);
try {
return parser.parseArgs(args);
@@ -42,4 +52,8 @@ public class ShedCli {
throw new RuntimeException(e);
}
}
+
+ private enum Command {
+ GENERATE_INSTRUCTIONS,
+ }
}