summaryrefslogtreecommitdiff
path: root/dice-lang/src/bjc/dicelang/dice/DiceBox.java
diff options
context:
space:
mode:
Diffstat (limited to 'dice-lang/src/bjc/dicelang/dice/DiceBox.java')
-rw-r--r--dice-lang/src/bjc/dicelang/dice/DiceBox.java105
1 files changed, 52 insertions, 53 deletions
diff --git a/dice-lang/src/bjc/dicelang/dice/DiceBox.java b/dice-lang/src/bjc/dicelang/dice/DiceBox.java
index 168dda1..c956977 100644
--- a/dice-lang/src/bjc/dicelang/dice/DiceBox.java
+++ b/dice-lang/src/bjc/dicelang/dice/DiceBox.java
@@ -20,97 +20,97 @@ public class DiceBox {
*
* @return The die expression from the string, or null if it wasn't one
*/
- public static DieExpression parseExpression(String expString) {
+ public static DieExpression parseExpression(final String expString) {
/*
* Only bother with valid expressions.
*/
- if(!isValidExpression(expString)) return null;
+ if (!isValidExpression(expString)) return null;
- if(scalarDiePattern.matcher(expString).matches()) {
+ if (scalarDiePattern.matcher(expString).matches()) {
/*
* Parse scalar die.
*/
- String dieString = expString.substring(0, expString.indexOf('s'));
- Die scal = new ScalarDie(Long.parseLong(dieString));
+ final String dieString = expString.substring(0, expString.indexOf('s'));
+ final Die scal = new ScalarDie(Long.parseLong(dieString));
return new DieExpression(scal);
- } else if(simpleDiePattern.matcher(expString).matches()) {
+ } else if (simpleDiePattern.matcher(expString).matches()) {
/*
* Parse simple die groups.
*/
- String[] dieParts = expString.split("d");
+ final String[] dieParts = expString.split("d");
- long right = Long.parseLong(dieParts[1]);
- if(dieParts[0].equals("")) {
+ final long right = Long.parseLong(dieParts[1]);
+ if (dieParts[0].equals("")) {
/*
* Handle short-form expressions.
*/
- Die scal = new SimpleDie(1, right);
- return new DieExpression(scal);
- } else {
- Die scal = new SimpleDie(Long.parseLong(dieParts[0]), right);
+ final Die scal = new SimpleDie(1, right);
return new DieExpression(scal);
}
- } else if(fudgeDiePattern.matcher(expString).matches()) {
+
+ final Die scal = new SimpleDie(Long.parseLong(dieParts[0]), right);
+ return new DieExpression(scal);
+ } else if (fudgeDiePattern.matcher(expString).matches()) {
/*
* Parse fudge dice.
*/
- String nDice = expString.substring(0, expString.indexOf('d'));
+ final String nDice = expString.substring(0, expString.indexOf('d'));
return new DieExpression(new FudgeDie(Long.parseLong(nDice)));
- } else if(compoundDiePattern.matcher(expString).matches()) {
+ } else if (compoundDiePattern.matcher(expString).matches()) {
/*
* Parse compound die expressions.
*/
- String[] dieParts = expString.split("c");
+ final String[] dieParts = expString.split("c");
- DieExpression left = parseExpression(dieParts[0]);
- DieExpression right = parseExpression(dieParts[1]);
+ final DieExpression left = parseExpression(dieParts[0]);
+ final DieExpression right = parseExpression(dieParts[1]);
return new DieExpression(new CompoundDie(left.scalar, right.scalar));
- } else if(compoundingDiePattern.matcher(expString).matches()) {
+ } else if (compoundingDiePattern.matcher(expString).matches()) {
/*
* Parse compounding die expressions.
*/
- String[] dieParts = expString.split("!!");
+ final String[] dieParts = expString.split("!!");
- DieExpression left = parseExpression(dieParts[0]);
- Predicate<Long> right = deriveCond(dieParts[1]);
+ final DieExpression left = parseExpression(dieParts[0]);
+ final Predicate<Long> right = deriveCond(dieParts[1]);
- Die scal = new CompoundingDie(left.scalar, right, dieParts[1]);
+ final Die scal = new CompoundingDie(left.scalar, right, dieParts[1]);
return new DieExpression(scal);
- } else if(explodingDiePattern.matcher(expString).matches()) {
+ } else if (explodingDiePattern.matcher(expString).matches()) {
/*
* Parse exploding die expressions.
*/
- String[] dieParts = expString.split("!");
+ final String[] dieParts = expString.split("!");
- DieExpression left = parseExpression(dieParts[0]);
- Predicate<Long> right = deriveCond(dieParts[1]);
+ final DieExpression left = parseExpression(dieParts[0]);
+ final Predicate<Long> right = deriveCond(dieParts[1]);
- DieList lst = new ExplodingDice(left.scalar, right, dieParts[1], false);
+ final DieList lst = new ExplodingDice(left.scalar, right, dieParts[1], false);
return new DieExpression(lst);
- } else if(penetratingDiePattern.matcher(expString).matches()) {
+ } else if (penetratingDiePattern.matcher(expString).matches()) {
/*
* Parse penetrating die expressions.
*/
- String[] dieParts = expString.split("p!");
+ final String[] dieParts = expString.split("p!");
- DieExpression left = parseExpression(dieParts[0]);
- Predicate<Long> right = deriveCond(dieParts[1]);
+ final DieExpression left = parseExpression(dieParts[0]);
+ final Predicate<Long> right = deriveCond(dieParts[1]);
- DieList lst = new ExplodingDice(left.scalar, right, dieParts[1], true);
+ final DieList lst = new ExplodingDice(left.scalar, right, dieParts[1], true);
return new DieExpression(lst);
- } else if(diceListPattern.matcher(expString).matches()) {
+ } else if (diceListPattern.matcher(expString).matches()) {
/*
* Parse simple die lists.
*/
- String[] dieParts = expString.split("dl");
+ final String[] dieParts = expString.split("dl");
- DieExpression left = parseExpression(dieParts[0]);
- DieExpression right = parseExpression(dieParts[1]);
+ final DieExpression left = parseExpression(dieParts[0]);
+ final DieExpression right = parseExpression(dieParts[1]);
- DieList lst = new SimpleDieList(left.scalar, right.scalar);
+ final DieList lst = new SimpleDieList(left.scalar, right.scalar);
return new DieExpression(lst);
}
@@ -210,34 +210,33 @@ public class DiceBox {
*
* @return Whether or not the string is a valid command.
*/
- public static boolean isValidExpression(String exp) {
- if(scalarDiePattern.matcher(exp).matches())
+ public static boolean isValidExpression(final String exp) {
+ if (scalarDiePattern.matcher(exp).matches())
return true;
- else if(simpleDiePattern.matcher(exp).matches())
+ else if (simpleDiePattern.matcher(exp).matches())
return true;
- else if(fudgeDiePattern.matcher(exp).matches())
+ else if (fudgeDiePattern.matcher(exp).matches())
return true;
- else if(compoundDiePattern.matcher(exp).matches())
+ else if (compoundDiePattern.matcher(exp).matches())
return true;
- else if(compoundingDiePattern.matcher(exp).matches())
+ else if (compoundingDiePattern.matcher(exp).matches())
return true;
- else if(explodingDiePattern.matcher(exp).matches())
+ else if (explodingDiePattern.matcher(exp).matches())
return true;
- else if(penetratingDiePattern.matcher(exp).matches())
+ else if (penetratingDiePattern.matcher(exp).matches())
return true;
- else if(diceListPattern.matcher(exp).matches())
+ else if (diceListPattern.matcher(exp).matches())
return true;
- else
- return false;
+ else return false;
}
/*
* Derive a predicate from a compare point
*/
- private static Predicate<Long> deriveCond(String patt) {
- long num = Long.parseLong(patt.substring(1));
+ private static Predicate<Long> deriveCond(final String patt) {
+ final long num = Long.parseLong(patt.substring(1));
- switch(patt.charAt(0)) {
+ switch (patt.charAt(0)) {
case '<':
return (roll) -> roll < num;
case '=':