aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/ast/visitors
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-03-29 19:56:41 +0100
committerMichael Williamson <mike@zwobble.org>2016-03-29 19:56:41 +0100
commitbbfc91caf379a07198bfa352023524c0b54e1bb0 (patch)
treea1b081d63bb693f9cad63f980e430540a20d0586 /src/main/java/org/zwobble/couscous/ast/visitors
parentdf10352d2eea46b3e82cbd7783ed16e3f02fced6 (diff)
Add support for reading vararg method invocations
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast/visitors')
-rw-r--r--src/main/java/org/zwobble/couscous/ast/visitors/ExpressionNodeMapper.java2
-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.java7
-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, 14 insertions, 2 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 2836a22..2c8ed24 100644
--- a/src/main/java/org/zwobble/couscous/ast/visitors/ExpressionNodeMapper.java
+++ b/src/main/java/org/zwobble/couscous/ast/visitors/ExpressionNodeMapper.java
@@ -6,6 +6,7 @@ public interface ExpressionNodeMapper<T> {
T visit(LiteralNode literal);
T visit(VariableReferenceNode variableReference);
T visit(ThisReferenceNode reference);
+ T visit(ArrayNode array);
T visit(AssignmentNode assignment);
T visit(TernaryConditionalNode ternaryConditional);
T visit(MethodCallNode methodCall);
@@ -14,5 +15,4 @@ public interface ExpressionNodeMapper<T> {
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 338d8d2..3596896 100644
--- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapper.java
+++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapper.java
@@ -6,6 +6,7 @@ public interface NodeMapper<T> {
T visit(LiteralNode literal);
T visit(VariableReferenceNode variableReference);
T visit(ThisReferenceNode reference);
+ T visit(ArrayNode array);
T visit(AssignmentNode assignment);
T visit(TernaryConditionalNode ternaryConditional);
T visit(MethodCallNode methodCall);
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 bcb74d5..b3285ba 100644
--- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapperWithDefault.java
+++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapperWithDefault.java
@@ -23,7 +23,12 @@ public class NodeMapperWithDefault<T> implements NodeMapper<T> {
public T visit(ThisReferenceNode reference) {
return defaultValue;
}
-
+
+ @Override
+ public T visit(ArrayNode array) {
+ return defaultValue;
+ }
+
@Override
public T visit(AssignmentNode assignment) {
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 393bd7e..710ef99 100644
--- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java
+++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java
@@ -45,6 +45,11 @@ public class NodeTransformer {
}
@Override
+ public Node visit(ArrayNode array) {
+ return transformExpression(array);
+ }
+
+ @Override
public Node visit(AssignmentNode assignment) {
return transformExpression(assignment);
}
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 28c38fc..c70d662 100644
--- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeVisitor.java
+++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeVisitor.java
@@ -6,6 +6,7 @@ public interface NodeVisitor {
void visit(LiteralNode literal);
void visit(VariableReferenceNode variableReference);
void visit(ThisReferenceNode reference);
+ void visit(ArrayNode array);
void visit(AssignmentNode assignment);
void visit(TernaryConditionalNode ternaryConditional);
void visit(MethodCallNode methodCall);