aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/zwobble/couscous/ast/InstanceReceiver.java8
-rw-r--r--src/main/java/org/zwobble/couscous/ast/Receiver.java4
-rw-r--r--src/main/java/org/zwobble/couscous/ast/StaticReceiver.java8
-rw-r--r--src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java12
4 files changed, 5 insertions, 27 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/InstanceReceiver.java b/src/main/java/org/zwobble/couscous/ast/InstanceReceiver.java
index 6a3f42c..cbd4b6e 100644
--- a/src/main/java/org/zwobble/couscous/ast/InstanceReceiver.java
+++ b/src/main/java/org/zwobble/couscous/ast/InstanceReceiver.java
@@ -3,8 +3,6 @@ package org.zwobble.couscous.ast;
import org.zwobble.couscous.ast.visitors.NodeMapper;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
-import java.util.function.Function;
-
public class InstanceReceiver implements Receiver {
public static Receiver instanceReceiver(ExpressionNode expression) {
return new InstanceReceiver(expression);
@@ -21,15 +19,11 @@ public class InstanceReceiver implements Receiver {
}
@Override
- public Receiver replaceExpressions(Function<ExpressionNode, ExpressionNode> replace) {
- return new InstanceReceiver(replace.apply(expression));
- }
-
- @Override
public <T> T accept(Mapper<T> visitor) {
return visitor.visit(expression);
}
+ @Override
public Receiver transform(NodeTransformer transformer) {
return new InstanceReceiver(transformer.transformExpression(expression));
}
diff --git a/src/main/java/org/zwobble/couscous/ast/Receiver.java b/src/main/java/org/zwobble/couscous/ast/Receiver.java
index 0e0e077..1afb9b7 100644
--- a/src/main/java/org/zwobble/couscous/ast/Receiver.java
+++ b/src/main/java/org/zwobble/couscous/ast/Receiver.java
@@ -1,10 +1,10 @@
package org.zwobble.couscous.ast;
-import java.util.function.Function;
+import org.zwobble.couscous.ast.visitors.NodeTransformer;
public interface Receiver extends Node {
- Receiver replaceExpressions(Function<ExpressionNode, ExpressionNode> replace);
<T> T accept(Mapper<T> mapper);
+ Receiver transform(NodeTransformer transformer);
interface Mapper<T> {
T visit(ExpressionNode receiver);
diff --git a/src/main/java/org/zwobble/couscous/ast/StaticReceiver.java b/src/main/java/org/zwobble/couscous/ast/StaticReceiver.java
index 7814108..84cf266 100644
--- a/src/main/java/org/zwobble/couscous/ast/StaticReceiver.java
+++ b/src/main/java/org/zwobble/couscous/ast/StaticReceiver.java
@@ -3,8 +3,6 @@ package org.zwobble.couscous.ast;
import org.zwobble.couscous.ast.visitors.NodeMapper;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
-import java.util.function.Function;
-
public class StaticReceiver implements Receiver {
public static Receiver staticReceiver(TypeName type) {
return new StaticReceiver(type);
@@ -21,11 +19,6 @@ public class StaticReceiver implements Receiver {
}
@Override
- public Receiver replaceExpressions(Function<ExpressionNode, ExpressionNode> replace) {
- return this;
- }
-
- @Override
public <T> T accept(Mapper<T> mapper) {
return mapper.visit(type);
}
@@ -35,6 +28,7 @@ public class StaticReceiver implements Receiver {
return visitor.visit(this);
}
+ @Override
public Receiver transform(NodeTransformer transformer) {
return new StaticReceiver(transformer.transform(type));
}
diff --git a/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java b/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java
index 4f7f819..683b3b9 100644
--- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java
+++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java
@@ -191,17 +191,7 @@ public class NodeTransformer {
}
public Receiver transformReceiver(Receiver receiver) {
- return receiver.accept(new Receiver.Mapper<Receiver>() {
- @Override
- public Receiver visit(ExpressionNode receiver) {
- return new InstanceReceiver(receiver.transform(NodeTransformer.this));
- }
-
- @Override
- public Receiver visit(TypeName receiver) {
- return new StaticReceiver(transform(receiver));
- }
- });
+ return receiver.transform(this);
}
public VariableDeclaration transform(VariableDeclaration declaration) {