From 66b3ea905d077577a32ed82983b0cd9e8ee10bea Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Mon, 4 Apr 2016 10:08:00 -0400 Subject: Work on optimizations --- .../main/java/bjc/dicelang/IDiceExpression.java | 25 +++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'dice-lang/src/main/java/bjc/dicelang/IDiceExpression.java') 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 -- cgit v1.2.3