diff options
Diffstat (limited to 'src/main/java/bjc/dicelang/scl/StreamEngine.java')
| -rw-r--r-- | src/main/java/bjc/dicelang/scl/StreamEngine.java | 39 |
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; } |
