diff options
Diffstat (limited to 'dice-lang/src/bjc/dicelang/CLIArgsParser.java')
| -rw-r--r-- | dice-lang/src/bjc/dicelang/CLIArgsParser.java | 89 |
1 files changed, 46 insertions, 43 deletions
diff --git a/dice-lang/src/bjc/dicelang/CLIArgsParser.java b/dice-lang/src/bjc/dicelang/CLIArgsParser.java index 91917a0..e324e67 100644 --- a/dice-lang/src/bjc/dicelang/CLIArgsParser.java +++ b/dice-lang/src/bjc/dicelang/CLIArgsParser.java @@ -1,6 +1,10 @@ package bjc.dicelang; -import bjc.dicelang.util.ResourceLoader; +import static bjc.dicelang.Errors.ErrorKey.EK_CLI_INVDFNTYPE; +import static bjc.dicelang.Errors.ErrorKey.EK_CLI_MISARG; +import static bjc.dicelang.Errors.ErrorKey.EK_CLI_UNARG; +import static bjc.dicelang.Errors.ErrorKey.EK_MISC_IOEX; +import static bjc.dicelang.Errors.ErrorKey.EK_MISC_NOFILE; import java.io.FileInputStream; import java.io.FileNotFoundException; @@ -8,7 +12,7 @@ import java.io.IOException; import java.util.Arrays; import java.util.Scanner; -import static bjc.dicelang.Errors.ErrorKey.*; +import bjc.dicelang.util.ResourceLoader; /** * Parse CLI arguments. @@ -27,78 +31,78 @@ public class CLIArgsParser { * * @return Whether or not to continue to the DiceLang repl. */ - public static boolean parseArgs(String[] args, DiceLangEngine eng) { - if(args.length < 0) return true; + public static boolean parseArgs(final String[] args, final DiceLangEngine eng) { + if (args.length < 0) return true; - if(args.length == 1 && (args[0].equals("--help") || args[0].equals("-h"))) { - for(String lne : ResourceLoader.loadHelpFile("cli")) { + if (args.length == 1 && (args[0].equals("--help") || args[0].equals("-h"))) { + for (final String lne : ResourceLoader.loadHelpFile("cli")) { System.out.println(lne); } System.exit(0); } - for(int i = 0; i < args.length; i++) { - String arg = args[i]; + for (int i = 0; i < args.length; i++) { + final String arg = args[i]; - switch(arg) { + switch (arg) { case "-d": case "--debug": - if(!eng.toggleDebug()) { + if (!eng.toggleDebug()) { eng.toggleDebug(); } break; case "-nd": case "--no-debug": - if(eng.toggleDebug()) { + if (eng.toggleDebug()) { eng.toggleDebug(); } break; case "-po": case "--postfix": - if(!eng.togglePostfix()) { + if (!eng.togglePostfix()) { eng.togglePostfix(); } break; case "-npo": case "--no-postfix": - if(eng.togglePostfix()) { + if (eng.togglePostfix()) { eng.togglePostfix(); } break; case "-pr": case "--prefix": - if(!eng.togglePrefix()) { + if (!eng.togglePrefix()) { eng.togglePrefix(); } break; case "-npr": case "--no-prefix": - if(eng.togglePrefix()) { + if (eng.togglePrefix()) { eng.togglePrefix(); } break; case "-se": case "--stepeval": - if(!eng.toggleStepEval()) { + if (!eng.toggleStepEval()) { eng.toggleStepEval(); } break; case "-nse": case "--no-stepeval": - if(eng.toggleStepEval()) { + if (eng.toggleStepEval()) { eng.toggleStepEval(); } break; case "-D": case "--define": i = simpleDefine(i, args, eng); - if(i == -1) return false; + if (i == -1) return false; break; case "-df": case "--define-file": i = defineFile(i, args, eng); - if(i == -1) return false; + if (i == -1) return false; break; case "-ctf": case "--compiler-tweak-file": @@ -114,62 +118,61 @@ public class CLIArgsParser { return true; } - private static int simpleDefine(int i, String[] args, DiceLangEngine eng) { - if(i >= args.length - 1) { + private static int simpleDefine(final int i, final String[] args, final DiceLangEngine eng) { + if (i >= args.length - 1) { Errors.inst.printError(EK_CLI_MISARG, "define"); return -1; } - if(i >= args.length - 2) { - Define dfn = new Define(5, false, false, false, null, args[i + 1], Arrays.asList("")); + if (i >= args.length - 2) { + final Define dfn = new Define(5, false, false, false, null, args[i + 1], Arrays.asList("")); - if(dfn.inError) return -1; + if (dfn.inError) return -1; eng.addLineDefine(dfn); return i + 1; } - Define dfn = new Define(5, false, false, false, null, args[i + 1], Arrays.asList(args[i + 2])); + final Define dfn = new Define(5, false, false, false, null, args[i + 1], Arrays.asList(args[i + 2])); - if(dfn.inError) return -1; + if (dfn.inError) return -1; eng.addLineDefine(dfn); return i + 2; } - @SuppressWarnings("unused") - private static int defineFile(int i, String[] args, DiceLangEngine eng) { - if(i >= args.length - 1) { + private static int defineFile(final int i, final String[] args, final DiceLangEngine eng) { + if (i >= args.length - 1) { Errors.inst.printError(EK_CLI_MISARG, "define-file"); return -1; } - String fName = args[i + 1]; + final String fName = args[i + 1]; - try(FileInputStream fis = new FileInputStream(fName)) { - try(Scanner scan = new Scanner(fis)) { - while(scan.hasNextLine()) { - String ln = scan.nextLine(); + try (FileInputStream fis = new FileInputStream(fName)) { + try (Scanner scan = new Scanner(fis)) { + while (scan.hasNextLine()) { + final String ln = scan.nextLine(); - Define dfn = parseDefine(ln.substring(ln.indexOf(' '))); - if(dfn == null || dfn.inError) return -1; + final Define dfn = parseDefine(ln.substring(ln.indexOf(' '))); + if (dfn == null || dfn.inError) return -1; - if(ln.startsWith("line")) { + if (ln.startsWith("line")) { eng.addLineDefine(dfn); - } else if(ln.startsWith("token")) { + } else if (ln.startsWith("token")) { eng.addTokenDefine(dfn); } else { - String defnType = ln.substring(0, ln.indexOf(' ')); + final String defnType = ln.substring(0, ln.indexOf(' ')); Errors.inst.printError(EK_CLI_INVDFNTYPE, defnType); return -1; } } } - } catch(FileNotFoundException fnfex) { + } catch (final FileNotFoundException fnfex) { Errors.inst.printError(EK_MISC_NOFILE, fName); return -1; - } catch(IOException ioex) { + } catch (final IOException ioex) { Errors.inst.printError(EK_MISC_IOEX, fName); return -1; } @@ -177,8 +180,8 @@ public class CLIArgsParser { return i + 1; } - private static Define parseDefine(@SuppressWarnings("unused") String ln) { - Define res = null; + private static Define parseDefine(final String ln) { + final Define res = null; // @TODO move this functionality from DiceLangConsole to some // common ground where it can be used by both functions |
