aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/ast/StatementNode.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast/StatementNode.java')
-rw-r--r--src/main/java/org/zwobble/couscous/ast/StatementNode.java11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/StatementNode.java b/src/main/java/org/zwobble/couscous/ast/StatementNode.java
index 4b9c9de..87b1319 100644
--- a/src/main/java/org/zwobble/couscous/ast/StatementNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/StatementNode.java
@@ -1,6 +1,7 @@
package org.zwobble.couscous.ast;
import org.zwobble.couscous.ast.visitors.NodeMapper;
+import org.zwobble.couscous.ast.visitors.NodeTransformer;
import org.zwobble.couscous.ast.visitors.StatementNodeMapper;
import java.util.function.Function;
@@ -38,5 +39,13 @@ public interface StatementNode extends Node {
});
}
- StatementNode replaceExpressions(Function<ExpressionNode, ExpressionNode> replace);
+ StatementNode transform(NodeTransformer transformer);
+ default StatementNode replaceExpressions(Function<ExpressionNode, ExpressionNode> replace) {
+ return transform(new NodeTransformer() {
+ @Override
+ public ExpressionNode visit(ExpressionNode value) {
+ return replace.apply(value);
+ }
+ });
+ }
}