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/lexer.h | |
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/lexer.h')
-rw-r--r-- | src/lexer.h | 23 |
1 files changed, 21 insertions, 2 deletions
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; |