【发布时间】:2013-05-08 09:23:03
【问题描述】:
我想尝试从 Objective-C 类生成代码统计信息或简单的可视化。有哪些工具可以读取 obj-c 并给出语义信息,例如“A 类扩展 B 类”或“C 是 B 类的属性”?
- 编译器? (叮当声)
- 调试器? (lldb / gdb)
- 正则表达式?
只是寻找有关此类任务的常用方法的指导。
编辑:我应该明确表示,目前我并不想做更多的事情,只是解决简单的类关系。
【问题讨论】:
标签: objective-c
我想尝试从 Objective-C 类生成代码统计信息或简单的可视化。有哪些工具可以读取 obj-c 并给出语义信息,例如“A 类扩展 B 类”或“C 是 B 类的属性”?
只是寻找有关此类任务的常用方法的指导。
编辑:我应该明确表示,目前我并不想做更多的事情,只是解决简单的类关系。
【问题讨论】:
标签: objective-c
我写了一个sample project,它使用clang 前端库来解析Objective-C 源代码,找出为哪些类定义了哪些方法。根据您描述的需求进行调整会很简单:
CXIdxEntity_ObjCClass 类型声明的标识,因为它们是 Objective-C 类。clang_index_getObjCInterfaceDeclInfo() 以获取有关此声明的特定于类的信息。.superinfo 成员告诉你超类是什么!【讨论】:
如果您只需要处理类关系,我认为基于自定义正则表达式的解析器就可以了。如果你需要更多的东西,正则表达式方法很快就会失败,你应该考虑使用 Clang to dump the AST,参见这个related question。
【讨论】:
祝你好运,还有很多工作要做,这不是一件容易的事 正则表达式非常有限,但可能适用于简单的任务。可能是快速和肮脏的选择。 Clang 可能是一个不错的选择。 也可以看看CodeWorker
【讨论】: