【问题标题】:How to determine line/column numbers from boost::spirit::lex tokens?如何从 boost::spirit::lex 令牌中确定行/列号?
【发布时间】:2015-08-18 13:11:30
【问题描述】:

在其对this question 的回答中,hkaiser 表示他将编写一个带有代码位置信息的令牌类型的示例。我真的找不到任何关于这个的东西。

谁能指出这样的例子?

【问题讨论】:

    标签: c++ boost lex boost-spirit


    【解决方案1】:

    他可能指的是position_token,它确实已经发布,尽管文档很少。 This SO question 对其用法有很好的覆盖。

    【讨论】:

    • 好的,谢谢。您知道是否有示例或教程说明如何在某处使用它吗?
    • Hartmut 在他的回答中提供了更多细节:stackoverflow.com/questions/5964228/…
    • 在 Boost 源代码中,您可以在 libs/spirit/example/qi/compiler_tutorial/conjure3/lexer.hpp 找到它
    • position_token 有方法 begin()end() 将迭代器返回到它们匹配的底层输入的开头和结尾。例如,您可以使用它来确定文件中匹配输入的字节偏移量。
    • @JeffTrull 为此,我认为您需要使用 line_pos_iterator
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-15
    相关资源
    最近更新 更多