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, 41 insertions, 48 deletions
diff --git a/dice-lang/src/bjc/dicelang/CLIArgsParser.java b/dice-lang/src/bjc/dicelang/CLIArgsParser.java index 16a8f34..6b96ac6 100644 --- a/dice-lang/src/bjc/dicelang/CLIArgsParser.java +++ b/dice-lang/src/bjc/dicelang/CLIArgsParser.java @@ -10,28 +10,29 @@ import static bjc.dicelang.Errors.ErrorKey.*; /** * Parse CLI arguments. - * + * * @author Ben Culkin - * + * */ public class CLIArgsParser { /** * Parse the provided set of CLI arguments. - * - * @param args The CLI arguments to parse. - * @param eng The engine to affect with parsing. - * + * + * @param args + * The CLI arguments to parse. + * @param eng + * The engine to affect with parsing. + * * @return Whether or not to continue to the DiceLang repl. */ public static boolean parseArgs(String[] args, DiceLangEngine eng) { - if (args.length < 0) { - return true; - } + if(args.length < 0) return true; - if (args.length == 1 && (args[0].equals("--help") || args[0].equals("-h"))) { + if(args.length == 1 && (args[0].equals("--help") || args[0].equals("-h"))) { System.out.println("Help for DiceLang v0.2 CLI arguments:"); System.out.println("\t-d or --debug\tTurn on debug mode."); - System.out.println("\t\tTurns on debug mode, which prints additional information that may be useful."); + System.out.println( + "\t\tTurns on debug mode, which prints additional information that may be useful."); System.out.println("\t-nd or --no-debug\tTurn off debug mode."); System.out.println("\t\tTurns off debug mode."); System.out.println("\t-po or --postfix\tTurn on postfix mode."); @@ -39,84 +40,82 @@ public class CLIArgsParser { System.out.println("\t-npo or --no-postfix\tTurn off postfix mode."); System.out.println("\t\tTurns off postfix mode."); System.out.println("\t-pr or --prefix\tTurn on prefix mode."); - System.out.println("\t\tTurns on prefix mode, which reverses the expression instead of shunting it."); + System.out.println( + "\t\tTurns on prefix mode, which reverses the expression instead of shunting it."); System.out.println("\t-npr or --no-prefix\tTurn off prefix mode."); System.out.println("\t\tTurns off prefix mode."); System.out.println("\t-se or --step-eval\tTurn on step-eval mode."); - System.out.println("\t\tTurns on step-evaluation, which shows the evaluation process step-by-step. Currently slightly broken."); + System.out.println( + "\t\tTurns on step-evaluation, which shows the evaluation process step-by-step. Currently slightly broken."); System.out.println("\t-nse or --no-step-eval\tTurn off step-eval mode."); System.out.println("\t\tTurns off step-evaluation."); System.out.println("\t-D or "); System.exit(0); } - for (int i = 0; i < args.length; i++) { + for(int i = 0; i < args.length; i++) { String arg = args[i]; boolean succ = true; - 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": @@ -133,17 +132,15 @@ public class CLIArgsParser { } private static int simpleDefine(int i, String[] args, DiceLangEngine eng) { - if (i >= (args.length - 1)) { + if(i >= args.length - 1) { Errors.inst.printError(EK_CLI_MISARG, "define"); return -1; } - if (i >= (args.length - 2)) { + if(i >= args.length - 2) { 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; @@ -151,35 +148,31 @@ public class CLIArgsParser { 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; } private static int defineFile(int i, String[] args, DiceLangEngine eng) { - if (i >= (args.length - 1)) { + if(i >= args.length - 1) { Errors.inst.printError(EK_CLI_MISARG, "define-file"); return -1; } String fName = args[i + 1]; - try (FileInputStream fis = new FileInputStream(fName)) { - try (Scanner scan = new Scanner(fis)) { - while (scan.hasNextLine()) { + try(FileInputStream fis = new FileInputStream(fName)) { + try(Scanner scan = new Scanner(fis)) { + while(scan.hasNextLine()) { String ln = scan.nextLine(); Define dfn = parseDefine(ln.substring(ln.indexOf(' '))); - if (dfn == null || dfn.inError) { - return -1; - } + 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(' ')); @@ -189,10 +182,10 @@ public class CLIArgsParser { } } } - } catch (FileNotFoundException fnfex) { + } catch(FileNotFoundException fnfex) { Errors.inst.printError(EK_MISC_NOFILE, fName); return -1; - } catch (IOException ioex) { + } catch(IOException ioex) { Errors.inst.printError(EK_MISC_IOEX, fName); return -1; } |
