diff options
author | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-03-26 02:06:04 +0330 |
---|---|---|
committer | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-03-26 02:06:04 +0330 |
commit | 3950c23e40207cd8a374fcd4aa5739c0a63115f5 (patch) | |
tree | 9bc4703a7eeb2d2ae9ca6324e61c56598cefa134 /src/compiler/lexer.c | |
parent | 7bd975ec69c8dc9d5a6343a2e5f06bd7dd78d78e (diff) |
add address operator
Diffstat (limited to 'src/compiler/lexer.c')
-rw-r--r-- | src/compiler/lexer.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/compiler/lexer.c b/src/compiler/lexer.c index 08eef75..905186a 100644 --- a/src/compiler/lexer.c +++ b/src/compiler/lexer.c @@ -68,13 +68,14 @@ const char *LEXER_TOKEN_STRINGS[] = { "LEXER_TOKEN_SYMBOL_GREATER_OR_EQUAL", "LEXER_TOKEN_SYMBOL_SMALLER_OR_EQUAL", "LEXER_TOKEN_SYMBOL_POINTER", + "LEXER_TOKEN_SYMBOL_ADDRESS", "LEXER_TOKEN_NONE", }; const char *LEXER_SYMBOL_STRINGS[] = { ";", "(", ")", "{", "}", "->", ":", "=", "+=", "-=", "*=", "/=", "%=", - ",", "+", "-", "*", "/", "%", "==", "!=", ">", ">=", "<", "<=", + ",", "+", "-", "*", "/", "%", "==", "!=", ">", ">=", "<", "<=", "&", }; const LexerToken LEXER_SYMBOL_TOKENS[] = { LEXER_TOKEN_SYMBOL_EOL, @@ -102,6 +103,7 @@ const LexerToken LEXER_SYMBOL_TOKENS[] = { LEXER_TOKEN_SYMBOL_GREATER_OR_EQUAL, LEXER_TOKEN_SYMBOL_SMALLER, LEXER_TOKEN_SYMBOL_SMALLER_OR_EQUAL, + LEXER_TOKEN_SYMBOL_ADDRESS, }; const size_t LEXER_SYMBOL_SIZE = sizeof(LEXER_SYMBOL_TOKENS) / sizeof(*LEXER_SYMBOL_TOKENS); @@ -305,6 +307,7 @@ void lexerPushClear(LexerNodeArray *array, size_t *array_size, char *iter, case LEXER_TOKEN_SYMBOL_GREATER_OR_EQUAL: case LEXER_TOKEN_SYMBOL_SMALLER_OR_EQUAL: case LEXER_TOKEN_SYMBOL_POINTER: + case LEXER_TOKEN_SYMBOL_ADDRESS: if (*array_size == array->size) { *array_size += 1 + *array_size / 2; array->data = @@ -347,6 +350,7 @@ bool isSymbol(char c) { case '%': case '=': case '!': + case '&': return true; default: return false; |