From 38cc6849339b37c29af80e2affc1931479d61c05 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Mon, 5 Oct 2015 13:31:20 +0100 Subject: Support assignment statements in the Python backend --- .../java/org/zwobble/couscous/ast/Assignment.java | 22 ---------------------- .../org/zwobble/couscous/ast/AssignmentNode.java | 22 ++++++++++++++++++++++ .../ast/visitors/ExpressionNodeVisitor.java | 4 ++-- 3 files changed, 24 insertions(+), 24 deletions(-) delete mode 100644 src/main/java/org/zwobble/couscous/ast/Assignment.java create mode 100644 src/main/java/org/zwobble/couscous/ast/AssignmentNode.java (limited to 'src/main/java/org/zwobble/couscous/ast') diff --git a/src/main/java/org/zwobble/couscous/ast/Assignment.java b/src/main/java/org/zwobble/couscous/ast/Assignment.java deleted file mode 100644 index d8bdaaf..0000000 --- a/src/main/java/org/zwobble/couscous/ast/Assignment.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.zwobble.couscous.ast; - -import org.zwobble.couscous.ast.visitors.ExpressionNodeVisitor; - -import static org.zwobble.couscous.ast.VariableReferenceNode.reference; - -import lombok.Value; - -@Value -public class Assignment implements ExpressionNode { - public static Assignment assign(VariableNode target, ExpressionNode value) { - return new Assignment(reference(target), value); - } - - VariableReferenceNode target; - ExpressionNode value; - - @Override - public T accept(ExpressionNodeVisitor visitor) { - return visitor.visit(this); - } -} diff --git a/src/main/java/org/zwobble/couscous/ast/AssignmentNode.java b/src/main/java/org/zwobble/couscous/ast/AssignmentNode.java new file mode 100644 index 0000000..861e847 --- /dev/null +++ b/src/main/java/org/zwobble/couscous/ast/AssignmentNode.java @@ -0,0 +1,22 @@ +package org.zwobble.couscous.ast; + +import org.zwobble.couscous.ast.visitors.ExpressionNodeVisitor; + +import static org.zwobble.couscous.ast.VariableReferenceNode.reference; + +import lombok.Value; + +@Value +public class AssignmentNode implements ExpressionNode { + public static AssignmentNode assign(VariableNode target, ExpressionNode value) { + return new AssignmentNode(reference(target), value); + } + + VariableReferenceNode target; + ExpressionNode value; + + @Override + public T accept(ExpressionNodeVisitor visitor) { + return visitor.visit(this); + } +} diff --git a/src/main/java/org/zwobble/couscous/ast/visitors/ExpressionNodeVisitor.java b/src/main/java/org/zwobble/couscous/ast/visitors/ExpressionNodeVisitor.java index 5d3ea9b..c47b942 100644 --- a/src/main/java/org/zwobble/couscous/ast/visitors/ExpressionNodeVisitor.java +++ b/src/main/java/org/zwobble/couscous/ast/visitors/ExpressionNodeVisitor.java @@ -1,6 +1,6 @@ package org.zwobble.couscous.ast.visitors; -import org.zwobble.couscous.ast.Assignment; +import org.zwobble.couscous.ast.AssignmentNode; import org.zwobble.couscous.ast.LiteralNode; import org.zwobble.couscous.ast.MethodCallNode; import org.zwobble.couscous.ast.StaticMethodCallNode; @@ -10,7 +10,7 @@ import org.zwobble.couscous.ast.VariableReferenceNode; public interface ExpressionNodeVisitor { T visit(LiteralNode literal); T visit(VariableReferenceNode variableReference); - T visit(Assignment assignment); + T visit(AssignmentNode assignment); T visit(TernaryConditionalNode ternaryConditional); T visit(MethodCallNode methodCall); T visit(StaticMethodCallNode staticMethodCall); -- cgit v1.2.3