我喜欢静态分析和编译时检查,几乎是个错误,但我日常工作的大部分时间都在 Objective-C 中。为了解决这种紧张关系,我希望能够编写自己的分析工具,可以在我的 Objective-C 项目中运行。
但是在互联网上搜索表明人们很难整理出完整的 Objective-C 语法。一个网站 基本上建议放弃。
我确实在 ANTLR 网站上找到了一个语法,但是当我启动它时,我根本无法让它解析任何东西。例如,它响应了以下行:
void x();
和src/main/resources/somecode.m line 1:0 no viable alternative at input 'void'
:(
我仔细查看了语法,发现以下令人沮丧的免责声明:
it's a work in progress, most of the .h file can be parsed
但我需要一些可以解析接口和实现的东西。
那里有完整的 Objective-C 2.0 语法吗?我更喜欢可以与 Scala 一起使用的东西(因此任何与 Java 兼容的东西,比如 ANTLR,都是完美的),但在这一点上,我愿意调整为另一个解析器工具包设计的东西。