繁体   English   中英

用于阅读Objective-C的解析器

[英]Parser for reading Objective-C

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

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

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

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

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

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

如果你只需要解决类关系,我认为一个基于自定义正则表达式的解析器可以做到。 如果你需要更多东西,那么正则表达式的方法很快就注定要失败,你应该考虑使用Clang来转储AST ,看看这个相关的问题

祝你好运,还有很多工作要做,这不是一件容易的事,Regexp非常有限,但可能适用于简单的任务。 可能是快速和肮脏的选择。 Clang可能是个不错的选择。 您还可以查看CodeWorker

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM