Objective-C-生成源代码报告
我面临以下问题:我需要为Objective-C源代码(为iOS编写)生成详细的报告。我需要能够显示以下内容: 课堂报告:Objective-C-生成源代码报告,objective-c,ios,parsing,Objective C,Ios,Parsing,我面临以下问题:我需要为Objective-C源代码(为iOS编写)生成详细的报告。我需要能够显示以下内容: 课堂报告: 类名|文件位置|方法数 ClassA |/my/path/ClassA.m| 7 ClassB|/my/path/ClassB.m|12 方法报告: 方法名称|类名|文件位置 方法1 | ClassA |/my/path/ClassA.m 方法2 | ClassA |/my/path/ClassA.m 我还需要能够显示一些其他报告,但在这一刻,我感兴趣的只是从某个地方开始
类名|文件位置|方法数
ClassA |/my/path/ClassA.m| 7
ClassB|/my/path/ClassB.m|12
方法报告:
方法名称|类名|文件位置
方法1 | ClassA |/my/path/ClassA.m
方法2 | ClassA |/my/path/ClassA.m
我还需要能够显示一些其他报告,但在这一刻,我感兴趣的只是从某个地方开始 请注意:
-目前我不需要显示行数/复杂度等。
-与上面类似的报告就足够了(只要它包含上面的信息,我就会非常高兴;我可以解析信息并创建所需的报告)
-我已经看过了Doxygen及其xml输出,但是对于我运行的几个示例项目,我没有在xml文档中列出所有方法(即使它们在文件中)。我必须调查为什么这些方法没有出现
提前感谢所有的答案/提示/评论……根据您对Java的熟练程度,您可能需要看一看。它还具有用于解析Objective-C2.0的语法 我承认我几乎没有打开语法来看看它有多复杂/简单。它看起来组织得很好,但我自己没有尝试过。一般来说,乍一看JavaCC看起来有点陡峭,但只要花几个小时玩弄它,您就会很快找到自己的标记。一旦你掌握了它,解析任何语言都会变得非常简单。我们的软件可能会帮助你很好地完成这项工作 SCSE通常以交互方式用于搜索大型源代码并检查代码。它了解它正在搜索的语言的元素,并且可以选择Objective C。因为它了解语言语法,所以不会被空格、注释或带有有趣内容的字符串所混淆。它还可以将搜索结果记录为文本日志和/或命中和位置(文件、行)的XML文件 可以在批处理脚本中使用它来执行搜索和捕获结果 要执行您想要的操作,您需要向SCSE提供以下查询并将结果记录到XML中(请原谅我的Objective语法,我不是这方面的程序员): 现在您有了一组描述这些元素所在位置的XML文件。集成hits将为您提供类和内容的概要模型,根据这些信息计算您的值应该非常简单
如果你想要一个更精确的答案,我们有一个。这些信息很容易从解析器生成的AST中提取。@Teofilo Israel Vizcaino Rodrig:由于代码使用了许多类,其中一些类是第三方的,因此大部分代码没有文档记录。也就是说,我在Doxygen中自动使用了“EXTRACT\u ALL=YES”。但是你的评论让我思考,我检查了Doxygen中的其他设置,我注意到(EXTRACT_ALL)没有“EXTRACT ALL”,所以我返回将其他选项设置为YES(例如,私人成员不会)。我只是运行它,输出看起来好多了。谢谢你的评论…我会去看看我能从JavaCC.Hi Ira那里得到什么,坦率地说,我根本没有朝那个方向想(搜索文件)。我一定要看看你的源代码搜索引擎,看看是否可以解决我的问题。非常感谢你的建议。
'@implementation' I -- this would find class declarations, bind I and capture line #
'@interface' I -- if you wanted these, too
'@end' -- would find end-of-class declarations
'+' '(' I ')' '{' -- find method declations and bind name
'-' '(' I ')' '{' -- find static method declarations