summaryrefslogtreecommitdiff
path: root/base/src/bjc/dicelang/Tokenizer.java
diff options
context:
space:
mode:
authorstudent <student@localhost>2018-02-12 13:56:22 -0500
committerstudent <student@localhost>2018-02-12 13:56:22 -0500
commit5115f1d2a7eab41436debc696870953e18a1b236 (patch)
treedbb2453580038b9f8102bb5bc53c60d2410f0f00 /base/src/bjc/dicelang/Tokenizer.java
parent4c8639f361983d97a7b46282b12528b550fff946 (diff)
General update
Diffstat (limited to 'base/src/bjc/dicelang/Tokenizer.java')
-rw-r--r--base/src/bjc/dicelang/Tokenizer.java20
1 files changed, 10 insertions, 10 deletions
diff --git a/base/src/bjc/dicelang/Tokenizer.java b/base/src/bjc/dicelang/Tokenizer.java
index 0de8c53..b59c4be 100644
--- a/base/src/bjc/dicelang/Tokenizer.java
+++ b/base/src/bjc/dicelang/Tokenizer.java
@@ -1,10 +1,5 @@
package bjc.dicelang;
-import static bjc.dicelang.Errors.ErrorKey.EK_TOK_INVBASE;
-import static bjc.dicelang.Errors.ErrorKey.EK_TOK_INVFLEX;
-import static bjc.dicelang.Errors.ErrorKey.EK_TOK_UNGROUP;
-import static bjc.dicelang.Token.Type.*;
-
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -14,20 +9,21 @@ import bjc.utils.funcdata.IMap;
import bjc.utils.funcutils.StringUtils;
import bjc.utils.parserutils.TokenUtils;
+import static bjc.dicelang.Errors.ErrorKey.*;
+import static bjc.dicelang.Token.Type.*;
+
/**
* Converts strings into tokens.
*/
public class Tokenizer {
/* Literal tokens for tokenization */
- private final IMap<String, Token.Type> litTokens;
+ private static final IMap<String, Token.Type> litTokens;
private final DiceLangEngine eng;
private int nextSym = 0;
- public Tokenizer(final DiceLangEngine engine) {
- eng = engine;
-
+ static {
litTokens = new FunctionalMap<>();
litTokens.put("+", ADD);
@@ -48,6 +44,10 @@ public class Tokenizer {
litTokens.put("crc", COERCE);
}
+ public Tokenizer(final DiceLangEngine engine) {
+ eng = engine;
+ }
+
public Token lexToken(final String token, final IMap<String, String> stringLts) {
if (token.equals("")) {
return null;
@@ -149,7 +149,7 @@ public class Tokenizer {
} else if (TokenUtils.isDouble(token)) {
tk = new Token(FLOAT_LIT, Double.parseDouble(token));
} else if (DiceBox.isValidExpression(token)) {
- tk = new Token(DICE_LIT, DiceBox.parseExpression(token));
+ tk = new DiceToken(DiceBox.parseExpression(token));
} else {
final Matcher stringLit = stringLitMatcher.matcher(token);