diff options
author | kdx <kikoodx@paranoici.org> | 2023-06-10 22:13:27 +0200 |
---|---|---|
committer | kdx <kikoodx@paranoici.org> | 2023-06-10 22:13:27 +0200 |
commit | bd8604234c849a1d612ed26d3d303bf2244589ff (patch) | |
tree | de89d1fbe5595018985ad3737880a9e4516e2130 | |
parent | 3c8cea2e1a4242910c2c7b659026f3066d3ca8d9 (diff) | |
download | golem-bd8604234c849a1d612ed26d3d303bf2244589ff.tar.gz |
software engineering
-rw-r--r-- | src/main.c | 16 | ||||
-rwxr-xr-x | testing.sh | 12 |
2 files changed, 22 insertions, 6 deletions
@@ -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; } @@ -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.* |