From c03e0c49cd3329e0bc3e111393956441aa5f8849 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 4 May 2025 20:32:14 +0900 Subject: char literal --- main.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'main.c') diff --git a/main.c b/main.c index 873ebe6..39e6f31 100644 --- a/main.c +++ b/main.c @@ -215,6 +215,21 @@ struct Token* tokenize(char* src, int len) { tok->kind = TK_GT; tok = tok + 1; } + } else if (c == '\'') { + pos = pos + 1; + int ch = src[pos]; + if (ch == '\\') { + pos = pos + 1; + ch = src[pos]; + if (ch == 'n') { + ch = '\n'; + } + } + pos = pos + 2; + tok->kind = TK_L_INT; + tok->value = calloc(4, sizeof(char)); + sprintf(tok->value, "%d", ch); + tok = tok + 1; } else if (c == '"') { pos = pos + 1; int start = pos; -- cgit v1.2.3-70-g09d2