summaryrefslogtreecommitdiff
path: root/src/main/java/bjc/dicelang/scl/StreamEngine.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/bjc/dicelang/scl/StreamEngine.java')
-rw-r--r--src/main/java/bjc/dicelang/scl/StreamEngine.java39
1 files changed, 17 insertions, 22 deletions
diff --git a/src/main/java/bjc/dicelang/scl/StreamEngine.java b/src/main/java/bjc/dicelang/scl/StreamEngine.java
index 4f2e0b8..c153158 100644
--- a/src/main/java/bjc/dicelang/scl/StreamEngine.java
+++ b/src/main/java/bjc/dicelang/scl/StreamEngine.java
@@ -1,19 +1,13 @@
package bjc.dicelang.scl;
-import static bjc.dicelang.scl.Errors.ErrorKey.EK_STRM_INVCOM;
-import static bjc.dicelang.scl.Errors.ErrorKey.EK_STRM_LAST;
-import static bjc.dicelang.scl.Errors.ErrorKey.EK_STRM_NONEX;
+import static bjc.dicelang.scl.Errors.ErrorKey.*;
-import java.util.Arrays;
-import java.util.function.Predicate;
+import java.util.*;
+import java.util.function.*;
-import bjc.esodata.SingleTape;
-import bjc.esodata.Tape;
-import bjc.funcdata.FunctionalList;
-import bjc.funcdata.FunctionalMap;
-import bjc.funcdata.IList;
-import bjc.funcdata.IMap;
-import bjc.utils.funcutils.ListUtils;
+import bjc.esodata.*;
+import bjc.funcdata.*;
+import bjc.utils.funcutils.*;
/**
* Implements multiple interleaved parse streams, as well as a command language
@@ -31,8 +25,8 @@ public class StreamEngine {
public final boolean debug = true;
/* Our streams. */
- private Tape<IList<String>> streams;
- private IList<String> currStream;
+ private Tape<ListEx<String>> streams;
+ private ListEx<String> currStream;
/* Saved streams */
//private Map<String, IList<String>> savedStreams;
@@ -40,7 +34,7 @@ public class StreamEngine {
/* Handler for SCL programs */
private final StreamControlEngine scleng;
- private static IMap<Character, Predicate<StreamEngine>> commands;
+ private static MapEx<Character, Predicate<StreamEngine>> commands;
static {
commands = new FunctionalMap<>();
@@ -96,7 +90,7 @@ public class StreamEngine {
*
* @return Whether or not the streams were successfully processed.
*/
- public boolean doStreams(final String[] toks, final IList<String> dest) {
+ public boolean doStreams(final String[] toks, final ListEx<String> dest) {
return doStreams(Arrays.asList(toks), dest);
}
@@ -111,7 +105,7 @@ public class StreamEngine {
*
* @return Whether or not the streams were successfully processed.
*/
- public boolean doStreams(final Iterable<String> toks, final IList<String> dest) {
+ public boolean doStreams(final Iterable<String> toks, final ListEx<String> dest) {
/* Initialize per-run state. */
init();
@@ -216,7 +210,7 @@ public class StreamEngine {
return false;
}
- final IList<String> stringLit = streams.remove();
+ final ListEx<String> stringLit = streams.remove();
currStream = streams.item();
final String merg = ListUtils.collapseTokens(stringLit, "");
@@ -252,11 +246,12 @@ public class StreamEngine {
/* Process each command. */
for(final char comm : comms) {
- boolean succ = commands.getOrDefault(comm, (eng) -> {
- Errors.inst.printError(EK_STRM_INVCOM, tk);
+ boolean succ = commands.get(comm)
+ .orElseGet(() -> (eng) -> {
+ Errors.inst.printError(EK_STRM_INVCOM, tk);
- return false;
- }).test(this);
+ return false;
+ }).test(this);
if(!succ) return false;
}