我想尝试从 Objective-C 类生成代码统计信息或简单的可视化。有哪些工具可以读取 obj-c 并提供语义信息,例如“A 类扩展 B 类”或“C 是 B 类的属性”?
- 编译器?(铛)
- 调试器?(lldb/gdb)
- 正则表达式?
只是寻找有关此类任务的常用方法的指导。
编辑:我应该明确表示,目前我并不想做更多的事情,只是解决简单的类关系。
我想尝试从 Objective-C 类生成代码统计信息或简单的可视化。有哪些工具可以读取 obj-c 并提供语义信息,例如“A 类扩展 B 类”或“C 是 B 类的属性”?
只是寻找有关此类任务的常用方法的指导。
编辑:我应该明确表示,目前我并不想做更多的事情,只是解决简单的类关系。
我编写了一个示例项目,它使用 clang 前端库来解析 Objective-C 源代码,找出为哪些类定义了哪些方法。将其适应您描述的需求会很简单:
CXIdxEntity_ObjCClass
kind 声明的标识,因为它们是 Objective-C 类。clang_index_getObjCInterfaceDeclInfo()
声明以获取有关此声明的特定于类的信息。.superinfo
成员告诉你超类是什么!祝你好运,有很多工作要做,这不是一件容易的事 正则表达式非常有限,但可能适用于简单的任务。可能是快速和肮脏的选择。Clang 可能是一个不错的选择。你也可以看看CodeWorker