diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-07-04 23:29:50 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-07-04 23:29:50 +0100 |
| commit | 5d15eac0f3fd7656f9b78c5796d936182572c297 (patch) | |
| tree | 9f55557f701f67d5555e64c13d5fceec80a06d8b /src/main/java/org | |
| parent | d252f4ed1cc41ff39a81a930c264fe6cbf9e4508 (diff) | |
Add bitwise or to Java AST
Diffstat (limited to 'src/main/java/org')
3 files changed, 4 insertions, 20 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 253b469..6bb86d4 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 @@ -52,6 +52,7 @@ public class JavaWriter implements AutoCloseable { this.writer.write(switch (binaryOperation.operator()) { case ASSIGN -> "="; case BITWISE_AND -> "&"; + case BITWISE_OR -> "|"; case LEFT_SHIFT -> "<<"; case UNSIGNED_RIGHT_SHIFT -> ">>>"; }); @@ -67,6 +68,7 @@ public class JavaWriter implements AutoCloseable { return switch (operator) { case ASSIGN -> false; case BITWISE_AND -> true; + case BITWISE_OR -> true; case LEFT_SHIFT -> true; case UNSIGNED_RIGHT_SHIFT -> true; }; @@ -346,6 +348,7 @@ public class JavaWriter implements AutoCloseable { return switch (binaryOperation.operator()) { case ASSIGN -> JavaPrecedence.ASSIGNMENT; case BITWISE_AND -> JavaPrecedence.BITWISE_AND; + case BITWISE_OR -> JavaPrecedence.BITWISE_INCLUSIVE_OR; case LEFT_SHIFT -> JavaPrecedence.SHIFT; case UNSIGNED_RIGHT_SHIFT -> JavaPrecedence.SHIFT; }; 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 ba89103..162fefd 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 @@ -8,6 +8,7 @@ package org.zwobble.hobgoblin.compiler.output.lang.java.ast; public enum JavaBinaryOperator { ASSIGN, BITWISE_AND, + BITWISE_OR, LEFT_SHIFT, UNSIGNED_RIGHT_SHIFT diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaMethodDeclaration.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaMethodDeclaration.java index fff2413..00b8af9 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaMethodDeclaration.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaMethodDeclaration.java @@ -5,9 +5,6 @@ package org.zwobble.hobgoblin.compiler.output.lang.java.ast; // Custom area start: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration imports // Custom area end: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration imports -import java.util.List; -import java.util.Optional; - public record JavaMethodDeclaration(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier name, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaVisibility visibility, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodKind kind, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef returnType, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaParam> params, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef> throws_, java.util.Optional<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaBlock> body) implements org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration { public static org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder arbitrary() { return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration.Builder(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier.arbitrary().build(), org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaVisibility.PUBLIC, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodKind.STATIC, org.zwobble.hobgoblin.compiler.output.lang.java.ast.HobgoblinNativeAst.arbitraryJavaTypeRef(), java.util.List.of(), java.util.List.of(), java.util.Optional.empty()); @@ -81,23 +78,6 @@ public record JavaMethodDeclaration(org.zwobble.hobgoblin.compiler.output.lang.j } // Custom area start: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaMethodDeclaration body - public static Builder builder( - JavaIdentifier name, - JavaVisibility visibility, - JavaMethodKind kind, - JavaTypeRef returnType - ) { - return new Builder( - name, - visibility, - kind, - returnType, - List.of(), - List.of(), - Optional.empty() - ); - } - public JavaMethodDeclaration( JavaIdentifier name, JavaVisibility visibility, |
