【问题标题】:Parser Generator for Objective C?Objective C 的解析器生成器?
【发布时间】:2011-07-16 22:53:08
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

    标签: objective-c parsing compiler-construction programming-languages parser-generator


    【解决方案1】:

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

    查看this tutorial了解更多详情。

    【讨论】:

    • 看起来很棒,谢谢!你知道 ParseKit 的类 BNF 语法是否支持递归吗?只是我没有看到它提到..
    • 我很确定它确实如此,但如果你以这种方式编码左递归语法,除非你非常小心,否则你最终会陷入无限循环。因此,我建议您尝试将递归纳入重复,这可能会更好地为您服务。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-13
        • 1970-01-01
        • 1970-01-01
        • 2011-06-29
        相关资源
        最近更新 更多