aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/ast/visitors
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-06-17 21:36:44 +0100
committerMichael Williamson <mike@zwobble.org>2016-06-17 21:36:54 +0100
commit54cff9ee73eadd200c6793c5d2a520f76e1aba4f (patch)
treeecf80cb2b239c351673d35ba7a727efaa9ee9b85 /src/main/java/org/zwobble/couscous/ast/visitors
parent65371fd16808d9c8f34d0e0cd2ba030bcc6a7128 (diff)
Support instanceof in C# backend
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast/visitors')
-rw-r--r--src/main/java/org/zwobble/couscous/ast/visitors/ExpressionNodeMapper.java1
-rw-r--r--src/main/java/org/zwobble/couscous/ast/visitors/NodeMapper.java1
-rw-r--r--src/main/java/org/zwobble/couscous/ast/visitors/NodeMapperWithDefault.java5
-rw-r--r--src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java5
-rw-r--r--src/main/java/org/zwobble/couscous/ast/visitors/NodeVisitor.java1
5 files changed, 13 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/visitors/ExpressionNodeMapper.java b/src/main/java/org/zwobble/couscous/ast/visitors/ExpressionNodeMapper.java
index 2c8ed24..acc972a 100644
--- a/src/main/java/org/zwobble/couscous/ast/visitors/ExpressionNodeMapper.java
+++ b/src/main/java/org/zwobble/couscous/ast/visitors/ExpressionNodeMapper.java
@@ -12,6 +12,7 @@ public interface ExpressionNodeMapper<T> {
T visit(MethodCallNode methodCall);
T visit(ConstructorCallNode call);
T visit(OperationNode operation);
+ T visit(InstanceOfNode instanceOf);
T visit(FieldAccessNode fieldAccess);
T visit(TypeCoercionNode typeCoercion);
T visit(CastNode cast);
diff --git a/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapper.java b/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapper.java
index 50855d8..7ceef06 100644
--- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapper.java
+++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapper.java
@@ -12,6 +12,7 @@ public interface NodeMapper<T> {
T visit(MethodCallNode methodCall);
T visit(ConstructorCallNode call);
T visit(OperationNode operation);
+ T visit(InstanceOfNode instanceOf);
T visit(FieldAccessNode fieldAccess);
T visit(TypeCoercionNode typeCoercion);
T visit(CastNode cast);
diff --git a/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapperWithDefault.java b/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapperWithDefault.java
index 9fd2617..f98fb1b 100644
--- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapperWithDefault.java
+++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapperWithDefault.java
@@ -55,6 +55,11 @@ public class NodeMapperWithDefault<T> implements NodeMapper<T> {
}
@Override
+ public T visit(InstanceOfNode instanceOf) {
+ return defaultValue;
+ }
+
+ @Override
public T visit(FieldAccessNode fieldAccess) {
return defaultValue;
}
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 0edbad9..27116ae 100644
--- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java
+++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java
@@ -76,6 +76,11 @@ public class NodeTransformer {
}
@Override
+ public Node visit(InstanceOfNode instanceOf) {
+ return transformExpression(instanceOf);
+ }
+
+ @Override
public Node visit(FieldAccessNode fieldAccess) {
return transformExpression(fieldAccess);
}
diff --git a/src/main/java/org/zwobble/couscous/ast/visitors/NodeVisitor.java b/src/main/java/org/zwobble/couscous/ast/visitors/NodeVisitor.java
index 9ac4a16..648fb5f 100644
--- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeVisitor.java
+++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeVisitor.java
@@ -12,6 +12,7 @@ public interface NodeVisitor {
void visit(MethodCallNode methodCall);
void visit(ConstructorCallNode call);
void visit(OperationNode operation);
+ void visit(InstanceOfNode instanceOf);
void visit(FieldAccessNode fieldAccess);
void visit(TypeCoercionNode typeCoercion);
void visit(CastNode cast);