summaryrefslogtreecommitdiff
path: root/src/compiler/lexer.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/lexer.h')
-rw-r--r--src/compiler/lexer.h88
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;