Индекс базовой строки при разборе токенов в boost - PullRequest
2 голосов
/ 24 января 2012

Мне было интересно, возможно ли получить значение индекса базовой строки при разборе с использованием жетонов буста.

word_count_lexer - это boost :: spirit :: lex :: lexer Вот мой пример кода:

base_iterator first = str.begin();
base_iterator last = str.end();
lexer_type::iterator_type iter = word_count_lexer.begin(first, last);
lexer_type::iterator_type end = word_count_lexer.end();
while (iter != end && token_is_valid(*iter)) {
    if(iter->id() == ID_WORD) {
       std::cout << iter->value() << std::endl;
    }
    ++iter;
    ++w;
}

Чего я хочу достичь: в моем цикле while я хотел бы получить доступ к индексу совпадения.Я думал что-то вроде

std::distance(str.begin(), it)

, но это не работает из-за его типа.

1 Ответ

0 голосов
/ 25 января 2012

Я нашел обсуждение по этой теме здесь . В конечном итоге я изменил свой подход и использовал другую стратегию синтаксического анализа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...