summaryrefslogtreecommitdiff
path: root/base/src/bjc/dicelang/scl/SCLToken.java
diff options
context:
space:
mode:
Diffstat (limited to 'base/src/bjc/dicelang/scl/SCLToken.java')
-rw-r--r--base/src/bjc/dicelang/scl/SCLToken.java35
1 files changed, 3 insertions, 32 deletions
diff --git a/base/src/bjc/dicelang/scl/SCLToken.java b/base/src/bjc/dicelang/scl/SCLToken.java
index 45e35f6..b5dadb0 100644
--- a/base/src/bjc/dicelang/scl/SCLToken.java
+++ b/base/src/bjc/dicelang/scl/SCLToken.java
@@ -9,7 +9,6 @@ import bjc.utils.parserutils.TokenUtils;
import static bjc.dicelang.Errors.ErrorKey.EK_SCL_INVTOKEN;
import static bjc.dicelang.scl.SCLToken.Type.*;
-import static bjc.dicelang.scl.SCLToken.Word.*;
public class SCLToken {
@@ -21,24 +20,15 @@ public class SCLToken {
SLIT, WORDS, ARRAY,
}
- public static enum Word {
- /* Array manipulation */
- MAKEARRAY, MAKEEXEC, MAKEUNEXEC,
- /* Stream manipulation */
- NEWSTREAM, LEFTSTREAM, RIGHTSTREAM, DELETESTREAM, MERGESTREAM,
- /* Stack manipulation */
- STACKCOUNT, STACKEMPTY, DROP, NDROP, NIP, NNIP,
- }
-
public SCLToken.Type type;
public static SCLToken tokenizeString(final String token) {
if (litTokens.containsKey(token)) {
return new IntSCLToken(litTokens.get(token));
} else if (token.startsWith("\\")) {
- return new StringSCLToken(true, token.substring(1));
- } else if (builtinWords.containsKey(token)) {
- return new WordSCLToken(builtinWords.get(token));
+ return new SymbolSCLToken(token.substring(1));
+ } else if (WordSCLToken.isBuiltinWord(token)) {
+ return new WordSCLToken(token);
} else if (token.equals("true")) {
return new BooleanSCLToken(true);
} else if (token.equals("false")) {
@@ -54,7 +44,6 @@ public class SCLToken {
}
protected static final Map<String, Type> litTokens;
- protected static final Map<String, Word> builtinWords;
protected SCLToken() {
@@ -72,24 +61,6 @@ public class SCLToken {
litTokens.put("\"", DQUOTE);
litTokens.put("[", OBRACKET);
litTokens.put("{", OBRACE);
-
- /* Init builtin words. */
- builtinWords = new HashMap<>();
-
- builtinWords.put("makearray", MAKEARRAY);
- builtinWords.put("+stream", NEWSTREAM);
- builtinWords.put(">stream", LEFTSTREAM);
- builtinWords.put("<stream", RIGHTSTREAM);
- builtinWords.put("-stream", DELETESTREAM);
- builtinWords.put("<-stream", MERGESTREAM);
- builtinWords.put("cvx", MAKEEXEC);
- builtinWords.put("cvux", MAKEUNEXEC);
- builtinWords.put("#", STACKCOUNT);
- builtinWords.put("empty?", STACKEMPTY);
- builtinWords.put("drop", DROP);
- builtinWords.put("ndrop", NDROP);
- builtinWords.put("nip", NIP);
- builtinWords.put("nnip", NNIP);
}
@Override