gpt4 book ai didi

c++ - Spirit X3解析器启动状态?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:14:47 24 4
gpt4 key购买 nike

我一直在浏览我能够找到的 Boost.Spirit X3 文档——这并不多——我想我想将它用于我的下一个解析项目。值得注意的是,我从未使用过 Boost.Spirit Classic 或 V2,但使用过 flex/bison 和 ANTLR。

从最基本的意义上讲,我要解析的格式如下所示:

unimportant
foo
bar
# BEGIN
parse this
...
# END
ignore this

只解析“#BEGIN”和“#END”之间的文本,其他所有内容都被完全忽略。我试图找出一种在 X3 解析器中完成此操作的有效方法。我的一些想法:

  1. 使用基本的字符串搜索功能来限制解析范围。这似乎是最糟糕的选择,因为文本将被处理多次而不是一次性处理。
  2. 调查 Spirit.Lex。我再次发现在 Spirit.Lex 上找到任何体面的阅读 Material 有些困难,但 Lex 似乎提供了词法分析器开始状态,这将是处理这项工作的传统方式。顺便说一句,由于 X3 是基于 C++14 的,而 Spirit.Lex 是建立在 lexertl 之上的, 是否有配置选项或方式将 Spirit.Lex 与现代化的 lexertl14 结合使用?
  3. 也许在 X3 中有一些有意义的方法来处理这个问题?由于语法实际上非常简单,我认为有一个单独的词法分析器是多余的。

最佳答案

Using Boost Spirit to parse a text file while skipping large parts of it 中的示例也适用于 X3:

Live On Coliru

当然,您必须根据自己的喜好对其进行修改。如果您在 [SO] 上搜索 qi seek,您会找到更多示例,其中一些可能更接近您的目的。

关于c++ - Spirit X3解析器启动状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35207781/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com