summaryrefslogtreecommitdiff
path: root/dice-lang
diff options
context:
space:
mode:
authorEVE <EVE@EVE-PC>2017-03-14 12:07:52 -0400
committerEVE <EVE@EVE-PC>2017-03-14 12:07:52 -0400
commite59e2a97773f93bdd25bd4680809c10699f0feb3 (patch)
tree30eec8de5c4304a332e05c8a16f164aa5e6b5e83 /dice-lang
parent9b4ee8edf4f93b167be5ae3025d1fd4a433d183f (diff)
More help work.
Diffstat (limited to 'dice-lang')
-rw-r--r--dice-lang/src/bjc/dicelang/CLIArgsParser.java4
-rw-r--r--dice-lang/src/bjc/dicelang/Errors.java18
-rw-r--r--dice-lang/src/bjc/dicelang/util/ResourceLoader.java40
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;
+ }
+}