summaryrefslogtreecommitdiff
path: root/dice-lang/src/bjc/dicelang/CLIArgsParser.java
diff options
context:
space:
mode:
Diffstat (limited to 'dice-lang/src/bjc/dicelang/CLIArgsParser.java')
-rw-r--r--dice-lang/src/bjc/dicelang/CLIArgsParser.java89
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;
}