diff options
Diffstat (limited to 'src/main/java/org')
3 files changed, 31 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 e5a13e5..b6adb80 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/PythonSerializer.java +++ b/src/main/java/org/zwobble/couscous/backends/python/PythonSerializer.java @@ -1,6 +1,7 @@ package org.zwobble.couscous.backends.python; import org.zwobble.couscous.backends.python.ast.PythonBlock; +import org.zwobble.couscous.backends.python.ast.PythonBooleanLiteralNode; import org.zwobble.couscous.backends.python.ast.PythonClassNode; import org.zwobble.couscous.backends.python.ast.PythonFunctionDefinitionNode; import org.zwobble.couscous.backends.python.ast.PythonIntegerLiteralNode; @@ -45,6 +46,12 @@ public class PythonSerializer implements PythonNodeVisitor<Void> { } @Override + public Void visit(PythonBooleanLiteralNode booleanLiteral) { + writer.writeKeyword(booleanLiteral.getValue() ? "True" : "False"); + return null; + } + + @Override public Void visit(PythonReturnNode pythonReturn) { writer.startStatement(); writer.writeKeyword("return"); diff --git a/src/main/java/org/zwobble/couscous/backends/python/ast/PythonBooleanLiteralNode.java b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonBooleanLiteralNode.java new file mode 100644 index 0000000..43caf0a --- /dev/null +++ b/src/main/java/org/zwobble/couscous/backends/python/ast/PythonBooleanLiteralNode.java @@ -0,0 +1,22 @@ +package org.zwobble.couscous.backends.python.ast; + +import org.zwobble.couscous.backends.python.ast.visitors.PythonNodeVisitor; + +import lombok.AccessLevel; +import lombok.Getter; +import lombok.Value; + +@Value(staticConstructor="pythonBooleanLiteral") +public class PythonBooleanLiteralNode implements PythonExpressionNode { + @Getter(value = AccessLevel.NONE) + boolean value; + + public boolean getValue() { + return value; + } + + @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 0210df6..42f97a0 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 @@ -1,5 +1,6 @@ package org.zwobble.couscous.backends.python.ast.visitors; +import org.zwobble.couscous.backends.python.ast.PythonBooleanLiteralNode; import org.zwobble.couscous.backends.python.ast.PythonClassNode; import org.zwobble.couscous.backends.python.ast.PythonFunctionDefinitionNode; import org.zwobble.couscous.backends.python.ast.PythonIntegerLiteralNode; @@ -11,6 +12,7 @@ import org.zwobble.couscous.backends.python.ast.PythonStringLiteralNode; public interface PythonNodeVisitor<T> { T visit(PythonIntegerLiteralNode integerLiteral); T visit(PythonStringLiteralNode stringLiteral); + T visit(PythonBooleanLiteralNode booleanLiteral); T visit(PythonReturnNode pythonReturn); T visit(PythonPassNode pass); |
