diff options
4 files changed, 20 insertions, 2 deletions
diff --git a/hobgoblin/src/output/lang/java/ast.hob b/hobgoblin/src/output/lang/java/ast.hob index f70d485..b1352cc 100644 --- a/hobgoblin/src/output/lang/java/ast.hob +++ b/hobgoblin/src/output/lang/java/ast.hob @@ -251,10 +251,11 @@ enum JavaBinaryOperator { variant bitwiseAnd; variant bitwiseOr; variant equalTo; - variant multiply; + variant greaterThan; variant leftShift; variant lessThan; variant logicalAnd; + variant multiply; variant notEqualTo; variant unsignedRightShift; } 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 @@ -1349,6 +1349,19 @@ public class JavaWriterTests { } @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() .withOperator(JavaBinaryOperator.LEFT_SHIFT) |
