diff options
| author | EVE <EVE@EVE-PC> | 2017-03-14 12:08:11 -0400 |
|---|---|---|
| committer | EVE <EVE@EVE-PC> | 2017-03-14 12:08:11 -0400 |
| commit | 635d3150e3e85c01b777ff165e21fa8965d58440 (patch) | |
| tree | 3389128f83a5a79f8d0eec0a0e19f54b9d117b66 /dice-lang/src/bjc/dicelang/scl | |
| parent | e59e2a97773f93bdd25bd4680809c10699f0feb3 (diff) | |
Cleanup
Diffstat (limited to 'dice-lang/src/bjc/dicelang/scl')
| -rw-r--r-- | dice-lang/src/bjc/dicelang/scl/StreamControlEngine.java | 118 | ||||
| -rw-r--r-- | dice-lang/src/bjc/dicelang/scl/StreamEngine.java | 64 |
2 files changed, 77 insertions, 105 deletions
diff --git a/dice-lang/src/bjc/dicelang/scl/StreamControlEngine.java b/dice-lang/src/bjc/dicelang/scl/StreamControlEngine.java index 8d63be2..0da5364 100644 --- a/dice-lang/src/bjc/dicelang/scl/StreamControlEngine.java +++ b/dice-lang/src/bjc/dicelang/scl/StreamControlEngine.java @@ -1,11 +1,10 @@ package bjc.dicelang.scl; import bjc.dicelang.Errors; - -import bjc.utils.esodata.Stack; import bjc.utils.esodata.SimpleStack; -import bjc.utils.funcdata.IList; +import bjc.utils.esodata.Stack; import bjc.utils.funcdata.FunctionalList; +import bjc.utils.funcdata.IList; import bjc.utils.funcutils.StringUtils; import java.util.HashMap; @@ -126,28 +125,28 @@ public class StreamControlEngine { } public static Token tokenizeString(String token) { - if (litTokens.containsKey(token)) { + if(litTokens.containsKey(token)) return new Token(litTokens.get(token)); - } else if (token.startsWith("\\")) { + else if(token.startsWith("\\")) return new Token(SYMBOL, token.substring(1)); - } else if (builtinWords.containsKey(token)) { + else if(builtinWords.containsKey(token)) return new Token(WORD, builtinWords.get(token)); - } else if (token.equals("true")) { + else if(token.equals("true")) return new Token(BLIT, true); - } else if (token.equals("false")) { + else if(token.equals("false")) return new Token(BLIT, false); - } else if (StringUtils.isInt(token)) { + else if(StringUtils.isInt(token)) return new Token(ILIT, Long.parseLong(token)); - } else if (StringUtils.isDouble(token)) { + else if(StringUtils.isDouble(token)) return new Token(FLIT, Double.parseDouble(token)); - } else { + else { Errors.inst.printError(EK_SCL_INVTOKEN, token); return null; } } - private static final Map<String, Token.Type> litTokens; - private static final Map<String, Token.Type> builtinWords; + private static final Map<String, Token.Type> litTokens; + private static final Map<String, Token.Type> builtinWords; static { litTokens = new HashMap<>(); @@ -198,29 +197,24 @@ public class StreamControlEngine { * @return Whether the program executed succesfully */ public boolean runProgram(String[] tokens) { - for (int i = 0; i < tokens.length; i++) { + for(int i = 0; i < tokens.length; i++) { String token = tokens[i]; Token tok = Token.tokenizeString(token); - if (tok == null) { - return false; - } + if(tok == null) return false; - switch (tok.type) { + switch(tok.type) { case SQUOTE: i = handleSingleQuote(i, tokens); - if (i == -1) - return false; + if(i == -1) return false; break; case OBRACKET: i = handleDelim(i, tokens, "]"); - if (i == -1) - return false; + if(i == -1) return false; break; case OBRACE: i = handleDelim(i, tokens, "}"); - if (i == -1) - return false; + if(i == -1) return false; Token brak = curStack.pop(); curStack.push(new Token(ARRAY, brak.tokenVals)); break; @@ -239,44 +233,37 @@ public class StreamControlEngine { private boolean handleWord(Token tk) { boolean succ = true; - switch (tk.tokenVal.type) { + switch(tk.tokenVal.type) { case NEWSTREAM: eng.newStream(); break; case LEFTSTREAM: succ = eng.leftStream(); - if (!succ) - return false; + if(!succ) return false; break; case RIGHTSTREAM: succ = eng.rightStream(); - if (!succ) - return false; + if(!succ) return false; break; case DELETESTREAM: succ = eng.deleteStream(); - if (!succ) - return false; + if(!succ) return false; break; case MERGESTREAM: succ = eng.mergeStream(); - if (!succ) - return false; + if(!succ) return false; break; case MAKEARRAY: succ = makeArray(); - if (!succ) - return false; + if(!succ) return false; break; case MAKEEXEC: succ = toggleExec(true); - if (!succ) - return false; + if(!succ) return false; break; case MAKEUNEXEC: succ = toggleExec(false); - if (!succ) - return false; + if(!succ) return false; break; case STACKCOUNT: curStack.push(new Token(ILIT, curStack.size())); @@ -285,7 +272,7 @@ public class StreamControlEngine { curStack.push(new Token(BLIT, curStack.empty())); break; case DROP: - if (curStack.size() == 0) { + if(curStack.size() == 0) { Errors.inst.printError(EK_SCL_SUNDERFLOW, tk.tokenVal.type.toString()); return false; } @@ -293,11 +280,10 @@ public class StreamControlEngine { break; case NDROP: succ = handleNDrop(); - if (!succ) - return false; + if(!succ) return false; break; case NIP: - if (curStack.size() < 2) { + if(curStack.size() < 2) { Errors.inst.printError(EK_SCL_SUNDERFLOW, tk.tokenVal.type.toString()); return false; } @@ -306,8 +292,7 @@ public class StreamControlEngine { break; case NNIP: succ = handleNNip(); - if (!succ) - return false; + if(!succ) return false; break; default: Errors.inst.printError(EK_SCL_UNWORD, tk.tokenVal.type.toString()); @@ -320,14 +305,14 @@ public class StreamControlEngine { private boolean handleNNip() { Token num = curStack.pop(); - if (num.type != ILIT) { + if(num.type != ILIT) { Errors.inst.printError(EK_SCL_INVARG, num.type.toString()); return false; } int n = (int) num.intVal; - if (curStack.size() < n) { + if(curStack.size() < n) { Errors.inst.printError(EK_SCL_SUNDERFLOW, NNIP.toString()); return false; } @@ -339,14 +324,14 @@ public class StreamControlEngine { private boolean handleNDrop() { Token num = curStack.pop(); - if (num.type != ILIT) { + if(num.type != ILIT) { Errors.inst.printError(EK_SCL_INVARG, num.type.toString()); return false; } int n = (int) num.intVal; - if (curStack.size() < n) { + if(curStack.size() < n) { Errors.inst.printError(EK_SCL_SUNDERFLOW, NDROP.toString()); return false; } @@ -358,15 +343,15 @@ public class StreamControlEngine { private boolean toggleExec(boolean exec) { Token top = curStack.top(); - if (exec) { - if (top.type != ARRAY) { + if(exec) { + if(top.type != ARRAY) { Errors.inst.printError(EK_SCL_INVARG, top.toString()); return false; } top.type = WORDS; } else { - if (top.type != WORDS) { + if(top.type != WORDS) { Errors.inst.printError(EK_SCL_INVARG, top.toString()); return false; } @@ -380,13 +365,13 @@ public class StreamControlEngine { private boolean makeArray() { Token num = curStack.pop(); - if (num.type != ILIT) { + if(num.type != ILIT) { Errors.inst.printError(EK_SCL_INVARG, num.type.toString()); } IList<Token> arr = new FunctionalList<>(); - for (int i = 0; i < num.intVal; i++) { + for(int i = 0; i < num.intVal; i++) { arr.add(curStack.pop()); } @@ -399,32 +384,29 @@ public class StreamControlEngine { IList<Token> toks = new FunctionalList<>(); int n = i + 1; - if (n >= tokens.length) { + if(n >= tokens.length) { Errors.inst.printError(EK_SCL_MMQUOTE); return -1; } String tok = tokens[n]; - while (!tok.equals(delim)) { + while(!tok.equals(delim)) { Token ntok = Token.tokenizeString(tok); - switch (ntok.type) { + switch(ntok.type) { case SQUOTE: n = handleSingleQuote(n, tokens); - if (n == -1) - return -1; + if(n == -1) return -1; toks.add(curStack.pop()); break; case OBRACKET: n = handleDelim(n, tokens, "]"); - if (n == -1) - return -1; + if(n == -1) return -1; toks.add(curStack.pop()); break; case OBRACE: i = handleDelim(i, tokens, "}"); - if (i == -1) - return -1; + if(i == -1) return -1; Token brak = curStack.pop(); toks.add(new Token(ARRAY, brak.tokenVals)); break; @@ -435,7 +417,7 @@ public class StreamControlEngine { * Move to the next token */ n += 1; - if (n >= tokens.length) { + if(n >= tokens.length) { Errors.inst.printError(EK_SCL_MMQUOTE); return -1; } @@ -456,14 +438,14 @@ public class StreamControlEngine { StringBuilder sb = new StringBuilder(); int n = i + 1; - if (n >= tokens.length) { + if(n >= tokens.length) { Errors.inst.printError(EK_SCL_MMQUOTE); return -1; } String tok = tokens[n]; - while (!tok.equals("'")) { - if (tok.matches("\\\\+'")) { + while(!tok.equals("'")) { + if(tok.matches("\\\\+'")) { /* * Handle escaped quotes. */ @@ -476,7 +458,7 @@ public class StreamControlEngine { * Move to the next token */ n += 1; - if (n >= tokens.length) { + if(n >= tokens.length) { Errors.inst.printError(EK_SCL_MMQUOTE); return -1; } 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); |
