1
Boost Spirit图书馆许可证号为Track the Input Position While Parsing。该机制允许在解析过程中通知解析器错误的位置。如何将Boost Spirit解析的实体与它们在输入流中的位置相关联?
我想保留所有解析实体的原始位置以及它们以备将来使用。 (例如,AST语义验证。)推荐的方式是什么?
谢谢!
Boost Spirit图书馆许可证号为Track the Input Position While Parsing。该机制允许在解析过程中通知解析器错误的位置。如何将Boost Spirit解析的实体与它们在输入流中的位置相关联?
我想保留所有解析实体的原始位置以及它们以备将来使用。 (例如,AST语义验证。)推荐的方式是什么?
谢谢!
如果您需要所有实体的位置,您最好使用词法分析器,该词法分析器会生成可选择地输入有关匹配输入的位置信息的标记(请参阅here)。如果不使用词法分析器,您可以使用新的on_success()
构造(可在SVN中获得或者从Boost V1.47开始),其作用类似于on_error()
,除了您提供的处理程序将在成功解析规则时调用它之外有关联。这个变形的例子来看看它是如何工作的。