gpt4 book ai didi

objective-c - 解析 Objective-C 代码进行静态分析

转载 作者:太空狗 更新时间:2023-10-30 03:14:20 24 4
gpt4 key购买 nike

我喜欢静态分析和编译时检查,这几乎是一种错误,但我日常工作的大部分时间都是在 Objective-C 中。为了解决这种紧张关系,我希望能够编写我自己的分析工具,我可以在我的 Objective-C 项目上运行。

但是在 Internet 上进行谷歌搜索表明人们很难将完整的 Objective-C 语法组合在一起。 One site基本上建议放弃。

我确实找到了语法 on the ANTLR website ,但是当我启动它时,我根本无法解析任何东西。例如,它响应了以下行:

void x();

with 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

但我需要一些既能解析接口(interface)又能解析实现的东西。

有没有完整的 Objective-C 2.0 语法?我更喜欢可以与 Scala 一起工作的东西(所以任何与 Java 兼容的东西,比如 ANTLR,都是完美的),但在这一点上,我愿意采用为另一个解析器工具包设计的东西。

最佳答案

正如其他人所提到的,Clang 将是正确的解决方案。您可以提供自己的 AST 使用者,即在遍历 AST 时将调用的类,让您不必担心解析或搞乱语法。

Clang 完全支持 Objective-C,而且静态分析器中已经有很多类,您可以根据这些类对自己的检查进行建模。 (在 clang/lib/StaticAnalyzer/Checkers 中)。

该目录包含很多静态分析器检查器,但您也可以只创建一个普通的 AST 使用者。引用http://code.google.com/p/chromium/wiki/WritingClangPlugins获取更多信息。

关于objective-c - 解析 Objective-C 代码进行静态分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6790350/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com