From bd8604234c849a1d612ed26d3d303bf2244589ff Mon Sep 17 00:00:00 2001 From: kdx Date: Sat, 10 Jun 2023 22:13:27 +0200 Subject: software engineering --- src/main.c | 16 ++++++++++------ testing.sh | 12 ++++++++++++ 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.* -- cgit v1.2.3