diff options
Diffstat (limited to 'src/compiler/lexer.h')
-rw-r--r-- | src/compiler/lexer.h | 88 |
1 files changed, 57 insertions, 31 deletions
diff --git a/src/compiler/lexer.h b/src/compiler/lexer.h index 80cd914..352e044 100644 --- a/src/compiler/lexer.h +++ b/src/compiler/lexer.h @@ -4,8 +4,13 @@ #include <stddef.h> typedef enum LexerToken { - LEXER_TOKEN_IDENTIFIER, + LEXER_TOKEN_SYMBOL_CLOSE_CURLY_BRACKET, + + LEXER_TOKEN_ORDER0 = LEXER_TOKEN_SYMBOL_CLOSE_CURLY_BRACKET, + LEXER_TOKEN_SYMBOL_CLOSE_PARENTHESIS, + LEXER_TOKEN_ORDER1 = LEXER_TOKEN_SYMBOL_CLOSE_PARENTHESIS, + LEXER_TOKEN_IDENTIFIER, LEXER_TOKEN_KEYWORD_TYPE, LEXER_TOKEN_KEYWORD_VOID, LEXER_TOKEN_KEYWORD_I8, @@ -15,61 +20,82 @@ typedef enum LexerToken { LEXER_TOKEN_KEYWORD_I32, LEXER_TOKEN_KEYWORD_U32, LEXER_TOKEN_KEYWORD_I64, - LEXER_TOKEN_KEYWORD_U64, #ifdef FLOAT_16_SUPPORT LEXER_TOKEN_KEYWORD_F16, #endif LEXER_TOKEN_KEYWORD_F32, LEXER_TOKEN_KEYWORD_F64, LEXER_TOKEN_KEYWORD_F128, + LEXER_TOKEN_KEYWORD_U64, LEXER_TOKEN_KEYWORD_BOOL, - LEXER_TOKEN_KEYWORD_PUTC, - LEXER_TOKEN_KEYWORD_RETURN, LEXER_TOKEN_KEYWORD_TRUE, LEXER_TOKEN_KEYWORD_FALSE, - LEXER_TOKEN_KEYWORD_IF, - LEXER_TOKEN_KEYWORD_ELSE, - LEXER_TOKEN_KEYWORD_WHILE, - LEXER_TOKEN_KEYWORD_COMPTIME, LEXER_TOKEN_KEYWORD_NULL, - LEXER_TOKEN_KEYWORD_STRUCT, - LEXER_TOKEN_KEYWORD_UNDEFINED, - LEXER_TOKEN_NUMBER, LEXER_TOKEN_CHAR, + LEXER_TOKEN_KEYWORD_UNDEFINED, - LEXER_TOKEN_SYMBOL, - LEXER_TOKEN_SYMBOL_EOL, - LEXER_TOKEN_SYMBOL_OPEN_PARENTHESIS, - LEXER_TOKEN_SYMBOL_CLOSE_PARENTHESIS, - LEXER_TOKEN_SYMBOL_OPEN_CURLY_BRACKET, - LEXER_TOKEN_SYMBOL_CLOSE_CURLY_BRACKET, LEXER_TOKEN_SYMBOL_FUNCTION_ARROW, - LEXER_TOKEN_SYMBOL_COLON, - LEXER_TOKEN_SYMBOL_ASSIGN, - LEXER_TOKEN_SYMBOL_SUM_ASSIGN, - LEXER_TOKEN_SYMBOL_SUB_ASSIGN, - LEXER_TOKEN_SYMBOL_MULTIPLY_ASSIGN, - LEXER_TOKEN_SYMBOL_DIVIDE_ASSIGN, - LEXER_TOKEN_SYMBOL_MODULO_ASSIGN, - LEXER_TOKEN_SYMBOL_COMMA, + LEXER_TOKEN_ORDER2 = LEXER_TOKEN_SYMBOL_FUNCTION_ARROW, + LEXER_TOKEN_SYMBOL_POINTER, + LEXER_TOKEN_KEYWORD_STRUCT, + + LEXER_TOKEN_SYMBOL_DEREFERENCE, + LEXER_TOKEN_ORDER3 = LEXER_TOKEN_SYMBOL_DEREFERENCE, + LEXER_TOKEN_SYMBOL_ACCESS, + LEXER_TOKEN_SYMBOL_PLUS, + LEXER_TOKEN_ORDER4 = LEXER_TOKEN_SYMBOL_PLUS, LEXER_TOKEN_SYMBOL_MINUS, - LEXER_TOKEN_SYMBOL_SUM, - LEXER_TOKEN_SYMBOL_SUB, + LEXER_TOKEN_SYMBOL_ADDRESS, + LEXER_TOKEN_SYMBOL_MULTIPLY, + LEXER_TOKEN_ORDER5 = LEXER_TOKEN_SYMBOL_MULTIPLY, LEXER_TOKEN_SYMBOL_DIVIDE, LEXER_TOKEN_SYMBOL_MODULO, + + LEXER_TOKEN_SYMBOL_SUM, + LEXER_TOKEN_ORDER6 = LEXER_TOKEN_SYMBOL_SUM, + LEXER_TOKEN_SYMBOL_SUB, + LEXER_TOKEN_SYMBOL_EQUAL, + LEXER_TOKEN_ORDER7 = LEXER_TOKEN_SYMBOL_EQUAL, LEXER_TOKEN_SYMBOL_NOT_EQUAL, LEXER_TOKEN_SYMBOL_GREATER, LEXER_TOKEN_SYMBOL_SMALLER, LEXER_TOKEN_SYMBOL_GREATER_OR_EQUAL, LEXER_TOKEN_SYMBOL_SMALLER_OR_EQUAL, - LEXER_TOKEN_SYMBOL_POINTER, - LEXER_TOKEN_SYMBOL_ADDRESS, - LEXER_TOKEN_SYMBOL_DEREFERENCE, - LEXER_TOKEN_SYMBOL_ACCESS, + + LEXER_TOKEN_SYMBOL_COLON, + LEXER_TOKEN_ORDER8 = LEXER_TOKEN_SYMBOL_COLON, + + LEXER_TOKEN_SYMBOL_ASSIGN, + LEXER_TOKEN_ORDER9 = LEXER_TOKEN_SYMBOL_ASSIGN, + LEXER_TOKEN_SYMBOL_SUM_ASSIGN, + LEXER_TOKEN_SYMBOL_SUB_ASSIGN, + LEXER_TOKEN_SYMBOL_MULTIPLY_ASSIGN, + LEXER_TOKEN_SYMBOL_DIVIDE_ASSIGN, + LEXER_TOKEN_SYMBOL_MODULO_ASSIGN, + + LEXER_TOKEN_KEYWORD_RETURN, + LEXER_TOKEN_ORDER10 = LEXER_TOKEN_KEYWORD_RETURN, + LEXER_TOKEN_KEYWORD_PUTC, + LEXER_TOKEN_KEYWORD_COMPTIME, + + LEXER_TOKEN_SYMBOL_EOL, + LEXER_TOKEN_ORDER11 = LEXER_TOKEN_SYMBOL_EOL, + LEXER_TOKEN_SYMBOL_COMMA, + + LEXER_TOKEN_KEYWORD_IF, + LEXER_TOKEN_ORDER12 = LEXER_TOKEN_KEYWORD_IF, + LEXER_TOKEN_KEYWORD_WHILE, + + LEXER_TOKEN_KEYWORD_ELSE, + LEXER_TOKEN_END_ORDERS = LEXER_TOKEN_KEYWORD_ELSE, + + LEXER_TOKEN_SYMBOL, + LEXER_TOKEN_SYMBOL_OPEN_PARENTHESIS, + LEXER_TOKEN_SYMBOL_OPEN_CURLY_BRACKET, LEXER_TOKEN_NONE, } LexerToken; |