enum class eTokenType { Keyword, // GET, IN, FOR, CROSS, IF, ORDER, UNIQUE, AS, OR, AND, NOT, // IN, MATCHES, BETWEEN, INCL, EXCL, INCL_L, INCL_R, // MATCH, LEFT, RIGHT, FULL, ASC, DESC, NULL Identifier, // name, age, test_table.id StringLit, // "Alberto" NumberLit, // 20, 1998 Operator, // == != < <= > >= Symbol, // ( ) [ ] { } , . * ; EndOfInput }; struct Token { eTokenType type; String value; // raw text u32 line, col; // for error reporting — add from day one, you'll regret skipping it };