振奋精神;齐还是X3?

Getting into boost spirit; Qi or X3?

我和朋友一起为一个小型个人项目做翻译;我们开始实现所有 类 和通用结构,代码将在其中转换为然后执行,只是为了将实际的解析代码推迟到这些结构中。

现在我们必须构建解析器,经过一番搜索后,我发现到处都是帖子和人们在谈论 spirit Qi 和 spirit X3,就好像它们是(我认为它们是)两种不同的解析器制作方法, 但没有人说出区别,哪个是最近的,我应该从哪个开始。

目的是,给定一个代码字符串,输出最终的错误,如果一切都符合语法和逻辑,则将代码翻译成我们已经构建的 类 树。我们想在解析过程中检查一致性,例如 "you're using a variable that wasn't declared" 类错误。

我不确定这两个图书馆的处理方式有何不同。

X3 较新,仍处于试验阶段,需要 C++14。

气是

  • 更稳定
  • 更轻松地支持更多有状态选项
  • 支持惰性解析器(您可能会喜欢)
  • 编译速度慢得多

文档是