新手程序员求助,关于如何提取.cpp 内的代码和注释。

32 天前
 sin41018

我试图在 C++项目的 README 内写明项目特性。 实际上,我只需要把.cpp 文件内的注释搬运到 README 内,就几乎可以解决问题。

但我找不到(或者不知道)提取注释的工具。

具体来说,我希望能从如下的代码:

/*
	指出函数特性的注释
*/
int process(const char* str)
{
	xxxxxxx
    //只有当满足某个条件,才能为真
    if( func(A) == true )
    {
    	xxxxxxx
    }
}

提取出这样的信息:

/*
	指出函数特性的注释
*/
int process(const char* str)

//只有当满足某个条件,才能为真
if( func(A) == true )

我找不到现成的工具,因此只能自己写了一个小工具,勉强满足了自己的需求。

但我仍然好奇: 有无更简单直接的方法提取出.cpp 文件中的注释,以便于 README 的撰写呢?

我的工作环境是 unix + vscode (有时候是 vim )

937 次点击
所在节点    程序员
8 条回复
wnpllrzodiac
32 天前
doxygen
有现成的轮子。
从代码生成帮助文档的。可以看看。
有空交流哈。我没用过,看别人用过。
yolee599
32 天前
楼上正解,doxygen 自动提取注释生成文档
bfdh
32 天前
doxygen +1
guyeu
32 天前
doxygen 确实正解,楼主想 diy 的话也可以考虑直接用 `clang++ -ast-dump=json` 这样的方式把语法树导出成结构化的文本,然后自己处理。
iOCZS
31 天前
文档生成工具能处理代码内部的注释吗?
jamesdd
31 天前
lex + yacc ?
sin41018
27 天前
谢谢各位的解答,doxygen 确实是好用且直接的工具。
我的小工具是一个 150 行代码的纯文本处理工具,由于不涉及到编译器组件,无论我怎么设置解析规则,这个工具实在是效果有限。
我个人得出了如下的结论:
1.doxygen 是第一选择。
2.如果要自己 DIY ,应当从编译器组件入手。纯文本分析效果非常有限,总有一些场合不适用。
sin41018
27 天前
@iOCZS 似乎不能。
目前的解析工具很少涉及到代码内部(即“代码块”内)的注释提取。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1090968

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX