diff options
| author | Benjamin Culkin <bjculkin@sitri.goetia> | 2023-11-09 01:58:31 +0000 |
|---|---|---|
| committer | Benjamin Culkin <bjculkin@sitri.goetia> | 2023-11-09 01:58:31 +0000 |
| commit | 13a96e852f2fea4d3b3cb03cf803007b9b63041e (patch) | |
| tree | ea7bff952e92efa4b932526a9c84e8bc70de9a6d /base/src/bjc/dicelang/Tokenizer.java | |
| parent | d9dcc94aa16a1609e47f8369dfe21a8d260887a9 (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.java | 7 |
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 { |
