在boost中解析标记时的基础字符串索引

时间:2012-01-24 18:08:21

标签: c++ boost boost-spirit

我想知道在使用boost令牌进行解析时是否可以获取底层字符串的索引值。

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 :(得分:0)

我发现了有关此主题的讨论here。 最终我改变了我的方法并使用了不同的解析策略。