我喜欢静态分析和编译时检查,甚至有点过于热衷。但我的工作大部分是使用Objective-C。为了解决这种紧张状态,我想编写自己的分析工具,以便在Objective-C项目上运行。
但我需要一个可以解析接口和实现的东西。
是否有完整的Objective-C 2.0语法存在?我更喜欢能够与Scala一起使用的东西(因此任何Java兼容的东西,如ANTLR,都是完美的),但在这一点上,我愿意适应为另一个解析器工具包设计的东西。
但在互联网上搜索发现,人们很难组合出完整的Objective-C语法。一个网站基本上建议放弃。
我在ANTLR网站上找到了一份语法,但当我启动它时,无法解析任何内容。例如,它对以下代码无响应:
void x();
使用src/main/resources/somecode.m
第 1 行,第 0 个字符处出现了无法接受的输入 'void'。
:(
我仔细查看了语法并发现以下令人沮丧的免责声明:
it's a work in progress, most of the .h file can be parsed
但我需要一个可以解析接口和实现的东西。
是否有完整的Objective-C 2.0语法存在?我更喜欢能够与Scala一起使用的东西(因此任何Java兼容的东西,如ANTLR,都是完美的),但在这一点上,我愿意适应为另一个解析器工具包设计的东西。