From fe4766439c47ea146c37422e86d0ce0367f6c653 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Mon, 5 Oct 2015 13:09:04 +0100 Subject: Support function arguments in Python AST --- .../zwobble/couscous/backends/python/PythonSerializer.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/main/java/org/zwobble/couscous/backends/python/PythonSerializer.java') 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 b6adb80..c6cf516 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/PythonSerializer.java +++ b/src/main/java/org/zwobble/couscous/backends/python/PythonSerializer.java @@ -13,6 +13,8 @@ import org.zwobble.couscous.backends.python.ast.PythonStringLiteralNode; import org.zwobble.couscous.backends.python.ast.PythonWriter; import org.zwobble.couscous.backends.python.ast.visitors.PythonNodeVisitor; +import static com.google.common.collect.Iterables.skip; + import lombok.val; public class PythonSerializer implements PythonNodeVisitor { @@ -90,12 +92,24 @@ public class PythonSerializer implements PythonNodeVisitor { writer.writeSpace(); writer.writeIdentifier(functionDefinition.getName()); writer.writeSymbol("("); + writeArgumentNames(functionDefinition); writer.writeSymbol(")"); writeBlock(functionDefinition.getBody()); writer.endStatement(); return null; } + private void writeArgumentNames(PythonFunctionDefinitionNode functionDefinition) { + if (!functionDefinition.getArgumentNames().isEmpty()) { + writer.writeIdentifier(functionDefinition.getArgumentNames().get(0)); + for (val argumentName : skip(functionDefinition.getArgumentNames(), 1)) { + writer.writeSymbol(","); + writer.writeSpace(); + writer.writeIdentifier(argumentName); + } + } + } + @Override public Void visit(PythonModuleNode module) { for (val statement : module.getStatements()) { -- cgit v1.2.3