aboutsummaryrefslogtreecommitdiffhomepage
path: root/tokenize.c
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2025-08-03 13:19:40 +0900
committernsfisis <nsfisis@gmail.com>2025-08-15 10:06:21 +0900
commite1de8fc36f11ac932707c7113eb4bf3ebc4b1f74 (patch)
tree65c0a362dc9343b09a6e452d5526e39da834b986 /tokenize.c
parent185778aa3ae35252ae992f12a9dfc39a4eab5758 (diff)
downloadducc-e1de8fc36f11ac932707c7113eb4bf3ebc4b1f74.tar.gz
ducc-e1de8fc36f11ac932707c7113eb4bf3ebc4b1f74.tar.zst
ducc-e1de8fc36f11ac932707c7113eb4bf3ebc4b1f74.zip
feat: support short type
Diffstat (limited to 'tokenize.c')
-rw-r--r--tokenize.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/tokenize.c b/tokenize.c
index 2642b5a..9bc14d6 100644
--- a/tokenize.c
+++ b/tokenize.c
@@ -31,6 +31,7 @@ enum TokenKind {
TokenKind_keyword_int,
TokenKind_keyword_long,
TokenKind_keyword_return,
+ TokenKind_keyword_short,
TokenKind_keyword_sizeof,
TokenKind_keyword_struct,
TokenKind_keyword_typeof,
@@ -129,6 +130,8 @@ const char* token_kind_stringify(TokenKind k) {
return "long";
else if (k == TokenKind_keyword_return)
return "return";
+ else if (k == TokenKind_keyword_short)
+ return "short";
else if (k == TokenKind_keyword_sizeof)
return "sizeof";
else if (k == TokenKind_keyword_struct)
@@ -245,6 +248,8 @@ void tokenize_all(Lexer* l) {
tok->kind = TokenKind_keyword_long;
} else if (string_equals_cstr(&pp_tok->raw, "return")) {
tok->kind = TokenKind_keyword_return;
+ } else if (string_equals_cstr(&pp_tok->raw, "short")) {
+ tok->kind = TokenKind_keyword_short;
} else if (string_equals_cstr(&pp_tok->raw, "sizeof")) {
tok->kind = TokenKind_keyword_sizeof;
} else if (string_equals_cstr(&pp_tok->raw, "struct")) {