用于阅读Objective-C的解析器

Sam*_*Sam 5 objective-c

我想在Objective-C类中生成代码统计信息或简单的可视化.哪些工具可以读取obj-c并提供语义信息,例如"A类扩展B类"或"C是B类属性"?

  • 编译器?(铛)
  • 调试器?(lldb/gdb)
  • 正则表达式?

只是寻找关于这种任务的常用方法的指导.

编辑:我应该说清楚,我现在不是要做更多的工作,而不是简单的类关系.

小智 9

我编写了一个示例项目,该项目使用clang前端库来解析Objective-C源代码,找出为哪些类定义了哪些方法.根据您描述的需要调整它是很简单的:

  • 你得到每个声明的回调.查找使用CXIdxEntity_ObjCClass类型声明的标识,因为这些是Objective-C类.
  • 调用clang_index_getObjCInterfaceDeclInfo()声明以获取有关此声明的特定于类的信息.
  • .superinfo这个结构的成员告诉你超类是什么!