diff options
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 16 |
1 files changed, 10 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; } |