diff options
author | Carlos Maniero <carlos@maniero.me> | 2023-05-06 12:29:05 -0300 |
---|---|---|
committer | Johnny Richard <johnny@johnnyrichard.com> | 2023-05-06 22:53:49 +0200 |
commit | ccd5e8585f10488eed72c772cc1804efea6b8fb4 (patch) | |
tree | f5690cb92e94758d44f5c29715c0d2415659fa7c /src/parser.c | |
parent | 6a297e0ef57f2ae6d6134bd44a33c55fa9628cfe (diff) |
lexer: Tokenize logical and bitwise operators
The followed logic operators were added to lexer:
TOKEN_EQUAL ==
TOKEN_NOT !
TOKEN_NOT_EQUAL !=
TOKEN_GT >
TOKEN_GT_EQUAL >=
TOKEN_LT <
TOKEN_LT_EQUAL <=
TOKEN_AND &&
TOKEN_OR ||
Bitwise operators were also added
TOKEN_BITWISE_AND &
TOKEN_BITWISE_OR |
TOKEN_BITWISE_SHIFT_LEFT <<
TOKEN_BITWISE_SHIFT_RIGHT >>
TOKEN_BITWISE_XOR ^
TOKEN_BITWISE_NOT ~
TOKEN_EQUAL '=' was renamed TOKEN_ASSIGN, and now TOKEN_EQUAL is used
for the logical comparator '=='.
Signed-off-by: Carlos Maniero <carlos@maniero.me>
Diffstat (limited to 'src/parser.c')
-rw-r--r-- | src/parser.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/parser.c b/src/parser.c index 49803eb..baa2ef5 100644 --- a/src/parser.c +++ b/src/parser.c @@ -264,7 +264,7 @@ parser_parse_variable_assignment(parser_t *parser) return NULL; } - if (!drop_expected_token(parser, TOKEN_EQUAL)) + if (!drop_expected_token(parser, TOKEN_ASSIGN)) return NULL; ast_node_t *expression = parser_parse_expression(parser); @@ -318,7 +318,7 @@ parser_parse_variable_declaration(parser_t *parser) return NULL; } - if (!drop_expected_token(parser, TOKEN_EQUAL)) { + if (!drop_expected_token(parser, TOKEN_ASSIGN)) { return NULL; } @@ -360,7 +360,7 @@ is_next_statement_a_variable_assignement(parser_t *parser) lexer_lookahead(parser->lexer, &token, 2); - return token.kind == TOKEN_EQUAL; + return token.kind == TOKEN_ASSIGN; } static bool |