diff options
author | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-02-13 16:42:08 +0330 |
---|---|---|
committer | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-02-13 16:42:08 +0330 |
commit | fe459ce514c3dd6352bbc88f9184cb79f35b9cb4 (patch) | |
tree | a3ff67584af541fa505bcfbd6aef75202931ca4c /src/compiler/lexer.c | |
parent | 441519c4cf0ba7b4d63a2cd761e5553ea925de32 (diff) |
add == != > >= < <=
Diffstat (limited to 'src/compiler/lexer.c')
-rw-r--r-- | src/compiler/lexer.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/compiler/lexer.c b/src/compiler/lexer.c index 6b9fb60..7ea8f43 100644 --- a/src/compiler/lexer.c +++ b/src/compiler/lexer.c @@ -43,12 +43,19 @@ const char *LEXER_TOKEN_STRINGS[] = { "LEXER_TOKEN_SYMBOL_MULTIPLY", "LEXER_TOKEN_SYMBOL_DIVIDE", "LEXER_TOKEN_SYMBOL_MODULO", + "LEXER_TOKEN_SYMBOL_EQUAL", + "LEXER_TOKEN_SYMBOL_NOT_EQUAL", + "LEXER_TOKEN_SYMBOL_GREATER", + "LEXER_TOKEN_SYMBOL_SMALLER", + "LEXER_TOKEN_SYMBOL_GREATER_OR_EQUAL", + "LEXER_TOKEN_SYMBOL_SMALLER_OR_EQUAL", "LEXER_TOKEN_NONE", }; const char *LEXER_SYMBOL_STRINGS[] = { - ";", "(", ")", "{", "}", "->", ":", "=", ",", "+", "-", "*", "/", "%", + ";", "(", ")", "{", "}", "->", ":", "=", ",", "+", + "-", "*", "/", "%", "==", "!=", ">", ">=", "<", "<=", }; const LexerToken LEXER_SYMBOL_TOKENS[] = { LEXER_TOKEN_SYMBOL_EOL, @@ -65,6 +72,12 @@ const LexerToken LEXER_SYMBOL_TOKENS[] = { LEXER_TOKEN_SYMBOL_MULTIPLY, LEXER_TOKEN_SYMBOL_DIVIDE, LEXER_TOKEN_SYMBOL_MODULO, + LEXER_TOKEN_SYMBOL_EQUAL, + LEXER_TOKEN_SYMBOL_NOT_EQUAL, + LEXER_TOKEN_SYMBOL_GREATER, + LEXER_TOKEN_SYMBOL_SMALLER, + LEXER_TOKEN_SYMBOL_GREATER_OR_EQUAL, + LEXER_TOKEN_SYMBOL_SMALLER_OR_EQUAL, }; const size_t LEXER_SYMBOL_SIZE = sizeof(LEXER_SYMBOL_TOKENS) / sizeof(*LEXER_SYMBOL_TOKENS); @@ -231,6 +244,12 @@ void lexerPushClear(LexerNodeArray *array, size_t *array_size, char *iter, case LEXER_TOKEN_SYMBOL_MULTIPLY: case LEXER_TOKEN_SYMBOL_DIVIDE: case LEXER_TOKEN_SYMBOL_MODULO: + case LEXER_TOKEN_SYMBOL_EQUAL: + case LEXER_TOKEN_SYMBOL_NOT_EQUAL: + case LEXER_TOKEN_SYMBOL_GREATER: + case LEXER_TOKEN_SYMBOL_SMALLER: + case LEXER_TOKEN_SYMBOL_GREATER_OR_EQUAL: + case LEXER_TOKEN_SYMBOL_SMALLER_OR_EQUAL: if (*array_size == array->size) { *array_size += 1 + *array_size / 2; array->data = |