diff options
author | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-04-05 15:09:23 +0330 |
---|---|---|
committer | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-04-05 15:09:23 +0330 |
commit | b5772e1c6961dd4b99b91b060b57584d4868aa2b (patch) | |
tree | 0b2d3c4f9b4d58981439e027423129ff0f427572 /src/compiler/lexer.c | |
parent | 5d43a23a42725d9e88be76ce04260dbd4b57d370 (diff) |
working on access operator
Diffstat (limited to 'src/compiler/lexer.c')
-rw-r--r-- | src/compiler/lexer.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/compiler/lexer.c b/src/compiler/lexer.c index 16e8ee5..6feb77e 100644 --- a/src/compiler/lexer.c +++ b/src/compiler/lexer.c @@ -72,13 +72,14 @@ const char *LEXER_TOKEN_STRINGS[] = { "LEXER_TOKEN_SYMBOL_POINTER", "LEXER_TOKEN_SYMBOL_ADDRESS", "LEXER_TOKEN_SYMBOL_DEREFERENCE", + "LEXER_TOKEN_SYMBOL_ACCESS", "LEXER_TOKEN_NONE", }; const char *LEXER_SYMBOL_STRINGS[] = { ";", "(", ")", "{", "}", "->", ":", "=", "+=", "-=", "*=", "/=", "%=", ",", - "+", "-", "*", "/", "%", "==", "!=", ">", ">=", "<", "<=", "&", ".*", + "+", "-", "*", "/", "%", "==", "!=", ">", ">=", "<", "<=", "&", ".*", ".", }; const LexerToken LEXER_SYMBOL_TOKENS[] = { LEXER_TOKEN_SYMBOL_EOL, @@ -108,6 +109,7 @@ const LexerToken LEXER_SYMBOL_TOKENS[] = { LEXER_TOKEN_SYMBOL_SMALLER_OR_EQUAL, LEXER_TOKEN_SYMBOL_ADDRESS, LEXER_TOKEN_SYMBOL_DEREFERENCE, + LEXER_TOKEN_SYMBOL_ACCESS, }; const size_t LEXER_SYMBOL_SIZE = sizeof(LEXER_SYMBOL_TOKENS) / sizeof(*LEXER_SYMBOL_TOKENS); @@ -318,6 +320,7 @@ void lexerPushClear(LexerNodeArray *array, size_t *array_size, char *iter, case LEXER_TOKEN_SYMBOL_POINTER: case LEXER_TOKEN_SYMBOL_ADDRESS: case LEXER_TOKEN_SYMBOL_DEREFERENCE: + case LEXER_TOKEN_SYMBOL_ACCESS: if (*array_size == array->size) { *array_size += 1 + *array_size / 2; array->data = |