Вам нужно будет сделать несколько вещей:
a) представить последовательность токенов в виде диапазона итераторов, которые нужно будет передать в parse / фразу_parse b) добавить оператор преобразования по умолчанию в ваш тип токенапредоставление идентификатора токена
struct token
{
operator int() const { return id; }
};
, который позволяет использовать qi::char_(ID)
в качестве компонента синтаксического анализа, сопоставляющего токен с идентификатором токена ID
.
Более сложная интеграция атрибутов (значений токена)посмотрите на Spirit.Lex, как это можно сделать.