diff options
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/cli/ShedCli.java | 18 |
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, + } } |
