boost-spirit - 进入提振精神;齐还是X3?

标签 boost-spirit boost-spirit-qi boost-spirit-x3

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

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

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

我不确定这 2 个库的处理方式有何不同。

最佳答案

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

齐是

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

文档是

关于boost-spirit - 进入提振精神;齐还是X3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52990661/

相关文章:

c++ - boost::spirit::hold_any 是如何工作的?

c++ - 如何将 boost::spirit::qi::lexeme 的属性转换为 std::string?

c++ - Spirit V2 和 X3 的状态

c++ - X3 : Is this parser, *(char - eol),消耗所有行?

c++ - 提升分析结构的精神

c++ - 为 Android NDK 编译 Boost 库的子集

c++ - 什么时候我应该选择 boost spirit attr_cast 而不是语义 Action

boost-spirit - 使用 Spirit.Qi 消除语法糖

c++ - Boost Spirit 2 - 符号扩展和回溯