3

我正在考虑编写本质上是我永远以来的第一个解析器(=自从我大部分忘记的 Uni 编译器类)。

由于我使用 C++,我正在考虑使用 Boost Spirit。然后我注意到有“常规”2.5.2 并且有一个名为 Spirit X3 的代码的神奇子集。

我还注意到 Boost Spirit X3 已经在 2 年前宣布/讨论/预发布,但 Boost Spirit 的正式版本是 2.5.2。最后,我读到:

升力精神3在哪里?它被遗弃了吗?

所以我“知道”这不是一个废弃的项目——但不是一个非常积极维护的项目。用 Spirit X3 编写解析器对我来说有多“安全”?有没有可能失败/被丢弃/被放弃,还是一定会成为Boost Spirit发布的主线?

4

1 回答 1

2

它已经发布了,所以它消失的可能性很小。

即使在生产代码中,我也自由地使用 X3:毕竟,我们确实有测试是有原因的。

也就是说,我知道围绕分散在不同翻译单元中的规则链接存在许多棘手的问题¹。

以下是让我考虑在以下情况下不使用 X3 的事项列表:

稍微不那么紧迫的区别是:

但是请注意,X3 有一些明确的领域:


¹ 请参阅邮件列表,例如x3 链接器错误与单独的 TU链接错误,而单独的解析器使用 boost spirit x3

² 事实上,通过创建一个自定义解析器来创建一个可能很“容易”,构建with<>any_parser<>

于 2017-07-10T15:18:18.510 回答