summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-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/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriterTests.java13
3 files changed, 17 insertions, 0 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 4e4d8e5..b593364 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
@@ -724,6 +724,7 @@ public class JavaWriter implements AutoCloseable {
case LOGICAL_AND -> JavaPrecedence.LOGICAL_AND;
case LEFT_SHIFT -> JavaPrecedence.SHIFT;
case LESS_THAN -> JavaPrecedence.RELATIONAL;
+ case MULTIPLY -> JavaPrecedence.MULTIPLICATIVE;
case NOT_EQUAL_TO -> JavaPrecedence.EQUALITY;
case UNSIGNED_RIGHT_SHIFT -> JavaPrecedence.SHIFT;
};
@@ -760,6 +761,7 @@ public class JavaWriter implements AutoCloseable {
case LEFT_SHIFT -> "<<";
case LESS_THAN -> "<";
case LOGICAL_AND -> "&&";
+ case MULTIPLY -> "*";
case NOT_EQUAL_TO -> "!=";
case UNSIGNED_RIGHT_SHIFT -> ">>>";
});
@@ -781,6 +783,7 @@ public class JavaWriter implements AutoCloseable {
case LEFT_SHIFT -> true;
case LESS_THAN -> true;
case LOGICAL_AND -> true;
+ case MULTIPLY -> true;
case NOT_EQUAL_TO -> true;
case UNSIGNED_RIGHT_SHIFT -> 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 34d9d4e..e9c2a54 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,6 +11,7 @@ public enum JavaBinaryOperator {
BITWISE_AND,
BITWISE_OR,
EQUAL_TO,
+ MULTIPLY,
LEFT_SHIFT,
LESS_THAN,
LOGICAL_AND,
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 80c145d..2889032 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
@@ -1388,6 +1388,19 @@ public class JavaWriterTests {
}
@Test
+ public void binaryOperationMultiply() throws IOException {
+ var java = new JavaBinaryOperation(
+ JavaBinaryOperator.MULTIPLY,
+ new JavaRef(JavaIdentifier.of("x")),
+ new JavaRef(JavaIdentifier.of("y"))
+ );
+
+ var string = write(writer -> writer.writeTopLevelExpression(java));
+
+ assertThat(string, equalTo("x * y"));
+ }
+
+ @Test
public void binaryOperationNotEqualTo() throws IOException {
var java = new JavaBinaryOperation(
JavaBinaryOperator.NOT_EQUAL_TO,