diff options
Diffstat (limited to 'src')
3 files changed, 15 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriter.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriter.java index ec91f63..e8e0f40 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriter.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriter.java @@ -44,6 +44,7 @@ public class JavaWriter implements AutoCloseable { this.writer.write(" "); this.writer.write(switch (binaryOperation.operator()) { case ASSIGN -> "="; + case BITWISE_AND -> "&"; case UNSIGNED_RIGHT_SHIFT -> ">>>"; }); this.writer.write(" "); diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaBinaryOperator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaBinaryOperator.java index 4f646ba..44073fa 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaBinaryOperator.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaBinaryOperator.java @@ -7,6 +7,7 @@ package org.zwobble.hobgoblin.compiler.output.lang.java.ast; public enum JavaBinaryOperator { ASSIGN, + BITWISE_AND, UNSIGNED_RIGHT_SHIFT // Custom area start: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaBinaryOperator body diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriterTests.java b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriterTests.java index 8c3531f..e1e43ad 100644 --- a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriterTests.java +++ b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriterTests.java @@ -862,6 +862,19 @@ public class JavaWriterTests { } @Test + public void binaryOperationBitwiseAnd() throws IOException { + var java = JavaBinaryOperation.arbitrary() + .withOperator(JavaBinaryOperator.BITWISE_AND) + .withLeft(JavaRef.arbitrary().withName(JavaIdentifier.of("x"))) + .withRight(JavaRef.arbitrary().withName(JavaIdentifier.of("y"))) + .build(); + + var string = write(writer -> writer.writeExpression(java)); + + assertThat(string, equalTo("x & y")); + } + + @Test public void fieldAccess() throws IOException { var java = new JavaFieldAccess( new JavaRef(JavaIdentifier.of("one")), |
