From ccd5e8585f10488eed72c772cc1804efea6b8fb4 Mon Sep 17 00:00:00 2001 From: Carlos Maniero Date: Sat, 6 May 2023 12:29:05 -0300 Subject: 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 --- src/parser.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/parser.c') 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 -- cgit v1.2.3