aboutsummaryrefslogtreecommitdiff
path: root/src/compiler/lexer.c
diff options
context:
space:
mode:
authorA404M <ahmadmahmoudiprogrammer@gmail.com>2025-05-18 10:16:09 +0330
committerA404M <ahmadmahmoudiprogrammer@gmail.com>2025-05-18 10:16:09 +0330
commit0b85ea4a7b64ed583aaf0e323252c5f792c042a2 (patch)
tree1104f435ec7c93ac3489aa91536789da085c7bae /src/compiler/lexer.c
parentcfc5418931fa15e6a31583820266bf35d489da88 (diff)
replaced putc with @putc()
Diffstat (limited to 'src/compiler/lexer.c')
-rw-r--r--src/compiler/lexer.c65
1 files changed, 25 insertions, 40 deletions
diff --git a/src/compiler/lexer.c b/src/compiler/lexer.c
index 6804080..6b55e61 100644
--- a/src/compiler/lexer.c
+++ b/src/compiler/lexer.c
@@ -29,6 +29,7 @@ const char *LEXER_TOKEN_STRINGS[] = {
"LEXER_TOKEN_BUILTIN_SMALLER",
"LEXER_TOKEN_BUILTIN_GREATER_OR_EQUAL",
"LEXER_TOKEN_BUILTIN_SMALLER_OR_EQUAL",
+ "LEXER_TOKEN_BUILTIN_PUTC",
"LEXER_TOKEN_KEYWORD_TYPE",
"LEXER_TOKEN_KEYWORD_VOID",
"LEXER_TOKEN_KEYWORD_I8",
@@ -98,7 +99,6 @@ const char *LEXER_TOKEN_STRINGS[] = {
"LEXER_TOKEN_SYMBOL_MODULO_ASSIGN",
"LEXER_TOKEN_KEYWORD_RETURN",
- "LEXER_TOKEN_KEYWORD_PUTC",
"LEXER_TOKEN_KEYWORD_BREAK",
"LEXER_TOKEN_KEYWORD_CONTINUE",
"LEXER_TOKEN_KEYWORD_COMPTIME",
@@ -164,51 +164,35 @@ 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", "putc", "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",
};
static 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_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,
#ifdef FLOAT_16_SUPPORT
LEXER_TOKEN_KEYWORD_F16,
#endif
- LEXER_TOKEN_KEYWORD_F32,
- LEXER_TOKEN_KEYWORD_F64,
- LEXER_TOKEN_KEYWORD_F128,
- LEXER_TOKEN_KEYWORD_BOOL,
- LEXER_TOKEN_KEYWORD_PUTC,
- 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,
- LEXER_TOKEN_KEYWORD_NULL,
- LEXER_TOKEN_KEYWORD_STRUCT,
- LEXER_TOKEN_KEYWORD_UNDEFINED,
- 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_F32, LEXER_TOKEN_KEYWORD_F64,
+ LEXER_TOKEN_KEYWORD_F128, LEXER_TOKEN_KEYWORD_BOOL,
+ 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, LEXER_TOKEN_KEYWORD_NULL,
+ LEXER_TOKEN_KEYWORD_STRUCT, LEXER_TOKEN_KEYWORD_UNDEFINED,
+ 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,
};
static const size_t LEXER_KEYWORD_SIZE =
sizeof(LEXER_KEYWORD_TOKENS) / sizeof(*LEXER_KEYWORD_TOKENS);
@@ -232,7 +216,7 @@ static const char *LEXER_BUILTIN_STRINGS[] = {
"smaller",
"greaterOrEqual",
"smallerOrEqual",
-
+ "putc",
};
static const LexerToken LEXER_BUILTIN_TOKENS[] = {
LEXER_TOKEN_BUILTIN_CAST,
@@ -253,6 +237,7 @@ static const LexerToken LEXER_BUILTIN_TOKENS[] = {
LEXER_TOKEN_BUILTIN_SMALLER,
LEXER_TOKEN_BUILTIN_GREATER_OR_EQUAL,
LEXER_TOKEN_BUILTIN_SMALLER_OR_EQUAL,
+ LEXER_TOKEN_BUILTIN_PUTC,
};
static const size_t LEXER_BUILTIN_SIZE =
sizeof(LEXER_BUILTIN_TOKENS) / sizeof(*LEXER_BUILTIN_TOKENS);
@@ -450,7 +435,6 @@ lexerPushClear(LexerNodeArray *array, size_t *array_size, char const *iter,
case LEXER_TOKEN_KEYWORD_F64:
case LEXER_TOKEN_KEYWORD_F128:
case LEXER_TOKEN_KEYWORD_BOOL:
- case LEXER_TOKEN_KEYWORD_PUTC:
case LEXER_TOKEN_KEYWORD_RETURN:
case LEXER_TOKEN_KEYWORD_TRUE:
case LEXER_TOKEN_KEYWORD_FALSE:
@@ -520,6 +504,7 @@ lexerPushClear(LexerNodeArray *array, size_t *array_size, char const *iter,
case LEXER_TOKEN_BUILTIN_SMALLER:
case LEXER_TOKEN_BUILTIN_GREATER_OR_EQUAL:
case LEXER_TOKEN_BUILTIN_SMALLER_OR_EQUAL:
+ case LEXER_TOKEN_BUILTIN_PUTC:
case LEXER_TOKEN_SYMBOL_CLOSE_BRACKET:
case LEXER_TOKEN_SYMBOL_OPEN_BRACKET:
case LEXER_TOKEN_KEYWORD_SHAPE_SHIFTER: