// Kyler Olsen // YREA SLS // Lexer Header // October 2025 #ifndef SLS_LEXER_H #define SLS_LEXER_H #include typedef enum { TOKEN_EOF, TOKEN_IDENTIFIER, TOKEN_INTEGER, TOKEN_FLOAT, TOKEN_DOUBLE, TOKEN_STRING, TOKEN_BOOLEAN, TOKEN_ARRAY, TOKEN_TOKEN_STRING, TOKEN_TYPE_TUPLE, } TokenType; typedef enum { INTEGER_I64, INTEGER_I32, INTEGER_I16, INTEGER_I8, INTEGER_U64, INTEGER_U32, INTEGER_U16, INTEGER_U8, } IntegerBuiltInType; typedef struct { const char *name; uint8_t is_literal; } Identifier; typedef struct { uint64_t value; IntegerBuiltInType type; } IntegerLiteral; #endif // SLS_LEXER_H