From 6224bcf01c8a4c72def5255e9ffe90ccb0fb6c37 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Mon, 5 Oct 2015 17:30:22 +0100 Subject: Return nothing from Python node visitor --- .../couscous/backends/python/PythonSerializer.java | 35 ++++++++-------------- .../backends/python/ast/PythonAssignmentNode.java | 4 +-- .../python/ast/PythonBooleanLiteralNode.java | 4 +-- .../backends/python/ast/PythonClassNode.java | 4 +-- .../ast/PythonConditionalExpressionNode.java | 4 +-- .../python/ast/PythonFunctionDefinitionNode.java | 4 +-- .../python/ast/PythonIntegerLiteralNode.java | 4 +-- .../backends/python/ast/PythonModuleNode.java | 4 +-- .../couscous/backends/python/ast/PythonNode.java | 2 +- .../backends/python/ast/PythonPassNode.java | 5 ++-- .../backends/python/ast/PythonReturnNode.java | 4 +-- .../python/ast/PythonStringLiteralNode.java | 4 +-- .../python/ast/PythonVariableReferenceNode.java | 4 +-- .../python/ast/visitors/PythonNodeVisitor.java | 24 +++++++-------- 14 files changed, 47 insertions(+), 59 deletions(-) (limited to 'src/main/java/org/zwobble') diff --git a/src/main/java/org/zwobble/couscous/backends/python/PythonSerializer.java b/src/main/java/org/zwobble/couscous/backends/python/PythonSerializer.java index 2fa1887..7eaf2fb 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/PythonSerializer.java +++ b/src/main/java/org/zwobble/couscous/backends/python/PythonSerializer.java @@ -20,7 +20,7 @@ import static com.google.common.collect.Iterables.skip; import lombok.val; -public class PythonSerializer implements PythonNodeVisitor { +public class PythonSerializer implements PythonNodeVisitor { public static String serialize(PythonNode node) { val writer = new PythonWriter(); val serializer = new PythonSerializer(writer); @@ -39,31 +39,27 @@ public class PythonSerializer implements PythonNodeVisitor { } @Override - public Void visit(PythonIntegerLiteralNode integerLiteral) { + public void visit(PythonIntegerLiteralNode integerLiteral) { writer.writeInteger(integerLiteral.getValue()); - return null; } @Override - public Void visit(PythonStringLiteralNode stringLiteral) { + public void visit(PythonStringLiteralNode stringLiteral) { writer.writeStringLiteral(stringLiteral.getValue()); - return null; } @Override - public Void visit(PythonBooleanLiteralNode booleanLiteral) { + public void visit(PythonBooleanLiteralNode booleanLiteral) { writer.writeKeyword(booleanLiteral.getValue() ? "True" : "False"); - return null; } @Override - public Void visit(PythonVariableReferenceNode reference) { + public void visit(PythonVariableReferenceNode reference) { writer.writeIdentifier(reference.getName()); - return null; } @Override - public Void visit(PythonConditionalExpressionNode conditional) { + public void visit(PythonConditionalExpressionNode conditional) { writeParenthesised(conditional.getTrueValue()); writer.writeSpace(); writer.writeKeyword("if"); @@ -73,29 +69,26 @@ public class PythonSerializer implements PythonNodeVisitor { writer.writeKeyword("else"); writer.writeSpace(); writeParenthesised(conditional.getFalseValue()); - return null; } @Override - public Void visit(PythonReturnNode pythonReturn) { + public void visit(PythonReturnNode pythonReturn) { writer.writeStatement(() -> { writer.writeKeyword("return"); writer.writeSpace(); write(pythonReturn.getValue()); }); - return null; } @Override - public Void visit(PythonPassNode pass) { + public void visit(PythonPassNode pass) { writer.writeStatement(() -> { writer.writeKeyword("pass"); }); - return null; } @Override - public Void visit(PythonClassNode pythonClass) { + public void visit(PythonClassNode pythonClass) { writer.writeStatement(() -> { writer.writeKeyword("class"); writer.writeSpace(); @@ -105,11 +98,10 @@ public class PythonSerializer implements PythonNodeVisitor { writer.writeSymbol(")"); writeBlock(pythonClass.getBody()); }); - return null; } @Override - public Void visit(PythonFunctionDefinitionNode functionDefinition) { + public void visit(PythonFunctionDefinitionNode functionDefinition) { writer.writeStatement(() -> { writer.writeKeyword("def"); writer.writeSpace(); @@ -119,11 +111,10 @@ public class PythonSerializer implements PythonNodeVisitor { writer.writeSymbol(")"); writeBlock(functionDefinition.getBody()); }); - return null; } @Override - public Void visit(PythonAssignmentNode assignment) { + public void visit(PythonAssignmentNode assignment) { writer.writeStatement(() -> { write(assignment.getTarget()); writer.writeSpace(); @@ -132,7 +123,6 @@ public class PythonSerializer implements PythonNodeVisitor { write(assignment.getValue()); }); - return null; } private void writeParenthesised(PythonExpressionNode expression) { @@ -153,11 +143,10 @@ public class PythonSerializer implements PythonNodeVisitor { } @Override - public Void visit(PythonModuleNode module) { + public void visit(PythonModuleNode module) { for (val statement : module.getStatements()) { write(statement); } - return null; } private void writeBlock(PythonBlock body) { diff --git a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonAssignmentNode.java b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonAssignmentNode.java index d64e101..3624908 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonAssignmentNode.java +++ b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonAssignmentNode.java @@ -10,7 +10,7 @@ public class PythonAssignmentNode implements PythonStatementNode { PythonExpressionNode value; @Override - public T accept(PythonNodeVisitor visitor) { - return visitor.visit(this); + public void accept(PythonNodeVisitor visitor) { + visitor.visit(this); } } diff --git a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonBooleanLiteralNode.java b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonBooleanLiteralNode.java index 43caf0a..349ab4b 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonBooleanLiteralNode.java +++ b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonBooleanLiteralNode.java @@ -16,7 +16,7 @@ public class PythonBooleanLiteralNode implements PythonExpressionNode { } @Override - public T accept(PythonNodeVisitor visitor) { - return visitor.visit(this); + public void accept(PythonNodeVisitor visitor) { + visitor.visit(this); } } diff --git a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonClassNode.java b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonClassNode.java index 958a21a..3ed7eba 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonClassNode.java +++ b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonClassNode.java @@ -41,8 +41,8 @@ public class PythonClassNode implements PythonStatementNode { PythonBlock body; @Override - public T accept(PythonNodeVisitor visitor) { - return visitor.visit(this); + public void accept(PythonNodeVisitor visitor) { + visitor.visit(this); } } diff --git a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonConditionalExpressionNode.java b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonConditionalExpressionNode.java index 9fd406c..e39dce1 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonConditionalExpressionNode.java +++ b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonConditionalExpressionNode.java @@ -11,7 +11,7 @@ public class PythonConditionalExpressionNode implements PythonExpressionNode { PythonExpressionNode falseValue; @Override - public T accept(PythonNodeVisitor visitor) { - return visitor.visit(this); + public void accept(PythonNodeVisitor visitor) { + visitor.visit(this); } } diff --git a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonFunctionDefinitionNode.java b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonFunctionDefinitionNode.java index c67fe35..a7983d6 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonFunctionDefinitionNode.java +++ b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonFunctionDefinitionNode.java @@ -40,7 +40,7 @@ public class PythonFunctionDefinitionNode implements PythonStatementNode { PythonBlock body; @Override - public T accept(PythonNodeVisitor visitor) { - return visitor.visit(this); + public void accept(PythonNodeVisitor visitor) { + visitor.visit(this); } } diff --git a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonIntegerLiteralNode.java b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonIntegerLiteralNode.java index d8a9358..1c273d7 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonIntegerLiteralNode.java +++ b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonIntegerLiteralNode.java @@ -9,7 +9,7 @@ public class PythonIntegerLiteralNode implements PythonExpressionNode { int value; @Override - public T accept(PythonNodeVisitor visitor) { - return visitor.visit(this); + public void accept(PythonNodeVisitor visitor) { + visitor.visit(this); } } diff --git a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonModuleNode.java b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonModuleNode.java index 92d63a8..b3fd728 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonModuleNode.java +++ b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonModuleNode.java @@ -11,8 +11,8 @@ public class PythonModuleNode implements PythonNode { List statements; @Override - public T accept(PythonNodeVisitor visitor) { - return visitor.visit(this); + public void accept(PythonNodeVisitor visitor) { + visitor.visit(this); } } diff --git a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonNode.java b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonNode.java index cdda65d..b3702a9 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonNode.java +++ b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonNode.java @@ -3,5 +3,5 @@ package org.zwobble.couscous.backends.python.ast; import org.zwobble.couscous.backends.python.ast.visitors.PythonNodeVisitor; public interface PythonNode { - T accept(PythonNodeVisitor visitor); + void accept(PythonNodeVisitor visitor); } diff --git a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonPassNode.java b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonPassNode.java index 36d6695..c3ad236 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonPassNode.java +++ b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonPassNode.java @@ -6,11 +6,10 @@ public class PythonPassNode implements PythonStatementNode { public static final PythonPassNode PASS = new PythonPassNode(); private PythonPassNode() { - // TODO Auto-generated constructor stub } @Override - public T accept(PythonNodeVisitor visitor) { - return visitor.visit(this); + public void accept(PythonNodeVisitor visitor) { + visitor.visit(this); } } diff --git a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonReturnNode.java b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonReturnNode.java index b204b4d..adb4168 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonReturnNode.java +++ b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonReturnNode.java @@ -9,8 +9,8 @@ public class PythonReturnNode implements PythonStatementNode { PythonExpressionNode value; @Override - public T accept(PythonNodeVisitor visitor) { - return visitor.visit(this); + public void accept(PythonNodeVisitor visitor) { + visitor.visit(this); } } diff --git a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonStringLiteralNode.java b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonStringLiteralNode.java index 82d91db..bd35621 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonStringLiteralNode.java +++ b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonStringLiteralNode.java @@ -9,7 +9,7 @@ public class PythonStringLiteralNode implements PythonExpressionNode { String value; @Override - public T accept(PythonNodeVisitor visitor) { - return visitor.visit(this); + public void accept(PythonNodeVisitor visitor) { + visitor.visit(this); } } diff --git a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonVariableReferenceNode.java b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonVariableReferenceNode.java index 81f26d2..a67da73 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonVariableReferenceNode.java +++ b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonVariableReferenceNode.java @@ -9,7 +9,7 @@ public class PythonVariableReferenceNode implements PythonExpressionNode { String name; @Override - public T accept(PythonNodeVisitor visitor) { - return visitor.visit(this); + public void accept(PythonNodeVisitor visitor) { + visitor.visit(this); } } diff --git a/src/main/java/org/zwobble/couscous/backends/python/ast/visitors/PythonNodeVisitor.java b/src/main/java/org/zwobble/couscous/backends/python/ast/visitors/PythonNodeVisitor.java index 1f5b1a2..0cd43ae 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/ast/visitors/PythonNodeVisitor.java +++ b/src/main/java/org/zwobble/couscous/backends/python/ast/visitors/PythonNodeVisitor.java @@ -12,19 +12,19 @@ import org.zwobble.couscous.backends.python.ast.PythonReturnNode; import org.zwobble.couscous.backends.python.ast.PythonStringLiteralNode; import org.zwobble.couscous.backends.python.ast.PythonVariableReferenceNode; -public interface PythonNodeVisitor { - T visit(PythonIntegerLiteralNode integerLiteral); - T visit(PythonStringLiteralNode stringLiteral); - T visit(PythonBooleanLiteralNode booleanLiteral); - T visit(PythonVariableReferenceNode reference); - T visit(PythonConditionalExpressionNode conditional); +public interface PythonNodeVisitor { + void visit(PythonIntegerLiteralNode integerLiteral); + void visit(PythonStringLiteralNode stringLiteral); + void visit(PythonBooleanLiteralNode booleanLiteral); + void visit(PythonVariableReferenceNode reference); + void visit(PythonConditionalExpressionNode conditional); - T visit(PythonReturnNode pythonReturn); - T visit(PythonPassNode pass); - T visit(PythonClassNode pythonClass); - T visit(PythonFunctionDefinitionNode functionDefinition); - T visit(PythonAssignmentNode assignment); + void visit(PythonReturnNode pythonReturn); + void visit(PythonPassNode pass); + void visit(PythonClassNode pythonClass); + void visit(PythonFunctionDefinitionNode functionDefinition); + void visit(PythonAssignmentNode assignment); - T visit(PythonModuleNode module); + void visit(PythonModuleNode module); } -- cgit v1.2.3