aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2025-02-02 18:48:30 +0000
committerMichael Williamson <mike@zwobble.org>2025-02-02 18:48:30 +0000
commit037fd3fee47b0fd94e8f7a3cff25ab7578a6e5da (patch)
tree22db67ddf944e565d778b32c291125f8b53ea72d /src/main/java
parent1d41ef64406e575caf012f8a50febc15805bafca (diff)
Type check relational operations for integers
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/ast/typed/TypedBinaryOperator.java4
-rw-r--r--src/main/java/org/shedlang/compiler/shid/ShidCodeGen.java2
-rw-r--r--src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java8
3 files changed, 10 insertions, 4 deletions
diff --git a/src/main/java/org/shedlang/compiler/ast/typed/TypedBinaryOperator.java b/src/main/java/org/shedlang/compiler/ast/typed/TypedBinaryOperator.java
index 2f2e5929..d1f32073 100644
--- a/src/main/java/org/shedlang/compiler/ast/typed/TypedBinaryOperator.java
+++ b/src/main/java/org/shedlang/compiler/ast/typed/TypedBinaryOperator.java
@@ -6,6 +6,10 @@ import org.shedlang.compiler.types.Types;
public enum TypedBinaryOperator {
INT_ADD(Types.INT),
INT_EQUALS(Types.BOOL),
+ INT_GREATER_THAN(Types.BOOL),
+ INT_GREATER_THAN_OR_EQUAL(Types.BOOL),
+ INT_LESS_THAN(Types.BOOL),
+ INT_LESS_THAN_OR_EQUAL(Types.BOOL),
INT_NOT_EQUAL(Types.BOOL),
INT_SUB(Types.INT),
STRING_ADD(Types.STRING);
diff --git a/src/main/java/org/shedlang/compiler/shid/ShidCodeGen.java b/src/main/java/org/shedlang/compiler/shid/ShidCodeGen.java
index 350ed118..1d7c94b6 100644
--- a/src/main/java/org/shedlang/compiler/shid/ShidCodeGen.java
+++ b/src/main/java/org/shedlang/compiler/shid/ShidCodeGen.java
@@ -45,6 +45,8 @@ public class ShidCodeGen {
new ShidIntSub(node.source());
case STRING_ADD ->
new ShidStringAdd(node.source());
+ default ->
+ throw new UnsupportedOperationException("TODO");
});
return context;
diff --git a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java
index db249c0d..d4b52aa4 100644
--- a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java
+++ b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java
@@ -239,16 +239,16 @@ public class TypeChecker {
TypedBinaryOperator.INT_EQUALS;
case GREATER_THAN ->
- throw new UnsupportedOperationException("TODO");
+ TypedBinaryOperator.INT_GREATER_THAN;
case GREATER_THAN_OR_EQUAL ->
- throw new UnsupportedOperationException("TODO");
+ TypedBinaryOperator.INT_GREATER_THAN_OR_EQUAL;
case LESS_THAN ->
- throw new UnsupportedOperationException("TODO");
+ TypedBinaryOperator.INT_LESS_THAN;
case LESS_THAN_OR_EQUAL ->
- throw new UnsupportedOperationException("TODO");
+ TypedBinaryOperator.INT_LESS_THAN_OR_EQUAL;
case NOT_EQUAL ->
TypedBinaryOperator.INT_NOT_EQUAL;