7

有人建议我使用解析器生成器为我的领域特定语言创建解析器。

理想情况下,我希望它输出一个 Objective-C 解析器并采用 BNF 输入来描述语言。

似乎几乎没有选择..是否可以使用带有目标 C 的更流行的解析器生成器之一?

谢谢!

4

3 回答 3

8

在像 Objective-C 这样的动态语言中,代码生成并不是“真正的方式”。解析器生成器可以实现的任何事情都可以在运行时实现。所以,我建议你试试ParseKit 之类的东西,它将采用类似 BNF 的语法,并为你提供各种委托钩子,你可以实现它来构建你的解析器。

查看本教程了解更多详情。

于 2011-07-16T22:56:37.113 回答
7

(当然)有你对 Bison 或 YACC 或其他东西的预期答案,但如果你想要一个原生的 Objective-C 解决方案,那么已经提到了这对夫妇。(Hammer 和 ParseKit)我知道的另一个是“CoreParse”: https ://github.com/beelsebob/CoreParse

于 2011-07-16T23:19:28.550 回答
4

如果您熟悉它们,您当然可以使用任何基于 C 的解析器生成器。另一个 Objective-C 运行时解析器是不可抑制的 Rob Rix的Hammer 。

于 2011-07-16T23:05:59.307 回答