aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/backends/python/PythonSerializer.java
diff options
context:
space:
mode:
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.java26
1 files changed, 5 insertions, 21 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 fa71656..d3771d3 100644
--- a/src/main/java/org/zwobble/couscous/backends/python/PythonSerializer.java
+++ b/src/main/java/org/zwobble/couscous/backends/python/PythonSerializer.java
@@ -3,12 +3,6 @@ package org.zwobble.couscous.backends.python;
import org.zwobble.couscous.backends.SourceCodeWriter;
import org.zwobble.couscous.backends.python.ast.*;
import org.zwobble.couscous.backends.python.ast.visitors.PythonNodeVisitor;
-import org.zwobble.couscous.util.Action;
-
-import java.util.List;
-import java.util.function.Consumer;
-
-import static com.google.common.collect.Iterables.skip;
public class PythonSerializer implements PythonNodeVisitor {
public static String serialize(PythonNode node) {
@@ -75,7 +69,7 @@ public class PythonSerializer implements PythonNodeVisitor {
public void visit(PythonCallNode call) {
writeParenthesised(call.getCallee(), call);
writer.writeSymbol("(");
- writeWithSeparator(call.getArguments(), this::write, () -> {
+ writer.writeWithSeparator(call.getArguments(), this::write, () -> {
writer.writeSymbol(",");
writer.writeSpace();
});
@@ -86,7 +80,7 @@ public class PythonSerializer implements PythonNodeVisitor {
public void visit(PythonGetSliceNode getSlice) {
writeParenthesised(getSlice.getReceiver(), getSlice);
writer.writeSymbol("[");
- writeWithSeparator(getSlice.getArguments(), this::write, () -> {
+ writer.writeWithSeparator(getSlice.getArguments(), this::write, () -> {
writer.writeSymbol(":");
});
writer.writeSymbol("]");
@@ -170,7 +164,7 @@ public class PythonSerializer implements PythonNodeVisitor {
writer.writeSpace();
writer.writeKeyword("import");
writer.writeSpace();
- writeWithSeparator(importNode.getAliases(), alias -> {
+ writer.writeWithSeparator(importNode.getAliases(), alias -> {
writer.writeIdentifier(alias.getName());
}, () -> {
writer.writeSymbol(",");
@@ -215,22 +209,12 @@ public class PythonSerializer implements PythonNodeVisitor {
}
private void writeArgumentNames(PythonFunctionDefinitionNode functionDefinition) {
- writeWithSeparator(functionDefinition.getArgumentNames(), writer::writeIdentifier, () -> {
+ writer.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 (T value : skip(values, 1)) {
- separator.run();
- writeValue.accept(value);
- }
- }
- }
-
+
@Override
public void visit(PythonModuleNode module) {
for (PythonStatementNode statement : module.getStatements()) {