分析boost中的令牌时基础字符串的索引

Index of underlying string when parsing tokens in boost

本文关键字:字符串 索引 令牌 boost 分析      更新时间:2023-10-16

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

word_count_lxer是一个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)

但这在这里不起作用,因为它的类型。

我在这里找到了关于这个主题的讨论。最终,我改变了我的方法,使用了不同的解析策略。