我正在考虑编写本质上是我自永远以来的第一个解析器(=自从Uni的编译器类,我大部分都忘记了)。
因为我使用了C++,所以我想使用Boost精灵。然后,我注意到有“常规”2.5.2,代码中有一个神奇的子集,名为圣灵X3。
我还注意到,提升精神X3已经被宣布/讨论/预发布两年前,然而升压精神的官方版本是2.5.2。最后,我读到:
Where is boost-spirit 3? Is it abandoned?
所以我“知道”这不是一个废弃的项目,但不是一个非常积极维护的项目。用精神X3编写解析器对我来说有多“安全”?它是否有可能失败/被丢弃/被抛弃,或者它肯定会成为提升精神释放的主线?
发布于 2017-07-10 15:18:18
它已经发布了,所以它消失的可能性很小。
我甚至在生产代码中也广泛使用X3 :毕竟,我们有测试是有原因的。
尽管如此,我知道围绕着分散在不同的翻译单位的规则的联系的一些多多少少的问题。
下面列出了一些让我考虑在以下情况下不使用X3的事情:
稍微不那么紧迫的差异出现在以下情况:
with<>:Boost Spirit X3 cannot compile repeat directive with variable factor可以解决很多问题,但我不相信它是可重入的然而,请注意,有一些明确的领域是X3闪耀的:
见邮件列表,例如x3 linker error with separate TU和linking errors while separate parser using boost spirit x3
事实上,通过在with<>和any_parser<>的基础上创建一个自定义解析器,创建一个解析器可能“很容易”。
https://stackoverflow.com/questions/45014216
复制相似问题