我正在和一个朋友一起为一个小型个人项目做一名口译员;我们开始实现所有类和通用结构,其中代码将被翻译然后执行,只是为了推迟将实际解析代码放入这些结构中。
现在我们必须构建解析器,经过一番搜索,我发现到处都有帖子和人们谈论spirit Qi和spirit X3,就好像它们是(我认为它们是)两种不同的制作解析器的方法,但没有人说一下区别,哪个是最近的,我应该从哪一个开始。
目的是,给定一个代码字符串,输出最终的错误,如果一切都尊重语法和逻辑,则将代码转换为我们已经构建的类的树。我们希望在解析过程中检查一致性,例如“您正在使用未声明的变量”类型的错误。
我不确定这两个库如何以不同的方式对待事物。
X3 较新,仍处于实验阶段,需要 C++14。
Qi is
- 更稳定
- 更轻松地支持更多状态选项
- 支持惰性解析器(您可能会喜欢)
- 编译速度慢得多
文档是
- https://www.boost.org/doc/libs/1_68_0/libs/spirit/doc/html/spirit/qi.html
- https://www.boost.org/doc/libs/1_68_0/libs/spirit/doc/x3/html/index.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)