summaryrefslogtreecommitdiff
path: root/src/compiler/lexer.c
diff options
context:
space:
mode:
authorA404M <ahmadmahmoudiprogrammer@gmail.com>2025-02-13 18:39:08 +0330
committerA404M <ahmadmahmoudiprogrammer@gmail.com>2025-02-13 18:40:23 +0330
commitcb6eaf13c3b3b58779a18255177589d8d5fbf85b (patch)
tree40e648d02dc450bdda7bd4e31503b76ab4bf0a69 /src/compiler/lexer.c
parent0ff9508bb0ea7193b0101c3cd9b4ae594e44fd02 (diff)
add i8 u8 i16 u16 i32 u32
add overflow warning
Diffstat (limited to 'src/compiler/lexer.c')
-rw-r--r--src/compiler/lexer.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/compiler/lexer.c b/src/compiler/lexer.c
index 2e3090b..c740dd3 100644
--- a/src/compiler/lexer.c
+++ b/src/compiler/lexer.c
@@ -14,6 +14,12 @@ const char *LEXER_TOKEN_STRINGS[] = {
"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_BOOL",
@@ -83,11 +89,15 @@ const size_t LEXER_SYMBOL_SIZE =
sizeof(LEXER_SYMBOL_TOKENS) / sizeof(*LEXER_SYMBOL_TOKENS);
const char *LEXER_KEYWORD_STRINGS[] = {
- "type", "void", "i64", "u64", "bool", "print_u64",
+ "type", "void", "i8", "u8", "i16", "u16",
+ "i32", "u32", "i64", "u64", "bool", "print_u64",
"return", "true", "false", "if", "else",
};
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_BOOL, LEXER_TOKEN_KEYWORD_PRINT_U64,
LEXER_TOKEN_KEYWORD_RETURN, LEXER_TOKEN_KEYWORD_TRUE,
@@ -219,6 +229,12 @@ void lexerPushClear(LexerNodeArray *array, size_t *array_size, char *iter,
PUSH:
case LEXER_TOKEN_KEYWORD_TYPE:
case LEXER_TOKEN_KEYWORD_VOID:
+ case LEXER_TOKEN_KEYWORD_I8:
+ case LEXER_TOKEN_KEYWORD_U8:
+ case LEXER_TOKEN_KEYWORD_I16:
+ case LEXER_TOKEN_KEYWORD_U16:
+ case LEXER_TOKEN_KEYWORD_I32:
+ case LEXER_TOKEN_KEYWORD_U32:
case LEXER_TOKEN_KEYWORD_I64:
case LEXER_TOKEN_KEYWORD_U64:
case LEXER_TOKEN_KEYWORD_BOOL: