有人建议我使用解析器生成器为我的领域特定语言创建解析器。
理想情况下,我希望它输出一个 Objective-C 解析器并采用 BNF 输入来描述语言。
似乎几乎没有选择..是否可以使用带有目标 C 的更流行的解析器生成器之一?
谢谢!
有人建议我使用解析器生成器为我的领域特定语言创建解析器。
理想情况下,我希望它输出一个 Objective-C 解析器并采用 BNF 输入来描述语言。
似乎几乎没有选择..是否可以使用带有目标 C 的更流行的解析器生成器之一?
谢谢!
在像 Objective-C 这样的动态语言中,代码生成并不是“真正的方式”。解析器生成器可以实现的任何事情都可以在运行时实现。所以,我建议你试试ParseKit 之类的东西,它将采用类似 BNF 的语法,并为你提供各种委托钩子,你可以实现它来构建你的解析器。
查看本教程了解更多详情。
(当然)有你对 Bison 或 YACC 或其他东西的预期答案,但如果你想要一个原生的 Objective-C 解决方案,那么已经提到了这对夫妇。(Hammer 和 ParseKit)我知道的另一个是“CoreParse”: https ://github.com/beelsebob/CoreParse
如果您熟悉它们,您当然可以使用任何基于 C 的解析器生成器。另一个 Objective-C 运行时解析器是不可抑制的 Rob Rix的Hammer 。