3

我正在从事一个 C 项目,该项目已经看到了许多不同的作者和许多不同的文档样式。

我是doxygen和其他文档生成工具的忠实粉丝,我想迁移这个项目以使用这些系统之一。

是否有人知道可以扫描源代码注释以查找“描述”、“作者”、“文件名”等关键字和其他类型的上下文以智能地将注释转换为标准格式的工具?如果不是,我想我可以编写一个疯狂的脚本,或者手动转换。

谢谢

4

3 回答 3

2

当我阅读 O'Reilly 关于Lex + Yacc的书时,我唯一能想到的是,有代码可以在命令行上输出注释,第 2 章中有一节介绍了如何解析代码以获取注释包括///*..*/...页面上有示例链接,下载文件progs.zip,您要查找的文件是ch2-09.l需要构建的,可以轻松修改以输出评论。然后可以在脚本中使用它来过滤掉“名称”、“描述”等......

如果您有兴趣,我可以在此处发布有关如何执行此操作的说明?

编辑:我想我已经找到了你要找的东西,这里是一个预建的评论文档提取

希望这会有所帮助,最好的问候,汤姆。

于 2010-01-28T22:09:18.337 回答
1

我认为正如tommieb75建议的那样,适当的解析器是处理这个问题的方法。

我建议查看ANTLR,因为它支持就地重写令牌缓冲区,我认为这可以最大限度地减少您为保留空白等所做的工作 - 请参阅The Definitive ANTLR reference的第 9.7 章。

于 2010-01-28T22:24:38.137 回答
1

如果要解析的样式集相对有限,那么编写一个 Visual Studio 宏(用于在 IDE 中使用)或一个独立的应用程序(仅用于处理源代码“离线”)将相当简单,它将搜索文件评论,然后使用某些标题或标签将它们重新格式化为新样式以将它们分开。

一个可能对您有所帮助的捷径是使用我的AtomineerUtils Pro 文档插件。它可以一次找到并转换源文件中的所有注释。开箱即用,它解析 XML 文档、Doxygen、JavaDoc 和 Qt 格式(或任何足够接近它们的格式),然后可以以任何这些格式输出注释。它还可以配置为转换不兼容的遗留注释。有几个选项可以帮助转换,但最强大的调用 Visual Studio 宏在解析之前使用注释文本,允许您应用一些字符串处理将遗留注释转换为 AtomineerUtils 可以随后读取的格式(网站上提供了最常用的遗留样式之一的示例宏,所以只要它适合计算机解析,修改它以适应您的旧格式通常非常简单)。

转换后的文本不需要特别整洁 - 一旦 AtomineerUtils 可以提取文档条目,它会为您清理注释 - 它可以选择自动应用自动换行、一致的元素顺序和间距等,并确保注释准确描述代码元素它记录(其条目匹配参数、类型参数、抛出的异常等),然后以其配置的格式输出替换注释。这可以节省您在转换宏中做大量工作以使事情变得整洁 - 一旦您完成转换,您可以继续使用插件来节省记录代码的时间,并确保所有新注释继续以相同的样式。

于 2010-01-29T19:08:57.747 回答