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/lexer.h | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'src/lexer.h') diff --git a/src/lexer.h b/src/lexer.h index 6449a0a..dd442cc 100644 --- a/src/lexer.h +++ b/src/lexer.h @@ -24,23 +24,42 @@ typedef enum { + // Non-Literal Tokens TOKEN_NAME, + TOKEN_NUMBER, + TOKEN_EOF, + + // Literal Tokens TOKEN_OPAREN, TOKEN_CPAREN, TOKEN_COLON, TOKEN_SEMICOLON, TOKEN_OCURLY, TOKEN_CCURLY, - TOKEN_NUMBER, TOKEN_PLUS, TOKEN_MINUS, TOKEN_STAR, TOKEN_SLASH, + TOKEN_ASSIGN, TOKEN_EQUAL, + TOKEN_NOT, + TOKEN_NOT_EQUAL, + TOKEN_GT, + TOKEN_GT_EQUAL, + TOKEN_LT, + TOKEN_LT_EQUAL, + TOKEN_AND, + TOKEN_OR, + TOKEN_BITWISE_AND, + TOKEN_BITWISE_OR, + TOKEN_BITWISE_SHIFT_LEFT, + TOKEN_BITWISE_SHIFT_RIGHT, + TOKEN_BITWISE_XOR, + TOKEN_BITWISE_NOT, TOKEN_KEYWORD_RETURN, TOKEN_KEYWORD_FN, TOKEN_KEYWORD_LET, - TOKEN_EOF, + TOKEN_UNKNOWN } token_kind_t; -- cgit v1.2.3