扫描代码注释并转换为标准格式的工具[关闭]
Posted
技术标签:
【中文标题】扫描代码注释并转换为标准格式的工具[关闭]【英文标题】:Tool to Scan Code Comments, and convert to Standard Format [closed] 【发布时间】:2011-01-10 14:55:40 【问题描述】:我正在从事一个 C 项目,该项目有许多不同的作者和许多不同的文档样式。
我是doxygen 和其他文档生成工具的忠实粉丝,我想迁移这个项目以使用其中一个系统。
是否有人知道可以扫描源代码 cmets 以查找“描述”、“作者”、“文件名”等关键字和其他类型的上下文以智能地将 cmets 转换为标准格式的工具?如果不是,我想我可以编写一个疯狂的脚本,或者手动转换。
谢谢
【问题讨论】:
【参考方案1】:当我在Lex + Yacc 上阅读 O'Reilly 的书时,我唯一能想到的就是有代码可以在命令行上输出 cmets,第 2 章中有一节介绍了如何解析cmets的代码包括//
和/*..*/
...页面上有示例链接,下载文件progs.zip,您要查找的文件是ch2-09.l
,需要构建,它可以很容易修改以输出 cmets。然后可以在脚本中使用它来过滤掉“名称”、“描述”等......
如果您有兴趣,我可以在此处发布有关如何执行此操作的说明?
编辑:我想我找到了你要找的东西,一个预建的评论文档提取器here。
希望这会有所帮助, 最好的祝福, 汤姆。
【讨论】:
【参考方案2】:我认为正如tommieb75 建议的那样,适当的解析器是处理这个问题的方法。
我建议查看ANTLR,因为它支持就地重写令牌缓冲区,我认为这可以最大限度地减少您为保留空白等所做的工作 - 请参阅The Definitive ANTLR reference 的第 9.7 章。
【讨论】:
【参考方案3】:如果要解析的样式集相对有限,编写一个 Visual Studio 宏(用于在 IDE 中使用)或独立应用程序(仅用于处理“离线”源代码)将相当简单cmets 的文件,然后使用某些标题或标签将它们重新格式化为新样式。
使用我的AtomineerUtils Pro Documentation 插件可能对您有所帮助。它可以一次性找到并转换源文件中的所有 cmets。开箱即用,它解析 XML 文档、Doxygen、JavaDoc 和 Qt 格式(或任何足够接近它们的格式),然后可以以任何这些格式输出注释。它还可以配置为转换不兼容的遗留 cmets。有几个选项可以帮助转换,但最强大的 calls a Visual Studio Macro 在解析之前带有注释文本,允许您应用一些字符串处理将遗留的 cmets 转换为 AtomineerUtils 可以随后读取的格式(示例宏网站上提供了最常用的旧样式之一,因此修改它以适应您的旧格式通常非常简单,只要它适合计算机解析即可。
转换后的文本不需要特别整齐 - 一旦 AtomineerUtils 可以提取文档条目,它会为您清理 cmets - 它可以选择自动应用自动换行、一致的元素顺序和间距等,并确保注释准确描述它记录的代码元素(其条目匹配参数、类型参数、抛出的异常等),然后以其配置的格式输出替换注释。这可以节省您在转换宏中做大量工作以使事情变得整洁 - 完成转换后,您可以继续使用插件来节省记录代码的时间,并确保所有新的 cmets 继续以相同的样式。
【讨论】:
以上是关于扫描代码注释并转换为标准格式的工具[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Python代码规范:代码规范整改和编码技巧-pylint扫描问题整改