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