From 75b69c7f4e7ed84f82c549e36a3928a48720cc26 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Mon, 4 Jan 2016 23:28:22 +0000 Subject: Move type coercion decisions into the backends --- .../zwobble/couscous/ast/visitors/ExpressionNodeMapper.java | 11 ++--------- .../java/org/zwobble/couscous/ast/visitors/NodeMapper.java | 1 + .../zwobble/couscous/ast/visitors/NodeMapperWithDefault.java | 5 +++++ .../java/org/zwobble/couscous/ast/visitors/NodeVisitor.java | 1 + 4 files changed, 9 insertions(+), 9 deletions(-) (limited to 'src/main/java/org/zwobble/couscous/ast/visitors') 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 c1c3e88..87b8598 100644 --- a/src/main/java/org/zwobble/couscous/ast/visitors/ExpressionNodeMapper.java +++ b/src/main/java/org/zwobble/couscous/ast/visitors/ExpressionNodeMapper.java @@ -1,14 +1,6 @@ package org.zwobble.couscous.ast.visitors; -import org.zwobble.couscous.ast.AssignmentNode; -import org.zwobble.couscous.ast.ConstructorCallNode; -import org.zwobble.couscous.ast.FieldAccessNode; -import org.zwobble.couscous.ast.LiteralNode; -import org.zwobble.couscous.ast.MethodCallNode; -import org.zwobble.couscous.ast.StaticMethodCallNode; -import org.zwobble.couscous.ast.TernaryConditionalNode; -import org.zwobble.couscous.ast.ThisReferenceNode; -import org.zwobble.couscous.ast.VariableReferenceNode; +import org.zwobble.couscous.ast.*; public interface ExpressionNodeMapper { T visit(LiteralNode literal); @@ -20,4 +12,5 @@ public interface ExpressionNodeMapper { T visit(StaticMethodCallNode staticMethodCall); T visit(ConstructorCallNode call); T visit(FieldAccessNode fieldAccess); + T visit(TypeCoercionNode typeCoercion); } 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 d38d7fa..4267c75 100644 --- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapper.java +++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapper.java @@ -12,6 +12,7 @@ public interface NodeMapper { T visit(StaticMethodCallNode staticMethodCall); T visit(ConstructorCallNode call); T visit(FieldAccessNode fieldAccess); + T visit(TypeCoercionNode typeCoercion); T visit(ReturnNode returnNode); T visit(ExpressionStatementNode expressionStatement); 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 e4203e0..09cfcd3 100644 --- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapperWithDefault.java +++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapperWithDefault.java @@ -54,6 +54,11 @@ public class NodeMapperWithDefault implements NodeMapper { return defaultValue; } + @Override + public T visit(TypeCoercionNode typeCoercion) { + return defaultValue; + } + @Override public T visit(ReturnNode returnNode) { return defaultValue; 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 75e6da5..9f6be92 100644 --- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeVisitor.java +++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeVisitor.java @@ -12,6 +12,7 @@ public interface NodeVisitor { void visit(StaticMethodCallNode staticMethodCall); void visit(ConstructorCallNode call); void visit(FieldAccessNode fieldAccess); + void visit(TypeCoercionNode typeCoercion); void visit(ReturnNode returnNode); void visit(ExpressionStatementNode expressionStatement); -- cgit v1.2.3