summaryrefslogtreecommitdiff
path: root/dice-lang/src/main/java/bjc/dicelang/IDiceExpression.java
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2016-04-04 10:08:00 -0400
committerbculkin2442 <bjculkin@mix.wvu.edu>2016-04-04 10:08:00 -0400
commit66b3ea905d077577a32ed82983b0cd9e8ee10bea (patch)
treee1038a380c0714d4dda986514b365b9e474d3c15 /dice-lang/src/main/java/bjc/dicelang/IDiceExpression.java
parentb296ecf265120a0cac9cc5c558bdc60c6a27fff2 (diff)
Work on optimizations
Diffstat (limited to 'dice-lang/src/main/java/bjc/dicelang/IDiceExpression.java')
-rw-r--r--dice-lang/src/main/java/bjc/dicelang/IDiceExpression.java25
1 files changed, 24 insertions, 1 deletions
diff --git a/dice-lang/src/main/java/bjc/dicelang/IDiceExpression.java b/dice-lang/src/main/java/bjc/dicelang/IDiceExpression.java
index 93a75b9..c6aa0a7 100644
--- a/dice-lang/src/main/java/bjc/dicelang/IDiceExpression.java
+++ b/dice-lang/src/main/java/bjc/dicelang/IDiceExpression.java
@@ -14,4 +14,27 @@ public interface IDiceExpression {
* @return The result of rowing the dice
*/
public int roll();
-}
+
+ /**
+ * Optimize this expression to a scalar value
+ *
+ * @return This expression, optimized to a scalar value
+ *
+ * @throws UnsupportedOperationException
+ * if this type of expression can't be optimized
+ */
+ public default int optimize() {
+ throw new UnsupportedOperationException(
+ "Can't optimize this type of expression");
+ }
+
+ /**
+ * Check if this expression can be optimized to a scalar value
+ *
+ * @return Whether or not this expression can be optimized to a scalar
+ * value
+ */
+ public default boolean canOptimize() {
+ return false;
+ }
+} \ No newline at end of file