summaryrefslogtreecommitdiff
path: root/dice-lang/src/main/java/bjc/dicelang/ast/optimization
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2016-04-18 17:22:36 -0400
committerbculkin2442 <bjculkin@mix.wvu.edu>2016-04-18 17:22:36 -0400
commitbf5f97983a7cd58e5d1147d6d6d93c2b307fe0fb (patch)
tree3d1e41c8a7b9cfa5f32c5708a3a223f4e7ee5e8f /dice-lang/src/main/java/bjc/dicelang/ast/optimization
parent24f3ce54983348e1aa0229d5c08b3fe99d739d40 (diff)
Implemented arrays
Diffstat (limited to 'dice-lang/src/main/java/bjc/dicelang/ast/optimization')
-rw-r--r--dice-lang/src/main/java/bjc/dicelang/ast/optimization/ConstantCollapser.java6
-rw-r--r--dice-lang/src/main/java/bjc/dicelang/ast/optimization/OperationCondenser.java1
2 files changed, 7 insertions, 0 deletions
diff --git a/dice-lang/src/main/java/bjc/dicelang/ast/optimization/ConstantCollapser.java b/dice-lang/src/main/java/bjc/dicelang/ast/optimization/ConstantCollapser.java
index e476d74..7b746ac 100644
--- a/dice-lang/src/main/java/bjc/dicelang/ast/optimization/ConstantCollapser.java
+++ b/dice-lang/src/main/java/bjc/dicelang/ast/optimization/ConstantCollapser.java
@@ -77,6 +77,12 @@ public class ConstantCollapser implements IOptimizationPass {
}
return new Tree<>(operator, children);
+ case ARRAY:
+ if (children.getSize() != 1) {
+ return new Tree<>(operator, children);
+ }
+
+ return children.first();
case ASSIGN:
case LET:
default:
diff --git a/dice-lang/src/main/java/bjc/dicelang/ast/optimization/OperationCondenser.java b/dice-lang/src/main/java/bjc/dicelang/ast/optimization/OperationCondenser.java
index f41a3ef..3988d2a 100644
--- a/dice-lang/src/main/java/bjc/dicelang/ast/optimization/OperationCondenser.java
+++ b/dice-lang/src/main/java/bjc/dicelang/ast/optimization/OperationCondenser.java
@@ -51,6 +51,7 @@ public class OperationCondenser {
case DIVIDE:
case COMPOUND:
return TopDownTransformResult.PUSHDOWN;
+ case ARRAY:
case ASSIGN:
case GROUP:
case LET: