diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-10-06 13:50:25 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-10-06 13:50:25 +0100 |
| commit | 8328a423de9aad4f1219243763d6d5d5e6f1e1de (patch) | |
| tree | f881364f5b8f1140113c2086b2f139724e3d13a0 /src/main/java/org | |
| parent | 7324dc0bd7c70c0be4a28ca2bba5522cceaf277f (diff) | |
Simplify argument generation
Diffstat (limited to 'src/main/java/org')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java b/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java index be24996..1065f65 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java +++ b/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java @@ -180,6 +180,11 @@ public class PythonCodeGenerator { return expression.accept(EXPRESSION_GENERATOR); } + private static List<PythonExpressionNode> generateExpressions(Iterable<ExpressionNode> expressions) { + return ImmutableList.copyOf( + Iterables.transform(expressions, PythonCodeGenerator::generateExpression)); + } + private static final ExpressionGenerator EXPRESSION_GENERATOR = new ExpressionGenerator(); private static class ExpressionGenerator implements ExpressionNodeMapper<PythonExpressionNode> { @@ -209,7 +214,7 @@ public class PythonCodeGenerator { @Override public PythonExpressionNode visit(MethodCallNode methodCall) { val receiver = generateExpression(methodCall.getReceiver()); - val arguments = generateArguments(methodCall); + val arguments = generateExpressions(methodCall.getArguments()); if (isPrimitive(methodCall.getReceiver())) { val primitiveMethodGenerator = PrimitiveMethods.getPrimitiveMethod( methodCall.getReceiver().getType(), @@ -230,10 +235,8 @@ public class PythonCodeGenerator { val methodReference = pythonAttributeAccess( classReference, staticMethodCall.getMethodName()); - - val arguments = staticMethodCall.getArguments().stream() - .map(PythonCodeGenerator::generateExpression) - .collect(Collectors.toList()); + + val arguments = generateExpressions(staticMethodCall.getArguments()); return pythonCall(methodReference, arguments); } @@ -242,19 +245,10 @@ public class PythonCodeGenerator { public PythonExpressionNode visit(ConstructorCallNode call) { val className = call.getType(); val classReference = pythonVariableReference(className.getSimpleName()); - - val arguments = call.getArguments().stream() - .map(PythonCodeGenerator::generateExpression) - .collect(Collectors.toList()); + val arguments = generateExpressions(call.getArguments()); return pythonCall(classReference, arguments); } - - private List<PythonExpressionNode> generateArguments(MethodCallNode methodCall) { - return methodCall.getArguments().stream() - .map(PythonCodeGenerator::generateExpression) - .collect(Collectors.toList()); - } } private static boolean isPrimitive(ExpressionNode value) { |
