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/rust/RustWriter.java3
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustBinaryOperator.java1
-rw-r--r--src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustWriterTests.java13
3 files changed, 17 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustWriter.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustWriter.java
index 53b9a38..af6c1a7 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustWriter.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustWriter.java
@@ -443,6 +443,7 @@ public class RustWriter implements AutoCloseable {
return switch (operator) {
case ADD -> RustPrecedence.ADDITIVE;
case EQUAL -> RustPrecedence.COMPARISON;
+ case LESS_THAN -> RustPrecedence.COMPARISON;
case NOT_EQUAL -> RustPrecedence.COMPARISON;
};
}
@@ -478,6 +479,7 @@ public class RustWriter implements AutoCloseable {
this.writer.write(switch (binaryExpression.operator()) {
case ADD -> "+";
case EQUAL -> "==";
+ case LESS_THAN -> "<";
case NOT_EQUAL -> "!=";
});
this.writer.write(" ");
@@ -492,6 +494,7 @@ public class RustWriter implements AutoCloseable {
return switch (binaryExpression.operator()) {
case ADD -> RustAssociativity.LEFT;
case EQUAL -> RustAssociativity.NONE;
+ case LESS_THAN -> RustAssociativity.NONE;
case NOT_EQUAL -> RustAssociativity.NONE;
};
}
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustBinaryOperator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustBinaryOperator.java
index 1d9fff7..05eca58 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustBinaryOperator.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustBinaryOperator.java
@@ -8,6 +8,7 @@ package org.zwobble.hobgoblin.compiler.output.lang.rust.ast;
public enum RustBinaryOperator {
ADD,
EQUAL,
+ LESS_THAN,
NOT_EQUAL
// Custom area start: org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustBinaryOperator body
diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustWriterTests.java b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustWriterTests.java
index 55c8f54..b5dd515 100644
--- a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustWriterTests.java
+++ b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustWriterTests.java
@@ -437,6 +437,19 @@ public class RustWriterTests {
}
@Test
+ public void binaryExpressionLessThan() throws IOException {
+ var rust = RustBinaryExpression.arbitrary()
+ .withOperator(RustBinaryOperator.LESS_THAN)
+ .withLeft(RustPath.of("x"))
+ .withRight(RustPath.of("y"))
+ .build();
+
+ var string = write(writer -> writer.writeTopLevelExpression(rust));
+
+ assertThat(string, equalTo("x < y"));
+ }
+
+ @Test
public void binaryExpressionNotEqual() throws IOException {
var rust = RustBinaryExpression.arbitrary()
.withOperator(RustBinaryOperator.NOT_EQUAL)