diff options
Diffstat (limited to 'base/src/bjc/dicelang/scl/SCLToken.java')
| -rw-r--r-- | base/src/bjc/dicelang/scl/SCLToken.java | 35 |
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 |
