diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-03-29 19:56:41 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-03-29 19:56:41 +0100 |
| commit | bbfc91caf379a07198bfa352023524c0b54e1bb0 (patch) | |
| tree | a1b081d63bb693f9cad63f980e430540a20d0586 /src/main/java/org/zwobble/couscous/ast/visitors | |
| parent | df10352d2eea46b3e82cbd7783ed16e3f02fced6 (diff) | |
Add support for reading vararg method invocations
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast/visitors')
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); |
