aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/ast/visitors
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-04-09 15:08:18 +0100
committerMichael Williamson <mike@zwobble.org>2016-04-09 15:08:18 +0100
commita0e8824a6deff07ccfe76be813e508d9266ac23e (patch)
tree17a43585836f24cb368db77be7e37b95dc1c16a3 /src/main/java/org/zwobble/couscous/ast/visitors
parent2bc236438ce5d5120c9c34f213b4b49b475dcee2 (diff)
C# backend: Support generic method definitions
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast/visitors')
-rw-r--r--src/main/java/org/zwobble/couscous/ast/visitors/NodeMapper.java2
-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
4 files changed, 13 insertions, 0 deletions
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 3596896..8b7cb3b 100644
--- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapper.java
+++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapper.java
@@ -25,6 +25,8 @@ public interface NodeMapper<T> {
T visit(IfStatementNode ifStatement);
T visit(WhileNode whileLoop);
+
+ T visit(FormalTypeParameterNode parameter);
T visit(FormalArgumentNode formalArgumentNode);
T visit(AnnotationNode annotation);
T visit(MethodNode methodNode);
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 b3285ba..6ff3c06 100644
--- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapperWithDefault.java
+++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapperWithDefault.java
@@ -105,6 +105,11 @@ public class NodeMapperWithDefault<T> implements NodeMapper<T> {
}
@Override
+ public T visit(FormalTypeParameterNode parameter) {
+ return defaultValue;
+ }
+
+ @Override
public T visit(AnnotationNode annotation) {
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 6e63059..e86e2ee 100644
--- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java
+++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java
@@ -126,6 +126,11 @@ public class NodeTransformer {
}
@Override
+ public Node visit(FormalTypeParameterNode parameter) {
+ return transformFormalTypeParameter(parameter);
+ }
+
+ @Override
public Node visit(FormalArgumentNode formalArgumentNode) {
return transformFormalArgument(formalArgumentNode);
}
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 c70d662..336d016 100644
--- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeVisitor.java
+++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeVisitor.java
@@ -25,6 +25,7 @@ public interface NodeVisitor {
void visit(IfStatementNode ifStatement);
void visit(WhileNode whileLoop);
+ void visit(FormalTypeParameterNode parameter);
void visit(FormalArgumentNode formalArgumentNode);
void visit(AnnotationNode annotation);
void visit(MethodNode methodNode);