summaryrefslogtreecommitdiff
path: root/src/compiler/lexer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/lexer.c')
-rw-r--r--src/compiler/lexer.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/compiler/lexer.c b/src/compiler/lexer.c
index ffc3976..378e480 100644
--- a/src/compiler/lexer.c
+++ b/src/compiler/lexer.c
@@ -10,7 +10,10 @@ const char *LEXER_TOKEN_STRINGS[] = {
"LEXER_TOKEN_SYMBOL_CLOSE_PARENTHESIS",
"LEXER_TOKEN_SYMBOL_CLOSE_BRACKET",
"LEXER_TOKEN_IDENTIFIER",
- "LEXER_TOKEN_BUILTIN",
+ "LEXER_TOKEN_BUILTIN_CAST",
+ "LEXER_TOKEN_BUILTIN_TYPE_OF",
+ "LEXER_TOKEN_BUILTIN_IMPORT",
+ "LEXER_TOKEN_BUILTIN_IS_COMPTIME",
"LEXER_TOKEN_KEYWORD_TYPE",
"LEXER_TOKEN_KEYWORD_VOID",
"LEXER_TOKEN_KEYWORD_I8",
@@ -170,14 +173,16 @@ static const size_t LEXER_KEYWORD_SIZE =
sizeof(LEXER_KEYWORD_TOKENS) / sizeof(*LEXER_KEYWORD_TOKENS);
static const char *LEXER_BUILTIN_STRINGS[] = {
- "@cast",
- "@typeOf",
- "@import",
+ "cast",
+ "typeOf",
+ "import",
+ "isComptime",
};
static const LexerToken LEXER_BUILTIN_TOKENS[] = {
LEXER_TOKEN_BUILTIN_CAST,
LEXER_TOKEN_BUILTIN_TYPE_OF,
LEXER_TOKEN_BUILTIN_IMPORT,
+ LEXER_TOKEN_BUILTIN_IS_COMPTIME,
};
static const size_t LEXER_BUILTIN_SIZE =
sizeof(LEXER_BUILTIN_TOKENS) / sizeof(*LEXER_BUILTIN_TOKENS);
@@ -344,7 +349,7 @@ lexerPushClear(LexerNodeArray *array, size_t *array_size, char *iter,
case LEXER_TOKEN_BUILTIN: {
const size_t index =
searchInStringArray(LEXER_BUILTIN_STRINGS, LEXER_BUILTIN_SIZE,
- *node_str_begin, iter - *node_str_begin);
+ *node_str_begin + 1, iter - *node_str_begin - 1);
if (index == LEXER_BUILTIN_SIZE) {
printError(*node_str_begin, iter, "Bad builtin");
UNREACHABLE;
@@ -423,6 +428,7 @@ lexerPushClear(LexerNodeArray *array, size_t *array_size, char *iter,
case LEXER_TOKEN_BUILTIN_CAST:
case LEXER_TOKEN_BUILTIN_TYPE_OF:
case LEXER_TOKEN_BUILTIN_IMPORT:
+ case LEXER_TOKEN_BUILTIN_IS_COMPTIME:
case LEXER_TOKEN_SYMBOL_CLOSE_BRACKET:
case LEXER_TOKEN_SYMBOL_OPEN_BRACKET:
if (*array_size == array->size) {