From a15873fb42e8db3b2101330514b2208ef3490d70 Mon Sep 17 00:00:00 2001 From: student Date: Mon, 12 Feb 2018 12:14:27 -0500 Subject: Further refactor SCL token organization Added some more SCL token subclasses to make it obvious what classes went to what token types. --- base/src/bjc/dicelang/scl/SCLToken.java | 35 +++------------------------------ 1 file changed, 3 insertions(+), 32 deletions(-) (limited to 'base/src/bjc/dicelang/scl/SCLToken.java') 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 litTokens; - protected static final Map 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("