From 2a69c9d95420784198251ab23a4828775e901f44 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 1 Aug 2026 11:20:03 +0100 Subject: Add greater than to Java AST --- .../hobgoblin/compiler/output/lang/java/JavaWriter.java | 3 +++ .../compiler/output/lang/java/ast/JavaBinaryOperator.java | 3 ++- .../compiler/output/lang/java/JavaWriterTests.java | 13 +++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) (limited to 'src') 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 d580f14..54b4c12 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 @@ -732,6 +732,7 @@ public class JavaWriter implements AutoCloseable { case BITWISE_AND -> JavaPrecedence.BITWISE_AND; case BITWISE_OR -> JavaPrecedence.BITWISE_INCLUSIVE_OR; case EQUAL_TO -> JavaPrecedence.EQUALITY; + case GREATER_THAN -> JavaPrecedence.RELATIONAL; case LOGICAL_AND -> JavaPrecedence.LOGICAL_AND; case LEFT_SHIFT -> JavaPrecedence.SHIFT; case LESS_THAN -> JavaPrecedence.RELATIONAL; @@ -769,6 +770,7 @@ public class JavaWriter implements AutoCloseable { case BITWISE_AND -> "&"; case BITWISE_OR -> "|"; case EQUAL_TO -> "=="; + case GREATER_THAN -> ">"; case LEFT_SHIFT -> "<<"; case LESS_THAN -> "<"; case LOGICAL_AND -> "&&"; @@ -791,6 +793,7 @@ public class JavaWriter implements AutoCloseable { case BITWISE_AND -> true; case BITWISE_OR -> true; case EQUAL_TO -> true; + case GREATER_THAN -> true; case LEFT_SHIFT -> true; case LESS_THAN -> true; case LOGICAL_AND -> true; 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 e9c2a54..d098691 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 @@ -11,10 +11,11 @@ public enum JavaBinaryOperator { BITWISE_AND, BITWISE_OR, EQUAL_TO, - MULTIPLY, + GREATER_THAN, LEFT_SHIFT, LESS_THAN, LOGICAL_AND, + MULTIPLY, NOT_EQUAL_TO, UNSIGNED_RIGHT_SHIFT 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 15dbbbd..50f581e 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 @@ -1348,6 +1348,19 @@ public class JavaWriterTests { assertThat(string, equalTo("x == y")); } + @Test + public void binaryOperationGreaterThan() throws IOException { + var java = new JavaBinaryOperation( + JavaBinaryOperator.GREATER_THAN, + new JavaRef(JavaIdentifier.of("x")), + new JavaIntegerLiteral(42) + ); + + var string = write(writer -> writer.writeTopLevelExpression(java)); + + assertThat(string, equalTo("x > 42")); + } + @Test public void binaryOperationLeftShift() throws IOException { var java = JavaBinaryOperation.arbitrary() -- cgit v1.2.3