aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
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,
+ }
}