aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/backends/python/PythonSerializer.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-10-05 18:47:04 +0100
committerMichael Williamson <mike@zwobble.org>2015-10-05 18:47:04 +0100
commite44bf2c9e4108ab69a599acdbbf54a02b6984a07 (patch)
tree12b6c7f1cd51f4349706107ffa0f840843eec6fa /src/main/java/org/zwobble/couscous/backends/python/PythonSerializer.java
parent6207aa4f7d53fd3cd7a27aa35a3d261ad67afee5 (diff)
Use slice syntax instead of __getitem__
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.java16
1 files changed, 16 insertions, 0 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 1e10315..abab1bf 100644
--- a/src/main/java/org/zwobble/couscous/backends/python/PythonSerializer.java
+++ b/src/main/java/org/zwobble/couscous/backends/python/PythonSerializer.java
@@ -9,6 +9,7 @@ import org.zwobble.couscous.backends.python.ast.PythonClassNode;
import org.zwobble.couscous.backends.python.ast.PythonConditionalExpressionNode;
import org.zwobble.couscous.backends.python.ast.PythonExpressionNode;
import org.zwobble.couscous.backends.python.ast.PythonFunctionDefinitionNode;
+import org.zwobble.couscous.backends.python.ast.PythonGetSliceNode;
import org.zwobble.couscous.backends.python.ast.PythonIntegerLiteralNode;
import org.zwobble.couscous.backends.python.ast.PythonModuleNode;
import org.zwobble.couscous.backends.python.ast.PythonNode;
@@ -96,6 +97,21 @@ public class PythonSerializer implements PythonNodeVisitor {
}
@Override
+ public void visit(PythonGetSliceNode getSlice) {
+ writeParenthesised(getSlice.getReceiver());
+ writer.writeSymbol("[");
+ // TODO: remove this duplication
+ if (!getSlice.getArguments().isEmpty()) {
+ write(getSlice.getArguments().get(0));
+ for (val argumentName : skip(getSlice.getArguments(), 1)) {
+ writer.writeSymbol(":");
+ write(argumentName);
+ }
+ }
+ writer.writeSymbol("]");
+ }
+
+ @Override
public void visit(PythonReturnNode pythonReturn) {
writer.writeStatement(() -> {
writer.writeKeyword("return");