From 6f880873fbc49f44df6d2d19a76ceeb4052890c0 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Mon, 4 Aug 2025 00:35:32 +0900 Subject: feat: support union types --- preprocess.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'preprocess.c') diff --git a/preprocess.c b/preprocess.c index 9a44394..ea900fe 100644 --- a/preprocess.c +++ b/preprocess.c @@ -42,6 +42,7 @@ enum TokenKind { TokenKind_keyword_sizeof, TokenKind_keyword_struct, TokenKind_keyword_typedef, + TokenKind_keyword_union, TokenKind_keyword_void, TokenKind_keyword_while, TokenKind_le, @@ -149,6 +150,8 @@ const char* token_kind_stringify(TokenKind k) { return "struct"; else if (k == TokenKind_keyword_typedef) return "typedef"; + else if (k == TokenKind_keyword_union) + return "union"; else if (k == TokenKind_keyword_void) return "void"; else if (k == TokenKind_keyword_while) @@ -592,6 +595,8 @@ void pp_tokenize_all(Preprocessor* pp) { tok->kind = TokenKind_keyword_struct; } else if (string_equals_cstr(&tok->raw, "typedef")) { tok->kind = TokenKind_keyword_typedef; + } else if (string_equals_cstr(&tok->raw, "union")) { + tok->kind = TokenKind_keyword_union; } else if (string_equals_cstr(&tok->raw, "void")) { tok->kind = TokenKind_keyword_void; } else if (string_equals_cstr(&tok->raw, "while")) { -- cgit v1.2.3-70-g09d2