diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-07-10 20:56:56 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-07-10 20:56:56 +0100 |
| commit | acbe6e1325232f47f323e0207de74a049403d4bb (patch) | |
| tree | 2c23acde5c9f631c41b710f21dd87e7f6a9d3c1c /src/main/java | |
| parent | 2fa409c86fc3f4426c640c3715b3c15e8cd30a3c (diff) | |
Add add operator to Java AST
Diffstat (limited to 'src/main/java')
3 files changed, 5 insertions, 1 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 18df14e..aa1f3c1 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 @@ -604,6 +604,7 @@ public class JavaWriter implements AutoCloseable { private static JavaPrecedence precedence(JavaBinaryOperation binaryOperation) { return switch (binaryOperation.operator()) { + case ADD -> JavaPrecedence.ADDITIVE; case ASSIGN -> JavaPrecedence.ASSIGNMENT; case BITWISE_AND -> JavaPrecedence.BITWISE_AND; case BITWISE_OR -> JavaPrecedence.BITWISE_INCLUSIVE_OR; @@ -626,6 +627,7 @@ public class JavaWriter implements AutoCloseable { ); this.writer.write(" "); this.writer.write(switch (binaryOperation.operator()) { + case ADD -> "+"; case ASSIGN -> "="; case BITWISE_AND -> "&"; case BITWISE_OR -> "|"; @@ -645,6 +647,7 @@ public class JavaWriter implements AutoCloseable { private boolean isLeftAssociative(JavaBinaryOperator operator) { return switch (operator) { + case ADD -> true; case ASSIGN -> false; case BITWISE_AND -> true; case BITWISE_OR -> true; diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaBinaryOperation.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaBinaryOperation.java index cb1c0ef..e638b7f 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaBinaryOperation.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaBinaryOperation.java @@ -7,7 +7,7 @@ package org.zwobble.hobgoblin.compiler.output.lang.java.ast; public record JavaBinaryOperation(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaBinaryOperator operator, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaExpression left, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaExpression right) implements org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaExpression { public static org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaBinaryOperation.Builder arbitrary() { - return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaBinaryOperation.Builder(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaBinaryOperator.ASSIGN, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaBooleanLiteral.arbitrary().build(), org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaBooleanLiteral.arbitrary().build()); + return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaBinaryOperation.Builder(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaBinaryOperator.ADD, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaBooleanLiteral.arbitrary().build(), org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaBooleanLiteral.arbitrary().build()); } public record Builder(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaBinaryOperator operator, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaExpression left, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaExpression right) implements org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaExpression.Builder { 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 4eaa2a5..e51ad40 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 @@ -6,6 +6,7 @@ package org.zwobble.hobgoblin.compiler.output.lang.java.ast; // Custom area end: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaBinaryOperator imports public enum JavaBinaryOperator { + ADD, ASSIGN, BITWISE_AND, BITWISE_OR, |
