summaryrefslogtreecommitdiff
path: root/dice-lang/src/main/java/bjc/dicelang/ast/nodes/ILiteralDiceNode.java
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2016-07-27 22:45:03 -0400
committerbculkin2442 <bjculkin@mix.wvu.edu>2016-07-27 22:45:03 -0400
commitf62abec2577d3745475581a19eff71dbb8c0494e (patch)
tree2793192a9d393302b56783399dbc58fe5e220d4e /dice-lang/src/main/java/bjc/dicelang/ast/nodes/ILiteralDiceNode.java
parent67fee39e6dd22fce8dfaa800f0a5ddbe0ede0be3 (diff)
Some minor cleanliness, and beginning work on a language description.
Diffstat (limited to 'dice-lang/src/main/java/bjc/dicelang/ast/nodes/ILiteralDiceNode.java')
-rw-r--r--dice-lang/src/main/java/bjc/dicelang/ast/nodes/ILiteralDiceNode.java31
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;
}
}