diff options
-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; |