【发布时间】:2011-10-11 01:06:33
【问题描述】:
我喜欢静态分析和编译时检查,几乎是个错误,但我日常工作的大部分时间都在 Objective-C 中。为了解决这种紧张关系,我希望能够编写自己的分析工具,可以在我的 Objective-C 项目中运行。
但是在 Internet 上进行谷歌搜索表明,人们很难整理出完整的 Objective-C 语法。 One site基本上是建议放弃。
我确实找到了一个语法on the ANTLR website,但是当我启动它时,我根本无法让它解析任何东西。例如,它回复了一行:
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,都是完美的),但在这一点上,我愿意调整为另一个解析器工具包设计的东西。
【问题讨论】:
-
gcc 可以编译 Objective-C 程序(假设您没有使用 Apple 的 API),所以 gcc 源代码中应该有语法,不是吗? -- 哦,我看到你的第一个链接谈到了这一点。
标签: objective-c parsing antlr static-analysis javacc