summaryrefslogtreecommitdiff
path: root/src/compiler/lexer.c
diff options
context:
space:
mode:
authorA404M <ahmadmahmoudiprogrammer@gmail.com>2025-02-08 10:58:07 +0330
committerA404M <ahmadmahmoudiprogrammer@gmail.com>2025-02-08 10:58:07 +0330
commitcb26dd0fc9c1e33be1c32eb85b04434526004e6a (patch)
tree8a467633398b2384216c5ac652a2ff86a2b5d3f3 /src/compiler/lexer.c
parentf362a9a64004ba61e326e223d0d28997762afe71 (diff)
add bool
Diffstat (limited to 'src/compiler/lexer.c')
-rw-r--r--src/compiler/lexer.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/compiler/lexer.c b/src/compiler/lexer.c
index f4718fa..67db9c7 100644
--- a/src/compiler/lexer.c
+++ b/src/compiler/lexer.c
@@ -14,8 +14,11 @@ const char *LEXER_TOKEN_STRINGS[] = {
"LEXER_TOKEN_KEYWORD_TYPE",
"LEXER_TOKEN_KEYWORD_VOID",
"LEXER_TOKEN_KEYWORD_U64",
+ "LEXER_TOKEN_KEYWORD_BOOL",
"LEXER_TOKEN_KEYWORD_PRINT_U64",
"LEXER_TOKEN_KEYWORD_RETURN",
+ "LEXER_TOKEN_KEYWORD_TRUE",
+ "LEXER_TOKEN_KEYWORD_FALSE",
"LEXER_TOKEN_NUMBER",
@@ -53,12 +56,13 @@ const size_t LEXER_SYMBOL_SIZE =
sizeof(LEXER_SYMBOL_TOKENS) / sizeof(*LEXER_SYMBOL_TOKENS);
const char *LEXER_KEYWORD_STRINGS[] = {
- "type", "void", "u64", "print_u64", "return",
+ "type", "void", "u64", "bool", "print_u64", "return", "true", "false",
};
const LexerToken LEXER_KEYWORD_TOKENS[] = {
- LEXER_TOKEN_KEYWORD_TYPE, LEXER_TOKEN_KEYWORD_VOID,
- LEXER_TOKEN_KEYWORD_U64, LEXER_TOKEN_KEYWORD_PRINT_U64,
- LEXER_TOKEN_KEYWORD_RETURN,
+ LEXER_TOKEN_KEYWORD_TYPE, LEXER_TOKEN_KEYWORD_VOID,
+ LEXER_TOKEN_KEYWORD_U64, LEXER_TOKEN_KEYWORD_BOOL,
+ LEXER_TOKEN_KEYWORD_PRINT_U64, LEXER_TOKEN_KEYWORD_RETURN,
+ LEXER_TOKEN_KEYWORD_TRUE, LEXER_TOKEN_KEYWORD_FALSE,
};
const size_t LEXER_KEYWORD_SIZE =
sizeof(LEXER_KEYWORD_TOKENS) / sizeof(*LEXER_KEYWORD_TOKENS);
@@ -139,7 +143,7 @@ LexerNodeArray lexer(char *str) {
} else {
RETURN_ERROR:
free(result.data);
- printError("Unexpected character '%c'", iter, iter+1, c);
+ printError("Unexpected character '%c'", iter, iter + 1, c);
return LEXER_NODE_ARRAY_ERROR;
}
}
@@ -178,8 +182,11 @@ void lexerPushClear(LexerNodeArray *array, size_t *array_size, char *iter,
case LEXER_TOKEN_KEYWORD_TYPE:
case LEXER_TOKEN_KEYWORD_VOID:
case LEXER_TOKEN_KEYWORD_U64:
+ case LEXER_TOKEN_KEYWORD_BOOL:
case LEXER_TOKEN_KEYWORD_PRINT_U64:
case LEXER_TOKEN_KEYWORD_RETURN:
+ case LEXER_TOKEN_KEYWORD_TRUE:
+ case LEXER_TOKEN_KEYWORD_FALSE:
case LEXER_TOKEN_NUMBER:
case LEXER_TOKEN_SYMBOL_EOL:
case LEXER_TOKEN_SYMBOL_OPEN_PARENTHESIS: