diff options
| author | bculkin2442 <bjculkin@mix.wvu.edu> | 2016-07-27 22:45:03 -0400 |
|---|---|---|
| committer | bculkin2442 <bjculkin@mix.wvu.edu> | 2016-07-27 22:45:03 -0400 |
| commit | f62abec2577d3745475581a19eff71dbb8c0494e (patch) | |
| tree | 2793192a9d393302b56783399dbc58fe5e220d4e /dice-lang/src/main/java/bjc/dicelang/ast/nodes | |
| parent | 67fee39e6dd22fce8dfaa800f0a5ddbe0ede0be3 (diff) | |
Some minor cleanliness, and beginning work on a language description.
Diffstat (limited to 'dice-lang/src/main/java/bjc/dicelang/ast/nodes')
| -rw-r--r-- | dice-lang/src/main/java/bjc/dicelang/ast/nodes/ILiteralDiceNode.java | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/dice-lang/src/main/java/bjc/dicelang/ast/nodes/ILiteralDiceNode.java b/dice-lang/src/main/java/bjc/dicelang/ast/nodes/ILiteralDiceNode.java index 2105102..b94bcc8 100644 --- a/dice-lang/src/main/java/bjc/dicelang/ast/nodes/ILiteralDiceNode.java +++ b/dice-lang/src/main/java/bjc/dicelang/ast/nodes/ILiteralDiceNode.java @@ -1,7 +1,5 @@ package bjc.dicelang.ast.nodes; -import org.apache.commons.lang3.StringUtils; - /** * Represents a literal of some type in the AST * @@ -18,20 +16,25 @@ public interface ILiteralDiceNode extends IDiceASTNode { * otherwise */ static DiceLiteralType getLiteralType(String tok) { - if (StringUtils.countMatches(tok, 'c') == 1 - && !tok.equalsIgnoreCase("c")) { + String diceGroupOrNumber = "[(?:\\d*d\\d+)(?:\\d+)]"; + + if (tok.matches("\\A" + diceGroupOrNumber + "?" + "c" + + diceGroupOrNumber + "\\Z")) { return DiceLiteralType.DICE; - } else if (StringUtils.countMatches(tok, 'd') == 1 - && !tok.equalsIgnoreCase("d")) { + } + + String diceGroup = "\\d*d\\d+\\"; + + if (tok.matches("\\A" + diceGroup + "Z")) { return DiceLiteralType.DICE; - } else { - try { - Integer.parseInt(tok); - return DiceLiteralType.INTEGER; - } catch (@SuppressWarnings("unused") NumberFormatException nfex) { - // We don't care about details - return null; - } + } + + try { + Integer.parseInt(tok); + return DiceLiteralType.INTEGER; + } catch (@SuppressWarnings("unused") NumberFormatException nfex) { + // We don't care about details + return null; } } |
