Список токенов
В используемой программной реализации список токенов представлен классическим двусвязным списком структур, каждая из которых хранит информацию о конкретном токене, а именно, его тип (назначение) и содержимое (какое-либо значение из множества, определяемого типом токена). Описательная часть объявления упомянутых объектов представлена следующим образом:
struct Token {
TokenType type;
std::variant<Keyword, Operator, Special, std::string> value;
};
using TokenList = std::list<Token>;
Таким образом, TokenList – это двусвязный список, основанный на std::list из стандартной библиотеки языка C++, хранящий структуры типа Token, содержащие:
тип токена
typeкак одно из значений некоторого перечисленияTokenType;содержимое токена
valueкакstd::variant– типобезопасное объединение всевозможных типов.