进入振奋精神;齐还是X3?

Bar*_*ack 3 boost-spirit boost-spirit-qi boost-spirit-x3

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

现在我们必须构建解析器,经过一番搜索,我发现到处都是关于灵气和灵气 X3 的帖子和人,好像它们是(我认为它们是)两种不同的方式来制作解析器,但没有一个说不同,哪个更近,我应该从哪个开始。

目的是,给定一个代码字符串,输出最终错误,如果一切都遵守语法和逻辑,则将代码转换为我们已经构建的类的树。我们想在解析过程中检查一致性,例如“您正在使用未声明的变量”类型的错误。

我不确定这两个库如何以不同的方式对待事物。

seh*_*ehe 6

X3 是更新的,仍然是实验性的,需要 C++14。

齐是

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

文档是

  • @Barnack我刚刚遇到了这个相关的答案,你可能会喜欢阅读,它提到了 Qi 和 X3 之间的许多结构差异 /sf/ask/3182050791/ (2认同)