From 5d15eac0f3fd7656f9b78c5796d936182572c297 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 4 Jul 2026 23:29:50 +0100 Subject: Add bitwise or to Java AST --- .../compiler/output/lang/java/JavaWriter.java | 3 +++ .../output/lang/java/ast/JavaBinaryOperator.java | 1 + .../output/lang/java/ast/JavaMethodDeclaration.java | 20 -------------------- 3 files changed, 4 insertions(+), 20 deletions(-) (limited to 'src/main/java/org/zwobble') 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 params, java.util.List throws_, java.util.Optional 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, -- cgit v1.2.3