summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkdx <kikoodx@paranoici.org>2023-06-10 22:13:27 +0200
committerkdx <kikoodx@paranoici.org>2023-06-10 22:13:27 +0200
commitbd8604234c849a1d612ed26d3d303bf2244589ff (patch)
treede89d1fbe5595018985ad3737880a9e4516e2130
parent3c8cea2e1a4242910c2c7b659026f3066d3ca8d9 (diff)
downloadgolem-bd8604234c849a1d612ed26d3d303bf2244589ff.tar.gz
software engineering
-rw-r--r--src/main.c16
-rwxr-xr-xtesting.sh12
2 files changed, 22 insertions, 6 deletions
diff --git a/src/main.c b/src/main.c
index cbddd10..a704b36 100644
--- a/src/main.c
+++ b/src/main.c
@@ -165,7 +165,9 @@ typedef enum {
NOD_EQU, // ==
NOD_NEQ, // !=
NOD_LT, // <
- NOD_LE, // <=
+ NOD_LTE, // <=
+ NOD_GT, // >
+ NOD_GTE, // >=
NOD_AND, // &
NOD_OR, // |
NOD_XOR, // ^
@@ -431,17 +433,17 @@ static Node
}
if (equal(tok, "<=")) {
- node = new_binary(NOD_LE, node, add(&tok, tok->next));
+ node = new_binary(NOD_LTE, node, add(&tok, tok->next));
continue;
}
if (equal(tok, ">")) {
- node = new_binary(NOD_LT, add(&tok, tok->next), node);
+ node = new_binary(NOD_GT, node, add(&tok, tok->next));
continue;
}
if (equal(tok, ">=")) {
- node = new_binary(NOD_LE, add(&tok, tok->next), node);
+ node = new_binary(NOD_GTE, node, add(&tok, tok->next));
continue;
}
@@ -737,9 +739,11 @@ gen_expr(Node *node)
case NOD_EQU: op = "EQU"; break;
case NOD_NEQ: op = "NEQ"; break;
case NOD_LT: op = "LTH"; break;
- case NOD_LE: op = "GTH LIT 0001 XOR"; break;
+ case NOD_LTE: op = "LTE"; break;
+ case NOD_GT: op = "GTH"; break;
+ case NOD_GTE: op = "GTE"; break;
case NOD_AND: op = "AND"; break;
- case NOD_OR: op = "OR"; break;
+ case NOD_OR: op = "ORA"; break;
case NOD_XOR: op = "XOR"; break;
default: break;
}
diff --git a/testing.sh b/testing.sh
index 1489209..11a9290 100755
--- a/testing.sh
+++ b/testing.sh
@@ -36,4 +36,16 @@ test "$1" "global a[5] = 4; main() { wrt([a + 5] + '0'); wrt '\n'; }"
test "$1" "global a[3]; main() { [a] = 'U'; [a+1] = 'w'; [a+2] = '\n'; wrt[a]; wrt[a+1]; wrt[a]; wrt[a+2]; }"
test "$1" "main() { wrt('0' + div(6, 3)); wrt('\n'); } div(a, b) { return a / b; }"
test "$1" "main() { \"uwu\"; \"owo\"; }"
+test "$1" "main() { wrt('0' + (5 < 7)); wrt '\n'; }"
+test "$1" "main() { wrt('0' + (7 < 7)); wrt '\n'; }"
+test "$1" "main() { wrt('0' + (9 < 7)); wrt '\n'; }"
+test "$1" "main() { wrt('0' + (5 > 7)); wrt '\n'; }"
+test "$1" "main() { wrt('0' + (7 > 7)); wrt '\n'; }"
+test "$1" "main() { wrt('0' + (9 > 7)); wrt '\n'; }"
+test "$1" "main() { wrt('0' + (5 <= 7)); wrt '\n'; }"
+test "$1" "main() { wrt('0' + (7 <= 7)); wrt '\n'; }"
+test "$1" "main() { wrt('0' + (9 <= 7)); wrt '\n'; }"
+test "$1" "main() { wrt('0' + (5 >= 7)); wrt '\n'; }"
+test "$1" "main() { wrt('0' + (7 >= 7)); wrt '\n'; }"
+test "$1" "main() { wrt('0' + (9 >= 7)); wrt '\n'; }"
rm -f build/tmp.*