Boost Spirit 库允许在解析时跟踪输入位置。此机制允许在解析期间通知解析器错误的位置。
我想保留所有已解析实体的原始位置以及它们以供将来使用。(例如,AST 语义验证。)推荐的方法是什么?
谢谢!
Boost Spirit 库允许在解析时跟踪输入位置。此机制允许在解析期间通知解析器错误的位置。
我想保留所有已解析实体的原始位置以及它们以供将来使用。(例如,AST 语义验证。)推荐的方法是什么?
谢谢!
如果您需要所有实体的位置,最好使用词法分析器,该词法分析器会生成可选地携带有关匹配输入的位置信息的标记(请参阅此处)。如果词法分析器不是一个选项,您可以使用新on_success()
构造(在 SVN 中可用或从 Boost V1.47 开始),它的工作方式与 类似on_error()
,除了您提供的处理程序将在成功解析与之关联的规则时被调用. 魔术示例来看看它是如何工作的。