diff options
Diffstat (limited to 'src/compiler/lexer.c')
-rw-r--r-- | src/compiler/lexer.c | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/src/compiler/lexer.c b/src/compiler/lexer.c index 2b7a789..54b78ec 100644 --- a/src/compiler/lexer.c +++ b/src/compiler/lexer.c @@ -34,6 +34,7 @@ const char *LEXER_TOKEN_STRINGS[] = { "LEXER_TOKEN_KEYWORD_IF", "LEXER_TOKEN_KEYWORD_ELSE", "LEXER_TOKEN_KEYWORD_WHILE", + "LEXER_TOKEN_KEYWORD_COMPTIME", "LEXER_TOKEN_NUMBER", @@ -104,22 +105,23 @@ 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", + "type", "void", "i8", "u8", "i16", "u16", "i32", "u32", + "i64", "u64", "f16", "f32", "f64", "f128", "bool", "print_u64", + "return", "true", "false", "if", "else", "while", "comptime", }; const LexerToken LEXER_KEYWORD_TOKENS[] = { - LEXER_TOKEN_KEYWORD_TYPE, LEXER_TOKEN_KEYWORD_VOID, - LEXER_TOKEN_KEYWORD_I8, LEXER_TOKEN_KEYWORD_U8, - LEXER_TOKEN_KEYWORD_I16, LEXER_TOKEN_KEYWORD_U16, - LEXER_TOKEN_KEYWORD_I32, LEXER_TOKEN_KEYWORD_U32, - LEXER_TOKEN_KEYWORD_I64, LEXER_TOKEN_KEYWORD_U64, - LEXER_TOKEN_KEYWORD_F16, LEXER_TOKEN_KEYWORD_F32, - LEXER_TOKEN_KEYWORD_F64, LEXER_TOKEN_KEYWORD_F128, - LEXER_TOKEN_KEYWORD_BOOL, LEXER_TOKEN_KEYWORD_PRINT_U64, - LEXER_TOKEN_KEYWORD_RETURN, LEXER_TOKEN_KEYWORD_TRUE, - LEXER_TOKEN_KEYWORD_FALSE, LEXER_TOKEN_KEYWORD_IF, - LEXER_TOKEN_KEYWORD_ELSE, LEXER_TOKEN_KEYWORD_WHILE, + LEXER_TOKEN_KEYWORD_TYPE, LEXER_TOKEN_KEYWORD_VOID, + LEXER_TOKEN_KEYWORD_I8, LEXER_TOKEN_KEYWORD_U8, + LEXER_TOKEN_KEYWORD_I16, LEXER_TOKEN_KEYWORD_U16, + LEXER_TOKEN_KEYWORD_I32, LEXER_TOKEN_KEYWORD_U32, + LEXER_TOKEN_KEYWORD_I64, LEXER_TOKEN_KEYWORD_U64, + LEXER_TOKEN_KEYWORD_F16, LEXER_TOKEN_KEYWORD_F32, + LEXER_TOKEN_KEYWORD_F64, LEXER_TOKEN_KEYWORD_F128, + LEXER_TOKEN_KEYWORD_BOOL, LEXER_TOKEN_KEYWORD_PRINT_U64, + LEXER_TOKEN_KEYWORD_RETURN, LEXER_TOKEN_KEYWORD_TRUE, + LEXER_TOKEN_KEYWORD_FALSE, LEXER_TOKEN_KEYWORD_IF, + LEXER_TOKEN_KEYWORD_ELSE, LEXER_TOKEN_KEYWORD_WHILE, + LEXER_TOKEN_KEYWORD_COMPTIME, }; const size_t LEXER_KEYWORD_SIZE = sizeof(LEXER_KEYWORD_TOKENS) / sizeof(*LEXER_KEYWORD_TOKENS); @@ -268,6 +270,7 @@ void lexerPushClear(LexerNodeArray *array, size_t *array_size, char *iter, case LEXER_TOKEN_KEYWORD_IF: case LEXER_TOKEN_KEYWORD_ELSE: case LEXER_TOKEN_KEYWORD_WHILE: + case LEXER_TOKEN_KEYWORD_COMPTIME: case LEXER_TOKEN_NUMBER: case LEXER_TOKEN_SYMBOL_EOL: case LEXER_TOKEN_SYMBOL_OPEN_PARENTHESIS: |