aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/ast/visitors
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-04-10 20:15:08 +0100
committerMichael Williamson <mike@zwobble.org>2016-04-10 20:16:18 +0100
commite856154d732a8ea798dc679f671e0834d9cbb395 (patch)
tree9695f7e20f6faac142e63e9c15d1e3a72e7542c3 /src/main/java/org/zwobble/couscous/ast/visitors
parente687d9cf6246bc0d1b3a407a87599039080b7b9e (diff)
Add reading of empty enums
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast/visitors')
-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.java9
-rw-r--r--src/main/java/org/zwobble/couscous/ast/visitors/NodeVisitor.java1
4 files changed, 16 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 8b7cb3b..3edece1 100644
--- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapper.java
+++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapper.java
@@ -34,4 +34,5 @@ public interface NodeMapper<T> {
T visit(FieldDeclarationNode declaration);
T visit(ClassNode classNode);
T visit(InterfaceNode interfaceNode);
+ T visit(EnumNode enumNode);
}
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 6ff3c06..c67116d 100644
--- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapperWithDefault.java
+++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapperWithDefault.java
@@ -135,6 +135,11 @@ public class NodeMapperWithDefault<T> implements NodeMapper<T> {
}
@Override
+ public T visit(EnumNode enumNode) {
+ return defaultValue;
+ }
+
+ @Override
public T visit(MethodNode methodNode) {
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 e86e2ee..73d0919 100644
--- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java
+++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java
@@ -164,6 +164,11 @@ public class NodeTransformer {
public Node visit(InterfaceNode interfaceNode) {
return transformInterface(interfaceNode);
}
+
+ @Override
+ public Node visit(EnumNode enumNode) {
+ return transformEnum(enumNode);
+ }
});
}
@@ -283,6 +288,10 @@ public class NodeTransformer {
return interfaceNode.transform(this);
}
+ private Node transformEnum(EnumNode enumNode) {
+ return enumNode.transform(this);
+ }
+
public List<AnnotationNode> transformAnnotations(List<AnnotationNode> annotations) {
return transformList(annotations, this::transformAnnotation);
}
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 336d016..167e89b 100644
--- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeVisitor.java
+++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeVisitor.java
@@ -33,4 +33,5 @@ public interface NodeVisitor {
void visit(FieldDeclarationNode declaration);
void visit(ClassNode classNode);
void visit(InterfaceNode interfaceNode);
+ void visit(EnumNode enumNode);
}