diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-01-24 16:01:06 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-01-24 16:01:06 +0000 |
| commit | f2ed6b591da6149319c149d1c78694bfa9641a73 (patch) | |
| tree | 65cbe4fe98c28d4e0e4c130936d0dff8098bc489 /src/main/java/org/zwobble/couscous/ast/visitors | |
| parent | e448dbcfaab619dc85d0d6d7f4b3dfe827646e38 (diff) | |
Implement visitors on OperationNode instead of desugarring
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast/visitors')
5 files changed, 15 insertions, 1 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 c296a30..2836a22 100644 --- a/src/main/java/org/zwobble/couscous/ast/visitors/ExpressionNodeMapper.java +++ b/src/main/java/org/zwobble/couscous/ast/visitors/ExpressionNodeMapper.java @@ -10,7 +10,9 @@ public interface ExpressionNodeMapper<T> { T visit(TernaryConditionalNode ternaryConditional); T visit(MethodCallNode methodCall); T visit(ConstructorCallNode call); + T visit(OperationNode operation); 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 fb8da13..e0e16a8 100644 --- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapper.java +++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapper.java @@ -10,6 +10,7 @@ public interface NodeMapper<T> { T visit(TernaryConditionalNode ternaryConditional); T visit(MethodCallNode methodCall); T visit(ConstructorCallNode call); + T visit(OperationNode operation); 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 178442d..fb0b93a 100644 --- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapperWithDefault.java +++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapperWithDefault.java @@ -43,7 +43,12 @@ public class NodeMapperWithDefault<T> implements NodeMapper<T> { public T visit(ConstructorCallNode call) { return defaultValue; } - + + @Override + public T visit(OperationNode operation) { + 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 158b3ce..79a409c 100644 --- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java +++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java @@ -57,6 +57,11 @@ public class NodeTransformer implements ExpressionNodeMapper<ExpressionNode>, St } @Override + public ExpressionNode visit(OperationNode operationNode) { + return defaultTransformExpression(operationNode); + } + + @Override public ExpressionNode visit(FieldAccessNode fieldAccess) { return defaultTransformExpression(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 bf6240b..4a80008 100644 --- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeVisitor.java +++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeVisitor.java @@ -10,6 +10,7 @@ public interface NodeVisitor { void visit(TernaryConditionalNode ternaryConditional); void visit(MethodCallNode methodCall); void visit(ConstructorCallNode call); + void visit(OperationNode operation); void visit(FieldAccessNode fieldAccess); void visit(TypeCoercionNode typeCoercion); void visit(CastNode cast); |
