summaryrefslogtreecommitdiff
path: root/src/lexer.h
diff options
context:
space:
mode:
authorCarlos Maniero <carlos@maniero.me>2023-05-06 12:29:05 -0300
committerJohnny Richard <johnny@johnnyrichard.com>2023-05-06 22:53:49 +0200
commitccd5e8585f10488eed72c772cc1804efea6b8fb4 (patch)
treef5690cb92e94758d44f5c29715c0d2415659fa7c /src/lexer.h
parent6a297e0ef57f2ae6d6134bd44a33c55fa9628cfe (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.h23
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;