aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/ast/ExpressionNode.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast/ExpressionNode.java')
-rw-r--r--src/main/java/org/zwobble/couscous/ast/ExpressionNode.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/ExpressionNode.java b/src/main/java/org/zwobble/couscous/ast/ExpressionNode.java
index d07b485..79a0cd9 100644
--- a/src/main/java/org/zwobble/couscous/ast/ExpressionNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/ExpressionNode.java
@@ -2,6 +2,7 @@ package org.zwobble.couscous.ast;
import org.zwobble.couscous.ast.visitors.ExpressionNodeMapper;
import org.zwobble.couscous.ast.visitors.NodeMapper;
+import org.zwobble.couscous.ast.visitors.NodeTransformer;
import java.util.function.Function;
@@ -64,5 +65,14 @@ public interface ExpressionNode extends Node {
});
}
- ExpressionNode replaceExpressions(Function<ExpressionNode, ExpressionNode> replace);
+ ExpressionNode transform(NodeTransformer transformer);
+
+ default ExpressionNode replaceExpressions(Function<ExpressionNode, ExpressionNode> replace) {
+ return transform(new NodeTransformer() {
+ @Override
+ public ExpressionNode visit(ExpressionNode value) {
+ return replace.apply(value);
+ }
+ });
+ }
}