diff options
| -rw-r--r-- | dice-lang/src/bjc/dicelang/CLIArgsParser.java | 4 | ||||
| -rw-r--r-- | dice-lang/src/bjc/dicelang/Errors.java | 18 | ||||
| -rw-r--r-- | dice-lang/src/bjc/dicelang/util/ResourceLoader.java | 40 |
3 files changed, 52 insertions, 10 deletions
diff --git a/dice-lang/src/bjc/dicelang/CLIArgsParser.java b/dice-lang/src/bjc/dicelang/CLIArgsParser.java index d62b1b8..16a8f34 100644 --- a/dice-lang/src/bjc/dicelang/CLIArgsParser.java +++ b/dice-lang/src/bjc/dicelang/CLIArgsParser.java @@ -190,10 +190,10 @@ public class CLIArgsParser { } } } catch (FileNotFoundException fnfex) { - Errors.inst.printError(EK_CLI_NOFILE, fName); + Errors.inst.printError(EK_MISC_NOFILE, fName); return -1; } catch (IOException ioex) { - Errors.inst.printError(EK_CLI_IOEX); + Errors.inst.printError(EK_MISC_IOEX, fName); return -1; } diff --git a/dice-lang/src/bjc/dicelang/Errors.java b/dice-lang/src/bjc/dicelang/Errors.java index 3af4e39..8689861 100644 --- a/dice-lang/src/bjc/dicelang/Errors.java +++ b/dice-lang/src/bjc/dicelang/Errors.java @@ -119,10 +119,12 @@ public class Errors { EK_CLI_MISARG, // Invalid define type EK_CLI_INVDFNTYPE, - // File not found - EK_CLI_NOFILE, + + // Misc. errors // Unknown I/O problem - EK_CLI_IOEX, + EK_MISC_IOEX, + // File not found + EK_MISC_NOFILE, } public static enum ErrorMode { @@ -134,7 +136,7 @@ public class Errors { public void printError(ErrorKey key, String... args) { switch (mode) { case WIZARD: - if (key == ErrorKey.EK_CLI_NOFILE) { + if (key == ErrorKey.EK_MISC_NOFILE) { System.out.println("\t? 404"); } else { System.out.println("\t? " + key.ordinal()); @@ -299,11 +301,11 @@ public class Errors { case EK_CLI_INVDFNTYPE: System.out.printf("\tERROR: Invalid define type %s\n", args[0]); break; - case EK_CLI_NOFILE: - System.out.printf("\tERROR: No such file %s\n", args[0]); + case EK_MISC_IOEX: + System.out.printf("\tERROR: I/O problem with file\n"); break; - case EK_CLI_IOEX: - System.out.printf("\tERROR: I/O problem with file"); + case EK_MISC_NOFILE: + System.out.printf("\tERROR: No such file %s\n", args[0]); break; default: System.out.printf("\tERROR ERROR: Unknown error key %s\n", key); diff --git a/dice-lang/src/bjc/dicelang/util/ResourceLoader.java b/dice-lang/src/bjc/dicelang/util/ResourceLoader.java new file mode 100644 index 0000000..1cb29b0 --- /dev/null +++ b/dice-lang/src/bjc/dicelang/util/ResourceLoader.java @@ -0,0 +1,40 @@ +package bjc.dicelang.util;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+
+import bjc.dicelang.Errors;
+
+import static bjc.dicelang.Errors.ErrorKey.*;
+
+/**
+ * Load resources bundled with DiceLang
+ *
+ * @author EVE
+ *
+ */
+public class ResourceLoader {
+ /**
+ * Loads a .help file from the data/help directory.
+ *
+ * @param name The name of the help file to load.
+ *
+ * @return The contents of the help file, or null if it could not be opened
+ */
+ public String[] loadHelpFile(String name) {
+ URL fle = this.getClass().getResource("/data/help/" + name + ".help");
+
+ try {
+ return Files.lines(Paths.get(fle.toURI())).toArray(sze -> new String[sze]);
+ } catch (IOException ioex) {
+ Errors.inst.printError(EK_MISC_IOEX, fle.toString());
+ } catch (URISyntaxException usex) {
+ Errors.inst.printError(EK_MISC_IOEX, fle.toString());
+ }
+
+ return null;
+ }
+}
|
