From 6fd244cb04cf1972e9d7dcc5635bf5cfe8194402 Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Fri, 22 Oct 2021 13:38:52 +0200 Subject: Add more keyword token types --- src/bytecode/lexer.h | 38 +++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) (limited to 'src/bytecode/lexer.h') diff --git a/src/bytecode/lexer.h b/src/bytecode/lexer.h index e58dd05..a19ac11 100644 --- a/src/bytecode/lexer.h +++ b/src/bytecode/lexer.h @@ -3,18 +3,46 @@ #include "string_view.h" - typedef enum TokenType { TOKEN_UNKNOWN = 0, + + // Parentheses. TOKEN_LPAREN, TOKEN_RPAREN, - TOKEN_QUOTE, - TOKEN_TRUE, - TOKEN_FALSE, - TOKEN_NIL, + + // Primitive types. TOKEN_FIXNUM, TOKEN_SYMBOL, TOKEN_STRING, + + // Keywords. + TOKEN_NIL, + TOKEN_QUOTE, + TOKEN_TRUE, + TOKEN_FALSE, + TOKEN_IF, + TOKEN_ELSE, + TOKEN_DEF, + TOKEN_FUN, + TOKEN_LAMBDA, + + // Arithmetic. + TOKEN_ADD, + TOKEN_MIN, + TOKEN_MUL, + TOKEN_DIV, + TOKEN_MOD, + + // Boolean comparisons. + TOKEN_NOT, + TOKEN_AND, + TOKEN_OR, + TOKEN_EQUAL, + TOKEN_LESS_THAN, + TOKEN_GREATER_THAN, + TOKEN_LESS_EQUAL_THAN, + TOKEN_GREATER_EQUAL_THAN, + TOKEN_EOF, } TokenType; -- cgit v1.2.1