summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-07-04 23:29:50 +0100
committerMichael Williamson <mike@zwobble.org>2026-07-04 23:29:50 +0100
commit5d15eac0f3fd7656f9b78c5796d936182572c297 (patch)
tree9f55557f701f67d5555e64c13d5fceec80a06d8b /src/main/java
parentd252f4ed1cc41ff39a81a930c264fe6cbf9e4508 (diff)
Add bitwise or to Java AST
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriter.java3
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaBinaryOperator.java1
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaMethodDeclaration.java20
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,