aboutsummaryrefslogtreecommitdiff
path: root/src/compiler/lexer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/lexer.c')
-rw-r--r--src/compiler/lexer.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/compiler/lexer.c b/src/compiler/lexer.c
index 577b009..1fbba2f 100644
--- a/src/compiler/lexer.c
+++ b/src/compiler/lexer.c
@@ -56,6 +56,8 @@ const char *LEXER_TOKEN_STRINGS[] = {
"LEXER_TOKEN_KEYWORD_CODE",
"LEXER_TOKEN_KEYWORD_NAMESPACE",
"LEXER_TOKEN_KEYWORD_SHAPE_SHIFTER",
+ "LEXER_TOKEN_KEYWORD_C_LIBRARY",
+ "LEXER_TOKEN_KEYWORD_C_FUNCTION",
"LEXER_TOKEN_NUMBER",
"LEXER_TOKEN_CHAR",
"LEXER_TOKEN_STRING",
@@ -167,15 +169,18 @@ static const size_t LEXER_SYMBOL_SIZE =
sizeof(LEXER_SYMBOL_TOKENS) / sizeof(*LEXER_SYMBOL_TOKENS);
static const char *LEXER_KEYWORD_STRINGS[] = {
- "type", "void", "i8", "u8", "i16", "u16",
- "i32", "u32", "i64", "u64",
+ "type", "void", "i8", "u8",
+ "i16", "u16", "i32", "u32",
+ "i64", "u64",
#ifdef FLOAT_16_SUPPORT
"f16",
#endif
- "f32", "f64", "f128", "bool", "return", "true",
- "false", "if", "else", "while", "comptime", "null",
- "struct", "undefined", "code", "lazy", "namespace", "shape_shifter",
- "break", "continue",
+ "f32", "f64", "f128", "bool",
+ "return", "true", "false", "if",
+ "else", "while", "comptime", "null",
+ "struct", "undefined", "code", "lazy",
+ "namespace", "shape_shifter", "break", "continue",
+ "c_library", "c_function",
};
static const LexerToken LEXER_KEYWORD_TOKENS[] = {
LEXER_TOKEN_KEYWORD_TYPE, LEXER_TOKEN_KEYWORD_VOID,
@@ -196,6 +201,7 @@ static const LexerToken LEXER_KEYWORD_TOKENS[] = {
LEXER_TOKEN_KEYWORD_CODE, LEXER_TOKEN_KEYWORD_LAZY,
LEXER_TOKEN_KEYWORD_NAMESPACE, LEXER_TOKEN_KEYWORD_SHAPE_SHIFTER,
LEXER_TOKEN_KEYWORD_BREAK, LEXER_TOKEN_KEYWORD_CONTINUE,
+ LEXER_TOKEN_KEYWORD_C_LIBRARY, LEXER_TOKEN_KEYWORD_C_FUNCTION,
};
static const size_t LEXER_KEYWORD_SIZE =
sizeof(LEXER_KEYWORD_TOKENS) / sizeof(*LEXER_KEYWORD_TOKENS);
@@ -522,6 +528,8 @@ lexerPushClear(LexerNodeArray *array, size_t *array_size, char const *iter,
case LEXER_TOKEN_KEYWORD_SHAPE_SHIFTER:
case LEXER_TOKEN_KEYWORD_BREAK:
case LEXER_TOKEN_KEYWORD_CONTINUE:
+ case LEXER_TOKEN_KEYWORD_C_LIBRARY:
+ case LEXER_TOKEN_KEYWORD_C_FUNCTION:
if (*array_size == array->size) {
*array_size += 1 + *array_size / 2;
array->data =