diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-07-31 01:57:36 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-08-15 10:04:46 +0900 |
| commit | 021b726b518a907ae023f40131d58964dbceea01 (patch) | |
| tree | fe3ab2918ffe1513a6fedb9f5ec36acee0095052 /tokenize.c | |
| parent | 3ae75a0dec8cfb66ee53cbfaa6598d7fbf2f14d8 (diff) | |
| download | ducc-021b726b518a907ae023f40131d58964dbceea01.tar.gz ducc-021b726b518a907ae023f40131d58964dbceea01.tar.zst ducc-021b726b518a907ae023f40131d58964dbceea01.zip | |
feat: support macros that are expanded to multiple tokens
Diffstat (limited to 'tokenize.c')
| -rw-r--r-- | tokenize.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -184,8 +184,9 @@ const char* token_kind_stringify(TokenKind k) { const char* token_stringify(Token* t) { TokenKind k = t->kind; if (k == TokenKind_ident || k == TokenKind_literal_int || k == TokenKind_literal_str) { - char* buf = calloc(t->raw.len + 1, sizeof(char)); - sprintf(buf, "%.*s (%s)", t->raw.len, t->raw.data, token_kind_stringify(k)); + const char* kind_str = token_kind_stringify(k); + char* buf = calloc(t->raw.len + strlen(kind_str) + 3 + 1, sizeof(char)); + sprintf(buf, "%.*s (%s)", t->raw.len, t->raw.data, kind_str); return buf; } else { return token_kind_stringify(k); |
