我被建议使用Parser Generator为我的域特定语言创建解析器。
理想情况下,我希望输出一个Objective-C解析器并使用BNF输入来描述语言。
似乎很少有选择..是否有可能使用一个更受欢迎的具有目标C的分析器生成器?
谢谢!
答案 0 :(得分:8)
代码生成不是像Objective-C这样的动态语言中的“真正方式”。解析器生成器可以实现的任何操作都可以在运行时实现。所以,我建议你尝试类似ParseKit的东西,它将采用类似BNF的语法,并为你提供各种代理钩子,你可以用它来构建你的解析器。
查看this tutorial了解详情。
答案 1 :(得分:7)
当然(当然)你对Bison或YACC之类的东西的预期答案,但是如果你想要一个原生的Objective-C解决方案,那么已经提到了这对。 (Hammer和ParseKit)我知道的另一个是“CoreParse”:https://github.com/beelsebob/CoreParse
答案 2 :(得分:4)
如果您熟悉它们,您当然可以使用任何基于C的解析器生成器。另一个Objective-C运行时解析器由不可抑制的Rob Rix构成Hammer。