summaryrefslogtreecommitdiff
path: root/src/main/java/bjc/dicelang/scl/StreamControlEngine.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/bjc/dicelang/scl/StreamControlEngine.java')
-rw-r--r--src/main/java/bjc/dicelang/scl/StreamControlEngine.java14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/main/java/bjc/dicelang/scl/StreamControlEngine.java b/src/main/java/bjc/dicelang/scl/StreamControlEngine.java
index 5c2b4de..d48d593 100644
--- a/src/main/java/bjc/dicelang/scl/StreamControlEngine.java
+++ b/src/main/java/bjc/dicelang/scl/StreamControlEngine.java
@@ -27,6 +27,7 @@ import static bjc.dicelang.scl.tokens.WordType.*;
*
* This is a large enough class that it should maybe be split into subclasses.
*/
+
/**
* Runs a Stream Control Language (SCL) program.
*
@@ -108,7 +109,7 @@ public class StreamControlEngine {
case WORD:
/* Handle words. */
if (!handleWord((WordSCLToken) tok)) {
- System.out.printf("WARNING: Execution of word '%s' failed\n", tok);
+ Errors.inst.printError(WK_SCL_WRDFAIL, tok);
}
break;
@@ -183,7 +184,8 @@ public class StreamControlEngine {
break;
case DROP:
if (curStack.size() == 0) {
- Errors.inst.printError(EK_SCL_SUNDERFLOW, tk.toString());
+ Errors.inst.printError(EK_SCL_SUNDERFLOW, tk.toString(), 1);
+
return false;
}
curStack.drop();
@@ -196,7 +198,7 @@ public class StreamControlEngine {
break;
case NIP:
if (curStack.size() < 2) {
- Errors.inst.printError(EK_SCL_SUNDERFLOW, tk.toString());
+ Errors.inst.printError(EK_SCL_SUNDERFLOW, tk.toString(), 2);
return false;
}
curStack.nip();
@@ -223,7 +225,7 @@ public class StreamControlEngine {
private boolean handleDefine() {
if (curStack.size() < 2) {
- Errors.inst.printError(EK_SCL_SUNDERFLOW, "def");
+ Errors.inst.printError(EK_SCL_SUNDERFLOW, "def", 2);
return false;
}
@@ -256,7 +258,7 @@ public class StreamControlEngine {
final int n = (int) ((IntSCLToken) num).intVal;
if (curStack.size() < n) {
- Errors.inst.printError(EK_SCL_SUNDERFLOW, NNIP.toString());
+ Errors.inst.printError(EK_SCL_SUNDERFLOW, NNIP.toString(), n);
return false;
}
@@ -276,7 +278,7 @@ public class StreamControlEngine {
final int n = (int) ((IntSCLToken) num).intVal;
if (curStack.size() < n) {
- Errors.inst.printError(EK_SCL_SUNDERFLOW, NDROP.toString());
+ Errors.inst.printError(EK_SCL_SUNDERFLOW, NDROP.toString(), n);
return false;
}