summaryrefslogtreecommitdiff
path: root/dice-lang/src/bjc/dicelang/v1/DiceExpressionParser.java
diff options
context:
space:
mode:
authorEVE <EVE@EVE-PC>2017-03-13 16:41:45 -0400
committerEVE <EVE@EVE-PC>2017-03-13 16:41:45 -0400
commit01136c6796e21f023713e026674576d8e623462d (patch)
treee77886fe0e0adaf3c0430fba9ce248ef83f74fe4 /dice-lang/src/bjc/dicelang/v1/DiceExpressionParser.java
parent870d769cfc152171d27b2331a7c590d0b307ad48 (diff)
Formatting
Diffstat (limited to 'dice-lang/src/bjc/dicelang/v1/DiceExpressionParser.java')
-rw-r--r--dice-lang/src/bjc/dicelang/v1/DiceExpressionParser.java132
1 files changed, 59 insertions, 73 deletions
diff --git a/dice-lang/src/bjc/dicelang/v1/DiceExpressionParser.java b/dice-lang/src/bjc/dicelang/v1/DiceExpressionParser.java
index fd8f37b..38a842e 100644
--- a/dice-lang/src/bjc/dicelang/v1/DiceExpressionParser.java
+++ b/dice-lang/src/bjc/dicelang/v1/DiceExpressionParser.java
@@ -20,18 +20,16 @@ public class DiceExpressionParser {
* Parse a dice expression from a string
*
* @param expression
- * The string to parse an expression from
+ * The string to parse an expression from
* @param enviroment
- * The enviroment to use when parsing expressions
+ * The enviroment to use when parsing expressions
* @return The parsed dice expression
*/
- public static IDiceExpression parse(String expression,
- Map<String, IDiceExpression> enviroment) {
+ public static IDiceExpression parse(String expression, Map<String, IDiceExpression> enviroment) {
/*
* Create a tokenizer over the strings
*/
- FunctionalStringTokenizer tokenizer = new FunctionalStringTokenizer(
- expression);
+ FunctionalStringTokenizer tokenizer = new FunctionalStringTokenizer(expression);
/*
* Create a shunter to rewrite the expression
@@ -42,11 +40,13 @@ public class DiceExpressionParser {
* Add our custom operators to the yard
*/
yard.addOp("d", 5); // dice operator: use for creating variable
- // size dice groups
- yard.addOp("c", 6); // compound operator: use for creating compound
- // dice from expressions
- yard.addOp(":=", 0); // binding operator: Bind a name to a variable
- // expression
+ // size dice groups
+ yard.addOp("c", 6); // compound operator: use for creating
+ // compound
+ // dice from expressions
+ yard.addOp(":=", 0); // binding operator: Bind a name to a
+ // variable
+ // expression
/*
* Shunt the expression to postfix form
@@ -81,80 +81,66 @@ public class DiceExpressionParser {
/*
* Handle scalar numbers
*/
- expressions.push(new ScalarDie(
- Integer.parseInt(expressionPart)));
+ expressions.push(new ScalarDie(Integer.parseInt(expressionPart)));
} catch (NumberFormatException nfex) {
- // We don't care about details, just that it failed
+ // We don't care about details, just
+ // that it failed
if (expressions.size() >= 2) {
/*
- * Apply an operation to two dice
+ * Apply an operation to two
+ * dice
*/
- IDiceExpression right = expressions
- .pop();
+ IDiceExpression right = expressions.pop();
IDiceExpression left = expressions.pop();
switch (expressionPart) {
- case ":=":
- expressions.push(new BindingDiceExpression(
- left, right,
- enviroment));
- break;
- case "+":
- expressions
- .push(new OperatorDiceExpression(
- right,
- left,
- DiceExpressionType.ADD));
- break;
- case "-":
- expressions
- .push(new OperatorDiceExpression(
- right,
- left,
- DiceExpressionType.SUBTRACT));
- break;
- case "*":
- expressions
- .push(new OperatorDiceExpression(
- right,
- left,
- DiceExpressionType.MULTIPLY));
- break;
- case "/":
- expressions
- .push(new OperatorDiceExpression(
- right,
- left,
- DiceExpressionType.DIVIDE));
- break;
- case "c":
- expressions.push(new CompoundDice(
- left, right));
- break;
- case "d":
- expressions.push(new ComplexDice(
- left, right));
- break;
- default:
- /*
- * Parse it as a variable reference
- *
- * Make sure to restore popped variables
- */
- expressions.push(left);
- expressions.push(right);
+ case ":=":
+ expressions.push(new BindingDiceExpression(left, right,
+ enviroment));
+ break;
+ case "+":
+ expressions.push(new OperatorDiceExpression(right, left,
+ DiceExpressionType.ADD));
+ break;
+ case "-":
+ expressions.push(new OperatorDiceExpression(right, left,
+ DiceExpressionType.SUBTRACT));
+ break;
+ case "*":
+ expressions.push(new OperatorDiceExpression(right, left,
+ DiceExpressionType.MULTIPLY));
+ break;
+ case "/":
+ expressions.push(new OperatorDiceExpression(right, left,
+ DiceExpressionType.DIVIDE));
+ break;
+ case "c":
+ expressions.push(new CompoundDice(left, right));
+ break;
+ case "d":
+ expressions.push(new ComplexDice(left, right));
+ break;
+ default:
+ /*
+ * Parse it as a
+ * variable reference
+ *
+ * Make sure to restore
+ * popped variables
+ */
+ expressions.push(left);
+ expressions.push(right);
- expressions
- .push(new ReferenceDiceExpression(
- expressionPart,
- enviroment));
+ expressions.push(new ReferenceDiceExpression(expressionPart,
+ enviroment));
}
} else {
/*
- * Parse it as a variable reference
+ * Parse it as a variable
+ * reference
*/
- expressions.push(new ReferenceDiceExpression(
- expressionPart, enviroment));
+ expressions.push(new ReferenceDiceExpression(expressionPart,
+ enviroment));
}
}
}