diff options
author | kdx <kikoodx@paranoici.org> | 2023-03-14 16:39:54 +0100 |
---|---|---|
committer | kdx <kikoodx@paranoici.org> | 2023-03-14 16:39:54 +0100 |
commit | 83affb60e9b92e584cefe804045db51e9b95b8fa (patch) | |
tree | f9da72a734dd8668be51bb33808b997eccd418ef | |
parent | 7425d9089802b91f31f7254adb357e07aef38007 (diff) | |
download | golem-83affb60e9b92e584cefe804045db51e9b95b8fa.tar.gz |
don't flatten token list
-rw-r--r-- | lexer.c | 23 | ||||
-rw-r--r-- | main.c | 2 |
2 files changed, 2 insertions, 23 deletions
@@ -38,25 +38,6 @@ slice_match(Slice slice, int (*isfun)(int c)) return slice; } -static Token * -flatten(Token *toks) -{ - int size = 0; - for (Token *t = toks; t != NULL; t = t->next) - size += 1; - Token *flat = calloc(1, sizeof(Token) * (size + 1)); - if (flat == NULL) - return NULL; - int i = 0; - for (Token *t = toks; t != NULL; t = t->next) { - flat[i] = *t; - if (i + 1 < size) - flat[i].next = flat + i + 1; - i += 1; - } - return flat; -} - Token * lexer(Slice slice) { @@ -140,7 +121,5 @@ lexer(Slice slice) printf("skipping '%c'\n", slice.str[i]); i += 1; } - Token *flat = flatten(toks); - token_destroy(toks); - return flat; + return toks; } @@ -24,7 +24,7 @@ main(int argc, char **argv) Token *tokens = lexer(slice); token_print(tokens, 1); - free(tokens); + token_destroy(tokens); if (slice.str != NULL) free(slice.str); |