summaryrefslogtreecommitdiff
path: root/src/compiler/lexer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/lexer.c')
-rw-r--r--src/compiler/lexer.c21
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 =