55import liquidjava .rj_language .ast .LiteralBoolean ;
66import liquidjava .rj_language .opt .derivation_node .BinaryDerivationNode ;
77import liquidjava .rj_language .opt .derivation_node .DerivationNode ;
8- import liquidjava .rj_language .opt .derivation_node .UnaryDerivationNode ;
98import liquidjava .rj_language .opt .derivation_node .ValDerivationNode ;
109
1110public class ExpressionSimplifier {
@@ -15,16 +14,15 @@ public class ExpressionSimplifier {
1514 * Returns a derivation node representing the tree of simplifications applied
1615 */
1716 public static ValDerivationNode simplify (Expression exp ) {
18- ValDerivationNode fixedPoint = simplifyToFixedPoint (null , null , exp );
17+ ValDerivationNode fixedPoint = simplifyToFixedPoint (null , exp );
1918 return simplifyValDerivationNode (fixedPoint );
2019 }
2120
2221 /**
2322 * Recursively applies propagation and folding until the expression stops changing (fixed point) Stops early if the
2423 * expression simplifies to 'true', which means we've simplified too much
2524 */
26- private static ValDerivationNode simplifyToFixedPoint (ValDerivationNode current , ValDerivationNode previous ,
27- Expression prevExp ) {
25+ private static ValDerivationNode simplifyToFixedPoint (ValDerivationNode current , Expression prevExp ) {
2826 // apply propagation and folding
2927 ValDerivationNode prop = ConstantPropagation .propagate (prevExp , current );
3028 ValDerivationNode fold = ConstantFolding .fold (prop );
@@ -37,7 +35,7 @@ private static ValDerivationNode simplifyToFixedPoint(ValDerivationNode current,
3735 }
3836
3937 // continue simplifying
40- return simplifyToFixedPoint (simplified , current , simplified .getValue ());
38+ return simplifyToFixedPoint (simplified , simplified .getValue ());
4139 }
4240
4341 /**
0 commit comments