如何将 Boost Spirit 解析的实体与其在输入流中的位置相关联?

发布于 2024-11-14 11:14:37 字数 248 浏览 2 评论 0原文

Boost Spirit 库允许跟踪输入解析时定位。该机制允许在解析期间通知解析器错误的位置。

我想保留所有已解析实体的原始位置以及它们以供将来使用。 (例如,AST 语义验证。)推荐的方法是什么?

谢谢你!

Boost Spirit library permits to Track the Input Position While Parsing. This mechanism allows informing about location of a parser error during parsing.

I'd like to preserve original location for all parsed entities together with them for future use. (For example, AST semantic verification.) What would be the recommended way to do so?

Thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烈酒灼喉 2024-11-21 11:14:37

如果您需要所有实体的位置,您可能最好使用词法分析器,它会生成可选地携带有关匹配输入的位置信息的标记(请参阅 此处)。如果词法分析器不是一个选项,您可以使用新的 on_success() 构造(在 SVN 中提供或从 Boost V1.47 开始),其工作方式与 on_error() 类似,除了您提供的处理程序将在成功解析与其关联的规则时被调用。想象一下例子来看看它是如何工作的。

If you need the position of all entities you might be better off using a lexer, which produces tokens optionally carrying positional information about the matched input (see here). If a lexer is not an option you might utilize the new on_success() construct (available in SVN or starting with Boost V1.47), which works similarily to on_error(), except that your supplied handler will be invoked on a successful parse of the rule it is associated with. The the conjure example to see how it works.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文