#ifndef TOKEN_H #define TOKEN_H #include enum class TokenKind { End, Identifier, Number, String, // punctuation LBrace, RBrace, LParen, RParen, LBracket, RBracket, Semicolon, Comma, Assign, Pipe, DotDot, // operators Plus, Minus, Star, Slash, Percent, LShift, RShift, Bar, Amp, Caret, Bang, EqEq, NotEq, Lt, Lte, Gt, Gte, AndAnd, OrOr, // keywords KwType, KwByteOrder, KwLE, KwBE, KwSkip, KwIf, KwElse, KwWhile, KwAlign, KwSeek, KwRepeat, KwFor, KwIn, KwEOF, KwCriteria, KwRequire, KwBool, // scalar keywords KwU8, KwU16, KwU32, KwU64, KwI8, KwI16, KwI32, KwI64, }; struct Token { TokenKind kind = TokenKind::End; QString text; qint64 number = 0; int line = 1; int col = 1; }; #endif // TOKEN_H