summaryrefslogtreecommitdiff
path: root/src/compiler/lexer.c
diff options
context:
space:
mode:
authorA404M <ahmadmahmoudiprogrammer@gmail.com>2025-04-04 22:12:17 +0330
committerA404M <ahmadmahmoudiprogrammer@gmail.com>2025-04-04 22:12:17 +0330
commit5d43a23a42725d9e88be76ce04260dbd4b57d370 (patch)
treeb70fd8938f1eac3ab424943fb0b246ecba9ae016 /src/compiler/lexer.c
parent6bfad51dbde77267368811737d4ecbd557eac2e9 (diff)
add undefined and fix some struct stuff
Diffstat (limited to 'src/compiler/lexer.c')
-rw-r--r--src/compiler/lexer.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/compiler/lexer.c b/src/compiler/lexer.c
index 618851d..16e8ee5 100644
--- a/src/compiler/lexer.c
+++ b/src/compiler/lexer.c
@@ -37,6 +37,7 @@ const char *LEXER_TOKEN_STRINGS[] = {
"LEXER_TOKEN_KEYWORD_COMPTIME",
"LEXER_TOKEN_KEYWORD_NULL",
"LEXER_TOKEN_KEYWORD_STRUCT",
+ "LEXER_TOKEN_KEYWORD_UNDEFINED",
"LEXER_TOKEN_NUMBER",
@@ -112,10 +113,10 @@ const size_t LEXER_SYMBOL_SIZE =
sizeof(LEXER_SYMBOL_TOKENS) / sizeof(*LEXER_SYMBOL_TOKENS);
const char *LEXER_KEYWORD_STRINGS[] = {
- "type", "void", "i8", "u8", "i16", "u16", "i32",
- "u32", "i64", "u64", "f16", "f32", "f64", "f128",
- "bool", "print_u64", "return", "true", "false", "if", "else",
- "while", "comptime", "null", "struct",
+ "type", "void", "i8", "u8", "i16", "u16", "i32",
+ "u32", "i64", "u64", "f16", "f32", "f64", "f128",
+ "bool", "print_u64", "return", "true", "false", "if", "else",
+ "while", "comptime", "null", "struct", "undefined",
};
const LexerToken LEXER_KEYWORD_TOKENS[] = {
LEXER_TOKEN_KEYWORD_TYPE, LEXER_TOKEN_KEYWORD_VOID,
@@ -130,7 +131,7 @@ const LexerToken LEXER_KEYWORD_TOKENS[] = {
LEXER_TOKEN_KEYWORD_FALSE, LEXER_TOKEN_KEYWORD_IF,
LEXER_TOKEN_KEYWORD_ELSE, LEXER_TOKEN_KEYWORD_WHILE,
LEXER_TOKEN_KEYWORD_COMPTIME, LEXER_TOKEN_KEYWORD_NULL,
- LEXER_TOKEN_KEYWORD_STRUCT,
+ LEXER_TOKEN_KEYWORD_STRUCT, LEXER_TOKEN_KEYWORD_UNDEFINED,
};
const size_t LEXER_KEYWORD_SIZE =
sizeof(LEXER_KEYWORD_TOKENS) / sizeof(*LEXER_KEYWORD_TOKENS);
@@ -285,6 +286,7 @@ void lexerPushClear(LexerNodeArray *array, size_t *array_size, char *iter,
case LEXER_TOKEN_KEYWORD_COMPTIME:
case LEXER_TOKEN_KEYWORD_NULL:
case LEXER_TOKEN_KEYWORD_STRUCT:
+ case LEXER_TOKEN_KEYWORD_UNDEFINED:
case LEXER_TOKEN_NUMBER:
case LEXER_TOKEN_SYMBOL_EOL:
case LEXER_TOKEN_SYMBOL_OPEN_PARENTHESIS: