summaryrefslogtreecommitdiff
path: root/dice-lang/src/bjc/dicelang/scl/StreamEngine.java
diff options
context:
space:
mode:
Diffstat (limited to 'dice-lang/src/bjc/dicelang/scl/StreamEngine.java')
-rw-r--r--dice-lang/src/bjc/dicelang/scl/StreamEngine.java64
1 files changed, 27 insertions, 37 deletions
diff --git a/dice-lang/src/bjc/dicelang/scl/StreamEngine.java b/dice-lang/src/bjc/dicelang/scl/StreamEngine.java
index 9bcad9b..f8d6e09 100644
--- a/dice-lang/src/bjc/dicelang/scl/StreamEngine.java
+++ b/dice-lang/src/bjc/dicelang/scl/StreamEngine.java
@@ -2,16 +2,16 @@ package bjc.dicelang.scl;
import bjc.dicelang.DiceLangEngine;
import bjc.dicelang.Errors;
-
+import bjc.utils.esodata.SingleTape;
+import bjc.utils.esodata.Tape;
+import bjc.utils.esodata.TapeLibrary;
import bjc.utils.funcdata.FunctionalList;
import bjc.utils.funcdata.IList;
import bjc.utils.funcutils.ListUtils;
-import static bjc.dicelang.Errors.ErrorKey.*;
-
-import bjc.utils.esodata.SingleTape;
-import bjc.utils.esodata.Tape;
-import bjc.utils.esodata.TapeLibrary;
+import static bjc.dicelang.Errors.ErrorKey.EK_STRM_INVCOM;
+import static bjc.dicelang.Errors.ErrorKey.EK_STRM_LAST;
+import static bjc.dicelang.Errors.ErrorKey.EK_STRM_NONEX;
/**
* Implements multiple interleaved parse streams, as well as a command language
@@ -31,8 +31,8 @@ public class StreamEngine {
/*
* Our streams.
*/
- Tape<IList<String>> streams;
- IList<String> currStream;
+ Tape<IList<String>> streams;
+ IList<String> currStream;
/*
* Saved streams
@@ -94,23 +94,18 @@ public class StreamEngine {
/*
* Process each token.
*/
- for (String tk : toks) {
+ for(String tk : toks) {
/*
* Process stream commands.
*/
- if (tk.startsWith("{@S") && !quoteMode) {
- if (tk.equals("{@SQ}")) {
+ if(tk.startsWith("{@S") && !quoteMode) {
+ if(tk.equals("{@SQ}")) {
quoteMode = true;
- } else if (!processCommand(tk)) {
- return false;
- }
- /*
- * Command ran correctly, continue
- */
+ } else if(!processCommand(tk)) return false;
} else {
- if (tk.equals("{@SU}")) {
+ if(tk.equals("{@SU}")) {
quoteMode = false;
- } else if (tk.startsWith("\\") && tk.endsWith("{@SU}")) {
+ } else if(tk.startsWith("\\") && tk.endsWith("{@SU}")) {
currStream.add(tk.substring(1));
} else {
currStream.add(tk);
@@ -118,7 +113,7 @@ public class StreamEngine {
}
}
- for (String tk : currStream) {
+ for(String tk : currStream) {
dest.add(tk);
}
@@ -130,7 +125,7 @@ public class StreamEngine {
}
public boolean rightStream() {
- if (!streams.right()) {
+ if(!streams.right()) {
Errors.inst.printError(EK_STRM_NONEX);
return false;
}
@@ -140,7 +135,7 @@ public class StreamEngine {
}
public boolean leftStream() {
- if (!streams.left()) {
+ if(!streams.left()) {
Errors.inst.printError(EK_STRM_NONEX);
return false;
}
@@ -150,7 +145,7 @@ public class StreamEngine {
}
public boolean deleteStream() {
- if (streams.size() == 1) {
+ if(streams.size() == 1) {
Errors.inst.printError(EK_STRM_LAST);
return false;
} else {
@@ -162,7 +157,7 @@ public class StreamEngine {
}
public boolean mergeStream() {
- if (streams.size() == 1) {
+ if(streams.size() == 1) {
Errors.inst.printError(EK_STRM_LAST);
return false;
} else {
@@ -177,7 +172,7 @@ public class StreamEngine {
private boolean processCommand(String tk) {
char[] comms = null;
- if (tk.length() > 5) {
+ if(tk.length() > 5) {
comms = tk.substring(3, tk.length() - 1).toCharArray();
} else {
comms = new char[1];
@@ -186,35 +181,30 @@ public class StreamEngine {
boolean succ;
- for (char comm : comms) {
- switch (comm) {
+ for(char comm : comms) {
+ switch(comm) {
case '+':
newStream();
break;
case '>':
succ = rightStream();
- if (!succ)
- return false;
+ if(!succ) return false;
break;
case '<':
succ = leftStream();
- if (!succ)
- return false;
+ if(!succ) return false;
break;
case '-':
succ = deleteStream();
- if (!succ)
- return false;
+ if(!succ) return false;
break;
case 'M':
succ = mergeStream();
- if (!succ)
- return false;
+ if(!succ) return false;
break;
case 'L':
succ = scleng.runProgram(currStream.toArray(new String[0]));
- if (!succ)
- return false;
+ if(!succ) return false;
break;
default:
Errors.inst.printError(EK_STRM_INVCOM, tk);