XPlor/libs/dsl/Token.h

61 lines
889 B
C
Raw Normal View History

2026-01-01 22:18:25 -05:00
#ifndef TOKEN_H
#define TOKEN_H
#include <QString>
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