diff options
author | kdx <kikoodx@paranoici.org> | 2023-06-13 04:08:54 +0200 |
---|---|---|
committer | kdx <kikoodx@paranoici.org> | 2023-06-13 04:08:54 +0200 |
commit | bef68b681f0af54061858a6689057850b390d79c (patch) | |
tree | 7e3b7be4594d43e9143b2de73cc42d7d5c961acb | |
parent | 7648643b7f25b7752aacef9e758cf28372529ab4 (diff) | |
download | golem-bef68b681f0af54061858a6689057850b390d79c.tar.gz |
fix string misinterpretation
-rw-r--r-- | src/main.c | 4 | ||||
-rwxr-xr-x | testing.sh | 1 |
2 files changed, 3 insertions, 2 deletions
@@ -134,7 +134,7 @@ tokenize(char *p) char *end = strchr(p + 1, '"'); if (end == NULL) error("unclosed double quotes", 0); - cur = cur->next = new_token(TOK_STRING, p + 1, end); + cur = cur->next = new_token(TOK_STRING, p, end + 1); p = end + 1; continue; } @@ -1141,7 +1141,7 @@ codegen(Node *node) for (int i = 0; i < strings_size; i++) { printf("@__str_%x\n", strings_size - i - 1); - for (int k = 0; k < strings->lhs->len; k++) + for (int k = 1; k < strings->lhs->len - 1; k++) printf("\t%04x\n", (unsigned)strings->lhs->loc[k]); printf("\t0000\n"); strings = strings->next; @@ -54,5 +54,6 @@ test "$1" "main() 0; //ayayayayayayaya comment" test "$1" "main() return;" test "$1" "main() { local a; a = 5; dbg a; a++; dbg a; }" test "$1" "main() { local a; a = 5; dbg a; a--; dbg a; }" +test "$1" "main() { wrt [\"(\"]; wrt '\n'; }" exit rm -f build/tmp.* |