aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/backends/python/ast
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-10-05 17:21:55 +0100
committerMichael Williamson <mike@zwobble.org>2015-10-05 17:21:55 +0100
commit1448733a03e965d5cb9261a3519370ff5b34122d (patch)
treeb79a987f1f1591e431393ba4eee45a37310820a1 /src/main/java/org/zwobble/couscous/backends/python/ast
parent1c2195e727aaed3afe604eb602b105d7fa1f917d (diff)
Support ternary conditionals in Python backend
Diffstat (limited to 'src/main/java/org/zwobble/couscous/backends/python/ast')
-rw-r--r--src/main/java/org/zwobble/couscous/backends/python/ast/PythonConditionalExpressionNode.java17
-rw-r--r--src/main/java/org/zwobble/couscous/backends/python/ast/visitors/PythonNodeVisitor.java2
2 files changed, 19 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonConditionalExpressionNode.java b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonConditionalExpressionNode.java
new file mode 100644
index 0000000..9fd406c
--- /dev/null
+++ b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonConditionalExpressionNode.java
@@ -0,0 +1,17 @@
+package org.zwobble.couscous.backends.python.ast;
+
+import org.zwobble.couscous.backends.python.ast.visitors.PythonNodeVisitor;
+
+import lombok.Value;
+
+@Value(staticConstructor="pythonConditionalExpression")
+public class PythonConditionalExpressionNode implements PythonExpressionNode {
+ PythonExpressionNode condition;
+ PythonExpressionNode trueValue;
+ PythonExpressionNode falseValue;
+
+ @Override
+ public <T> T accept(PythonNodeVisitor<T> visitor) {
+ return visitor.visit(this);
+ }
+}
diff --git a/src/main/java/org/zwobble/couscous/backends/python/ast/visitors/PythonNodeVisitor.java b/src/main/java/org/zwobble/couscous/backends/python/ast/visitors/PythonNodeVisitor.java
index f5cd04f..1f5b1a2 100644
--- a/src/main/java/org/zwobble/couscous/backends/python/ast/visitors/PythonNodeVisitor.java
+++ b/src/main/java/org/zwobble/couscous/backends/python/ast/visitors/PythonNodeVisitor.java
@@ -3,6 +3,7 @@ package org.zwobble.couscous.backends.python.ast.visitors;
import org.zwobble.couscous.backends.python.ast.PythonAssignmentNode;
import org.zwobble.couscous.backends.python.ast.PythonBooleanLiteralNode;
import org.zwobble.couscous.backends.python.ast.PythonClassNode;
+import org.zwobble.couscous.backends.python.ast.PythonConditionalExpressionNode;
import org.zwobble.couscous.backends.python.ast.PythonFunctionDefinitionNode;
import org.zwobble.couscous.backends.python.ast.PythonIntegerLiteralNode;
import org.zwobble.couscous.backends.python.ast.PythonModuleNode;
@@ -16,6 +17,7 @@ public interface PythonNodeVisitor<T> {
T visit(PythonStringLiteralNode stringLiteral);
T visit(PythonBooleanLiteralNode booleanLiteral);
T visit(PythonVariableReferenceNode reference);
+ T visit(PythonConditionalExpressionNode conditional);
T visit(PythonReturnNode pythonReturn);
T visit(PythonPassNode pass);