diff options
author | kdx <kikoodx@paranoici.org> | 2023-12-05 16:17:11 +0100 |
---|---|---|
committer | kdx <kikoodx@paranoici.org> | 2023-12-05 16:17:11 +0100 |
commit | 29a380366949cad972f419f205f04f024deca7de (patch) | |
tree | 4a473bba46d74ca0496023de47dc4457e14d5149 | |
parent | 07f9061b1287212cca8bdea2f07b7262e6d079b7 (diff) | |
download | golem-29a380366949cad972f419f205f04f024deca7de.tar.gz |
inverted division operator
-rw-r--r-- | samples/invertdiv.golem | 5 | ||||
-rw-r--r-- | src/main.c | 6 |
2 files changed, 10 insertions, 1 deletions
diff --git a/samples/invertdiv.golem b/samples/invertdiv.golem new file mode 100644 index 0000000..f5413ba --- /dev/null +++ b/samples/invertdiv.golem @@ -0,0 +1,5 @@ +main() { + local x = 5, y = 20; + dbg x / y; + dbg x \ y; +} @@ -175,7 +175,7 @@ is_punct(const char *p) if (strchr("|=", p[0]) != NULL && p[1] == '>') return 2; - return (strchr("+-*/%()<>,;{}[]=&^|", p[0]) != NULL); + return (strchr("+-*/\\%()<>,;{}[]=&^|", p[0]) != NULL); } static unsigned char @@ -713,6 +713,10 @@ mul(Token **rest, Token *tok) continue; } + if (equal(tok, "\\")) { + node = new_binary(NOD_DIV, tok, primary(&tok, tok->next), node); + } + if (equal(tok, "%")) { node = new_binary(NOD_MOD, tok, node, primary(&tok, tok->next)); continue; |