summaryrefslogtreecommitdiff
path: root/base/src/bjc/dicelang/Tokenizer.java
diff options
context:
space:
mode:
authorBenjamin Culkin <bjculkin@sitri.goetia>2023-11-09 01:58:31 +0000
committerBenjamin Culkin <bjculkin@sitri.goetia>2023-11-09 01:58:31 +0000
commit13a96e852f2fea4d3b3cb03cf803007b9b63041e (patch)
treeea7bff952e92efa4b932526a9c84e8bc70de9a6d /base/src/bjc/dicelang/Tokenizer.java
parentd9dcc94aa16a1609e47f8369dfe21a8d260887a9 (diff)
Add decimals
Add decimal literals and default to them over floats
Diffstat (limited to 'base/src/bjc/dicelang/Tokenizer.java')
-rw-r--r--base/src/bjc/dicelang/Tokenizer.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/base/src/bjc/dicelang/Tokenizer.java b/base/src/bjc/dicelang/Tokenizer.java
index 7aed861..5ddd82b 100644
--- a/base/src/bjc/dicelang/Tokenizer.java
+++ b/base/src/bjc/dicelang/Tokenizer.java
@@ -1,9 +1,11 @@
package bjc.dicelang;
+import java.math.BigDecimal;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import bjc.dicelang.dice.DiceBox;
+import bjc.dicelang.tokens.DecimalToken;
import bjc.dicelang.tokens.DiceToken;
import bjc.dicelang.tokens.FloatToken;
import bjc.dicelang.tokens.Token;
@@ -165,8 +167,11 @@ public class Tokenizer {
Errors.inst.printError(EK_TOK_INVFLEX, flexNum, Integer.toString(parseBase));
return Token.NIL_TOKEN;
}
+ } else if (TokenUtils.isSuffixedDouble(token, "f")) {
+ String unsuffixedToken = token.substring(0, token.length() - 1);
+ tk = new FloatToken(Double.parseDouble(unsuffixedToken));
} else if (TokenUtils.isDouble(token)) {
- tk = new FloatToken(Double.parseDouble(token));
+ tk = new DecimalToken(new BigDecimal(token));
} else if (DiceBox.isValidExpression(token)) {
tk = new DiceToken(DiceBox.parseExpression(token));
} else {