精神 X3 解析器启动状态
Spirit X3 parser start state?
我一直在浏览我能够找到的 Boost.Spirit X3 文档---这并不多---我想在下一个解析项目中使用它。值得注意的是,我从未使用过Boost.Spirit Classic或V2,但使用过flex/bison和ANTLR。
我想要解析的格式,就最基本的意义而言,如下所示:
unimportant
foo
bar
# BEGIN
parse this
...
# END
ignore this
其中仅解析"# BEGIN"和"# END"之间的文本,而完全忽略其他所有内容。我正在尝试找出一种在 X3 解析器中完成此操作的有效方法。我的一些想法:
- 使用基本的字符串搜索函数来限制分析的范围。这似乎是最糟糕的选择,因为文本将被多次处理,而不是一次处理。
- 看看精神莱克斯。我再次发现在 Spirit.Lex 上很难找到任何像样的阅读材料,但似乎 Lex 提供了词法分析器启动状态,这将是处理这项工作的传统方式。顺便说一句,由于X3是基于C++14的,而Spirit.Lex是建立在lexertl之上的,是否有配置选项或方法可以将Spirit.Lex与现代化的lexertl14一起使用?
- 也许在 X3 中有一些有意义的方法来处理这个问题?由于语法实际上非常简单,我认为使用单独的词法分析器是矫枉过正的。
使用 Boost Spirit 解析文本文件,同时跳过大部分文本文件中的示例也适用于 X3:
住在科里鲁
当然,您必须根据自己的喜好对其进行修改。如果您在 [SO] 上搜索qi seek
,您会发现更多样本,其中一些可能更接近您的目的。
相关文章:
- 如何创建一个空的全局类并在启动时实例化它
- Constexpr替代了新的放置方式,可以让内存中的对象保持未初始化状态
- 我不断收到 [错误] ID 返回 1 退出状态错误,但看不到问题所在
- 即使我读取了所有内容,在FIFO上打开的QSocketNotifier也会一直启动
- OSX MetalKit CVMetalTextureCacheCreateTextureFromImage失败,状态:
- 使用 std::string () const 函数启动线程或未来
- 启动状态机无法在启动时处理内部转换
- 对于每个线程,random_device是否以不同的状态启动?
- Windows服务处于“启动”状态
- 从C++通过RPC启动新线程会导致进程陷入僵尸状态
- 将QCheckBox的状态保存在文件中,并在程序重新启动时加载状态
- 精神 X3 解析器启动状态
- Qt QState机器同步问题:初始状态未在启动信号上设置
- 由于从客户端启动守护程序应用程序,服务器端口无法返回侦听并处于关闭等待状态
- 什么API将启动FTP传输并向GUI报告状态
- 从python启动多个二进制文件并监视它们的状态
- 启动远程进程并监视状态
- 如何启动MFC SDI应用程序处于非活动状态
- 在一个任务的状态被另一个任务更改后重新启动该任务
- 程序启动后立即退出,退出状态为 0