diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-10-25 19:18:09 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-10-25 19:34:44 +0000 |
| commit | 368f2dd010defaf5f4b6deb70f45285cee8f244d (patch) | |
| tree | 55494f85341f23dd1e588fa070ef863ef7cfdef5 /src/main/java/org/zwobble/couscous/backends/python/PythonSerializer.java | |
| parent | 060ae04a695df6abac7445df3c5394b59da40f41 (diff) | |
Remove lombok
Diffstat (limited to 'src/main/java/org/zwobble/couscous/backends/python/PythonSerializer.java')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/backends/python/PythonSerializer.java | 80 |
1 files changed, 35 insertions, 45 deletions
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 249d9fa..1674e1f 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/PythonSerializer.java +++ b/src/main/java/org/zwobble/couscous/backends/python/PythonSerializer.java @@ -2,7 +2,6 @@ package org.zwobble.couscous.backends.python; import java.util.List; import java.util.function.Consumer; - import org.zwobble.couscous.backends.python.ast.PythonAssignmentNode; import org.zwobble.couscous.backends.python.ast.PythonAttributeAccessNode; import org.zwobble.couscous.backends.python.ast.PythonBlock; @@ -19,19 +18,17 @@ import org.zwobble.couscous.backends.python.ast.PythonModuleNode; import org.zwobble.couscous.backends.python.ast.PythonNode; import org.zwobble.couscous.backends.python.ast.PythonPassNode; import org.zwobble.couscous.backends.python.ast.PythonReturnNode; +import org.zwobble.couscous.backends.python.ast.PythonStatementNode; import org.zwobble.couscous.backends.python.ast.PythonStringLiteralNode; import org.zwobble.couscous.backends.python.ast.PythonVariableReferenceNode; import org.zwobble.couscous.backends.python.ast.visitors.PythonNodeVisitor; import org.zwobble.couscous.util.Action; - import static com.google.common.collect.Iterables.skip; -import lombok.val; - public class PythonSerializer implements PythonNodeVisitor { public static String serialize(PythonNode node) { - val writer = new PythonWriter(); - val serializer = new PythonSerializer(writer); + PythonWriter writer = new PythonWriter(); + PythonSerializer serializer = new PythonSerializer(writer); serializer.write(node); return writer.asString(); } @@ -50,22 +47,22 @@ public class PythonSerializer implements PythonNodeVisitor { public void visit(PythonIntegerLiteralNode integerLiteral) { writer.writeInteger(integerLiteral.getValue()); } - + @Override public void visit(PythonStringLiteralNode stringLiteral) { writer.writeStringLiteral(stringLiteral.getValue()); } - + @Override public void visit(PythonBooleanLiteralNode booleanLiteral) { writer.writeKeyword(booleanLiteral.getValue() ? "True" : "False"); } - + @Override public void visit(PythonVariableReferenceNode reference) { writer.writeIdentifier(reference.getName()); } - + @Override public void visit(PythonConditionalExpressionNode conditional) { writeParenthesised(conditional.getTrueValue()); @@ -78,14 +75,14 @@ public class PythonSerializer implements PythonNodeVisitor { writer.writeSpace(); writeParenthesised(conditional.getFalseValue()); } - + @Override public void visit(PythonAttributeAccessNode attributeAccess) { writeParenthesised(attributeAccess.getLeft()); writer.writeSymbol("."); writer.writeIdentifier(attributeAccess.getAttributeName()); } - + @Override public void visit(PythonCallNode call) { writeParenthesised(call.getCallee()); @@ -96,7 +93,7 @@ public class PythonSerializer implements PythonNodeVisitor { }); writer.writeSymbol(")"); } - + @Override public void visit(PythonGetSliceNode getSlice) { writeParenthesised(getSlice.getReceiver()); @@ -106,7 +103,7 @@ public class PythonSerializer implements PythonNodeVisitor { }); writer.writeSymbol("]"); } - + @Override public void visit(PythonReturnNode pythonReturn) { writer.writeStatement(() -> { @@ -115,14 +112,14 @@ public class PythonSerializer implements PythonNodeVisitor { write(pythonReturn.getValue()); }); } - + @Override public void visit(PythonPassNode pass) { writer.writeStatement(() -> { - writer.writeKeyword("pass"); + writer.writeKeyword("pass"); }); } - + @Override public void visit(PythonClassNode pythonClass) { writer.writeStatement(() -> { @@ -135,7 +132,7 @@ public class PythonSerializer implements PythonNodeVisitor { writeBlock(pythonClass.getBody()); }); } - + @Override public void visit(PythonFunctionDefinitionNode functionDefinition) { writer.writeStatement(() -> { @@ -148,7 +145,7 @@ public class PythonSerializer implements PythonNodeVisitor { writeBlock(functionDefinition.getBody()); }); } - + @Override public void visit(PythonAssignmentNode assignment) { writer.writeStatement(() -> { @@ -157,10 +154,9 @@ public class PythonSerializer implements PythonNodeVisitor { writer.writeSymbol("="); writer.writeSpace(); write(assignment.getValue()); - }); } - + @Override public void visit(PythonImportNode importNode) { writer.writeStatement(() -> { @@ -170,38 +166,32 @@ public class PythonSerializer implements PythonNodeVisitor { writer.writeSpace(); writer.writeKeyword("import"); writer.writeSpace(); - writeWithSeparator( - importNode.getAliases(), - alias -> { - writer.writeIdentifier(alias.getName()); - }, - () -> { - writer.writeSymbol(","); - writer.writeSpace(); - }); + writeWithSeparator(importNode.getAliases(), alias -> { + writer.writeIdentifier(alias.getName()); + }, () -> { + writer.writeSymbol(","); + writer.writeSpace(); + }); }); } - + private void writeParenthesised(PythonExpressionNode expression) { writer.writeSymbol("("); write(expression); writer.writeSymbol(")"); } - + private void writeArgumentNames(PythonFunctionDefinitionNode functionDefinition) { - writeWithSeparator( - functionDefinition.getArgumentNames(), - writer::writeIdentifier, - () -> { - writer.writeSymbol(","); - writer.writeSpace(); - }); + writeWithSeparator(functionDefinition.getArgumentNames(), writer::writeIdentifier, () -> { + writer.writeSymbol(","); + writer.writeSpace(); + }); } - + private <T> void writeWithSeparator(List<T> values, Consumer<T> writeValue, Action separator) { if (!values.isEmpty()) { writeValue.accept(values.get(0)); - for (val value : skip(values, 1)) { + for (T value : skip(values, 1)) { separator.run(); writeValue.accept(value); } @@ -210,16 +200,16 @@ public class PythonSerializer implements PythonNodeVisitor { @Override public void visit(PythonModuleNode module) { - for (val statement : module.getStatements()) { + for (PythonStatementNode statement : module.getStatements()) { write(statement); } } - + private void writeBlock(PythonBlock body) { writer.startBlock(); - for (val statement : body) { + for (PythonStatementNode statement : body) { write(statement); } writer.endBlock(); } -} +}
\ No newline at end of file |
