【问题标题】:How to extract code comments from a C file?如何从 C 文件中提取代码注释?
【发布时间】:2011-11-20 05:13:23
【问题描述】:

我有一个包含大量代码 cmets 的 C 文件,我如何提取这些 cmets?只想要 cmets,而不是 c 代码。有什么工具可以用来做这件事。例如 Doxygen?还是需要我自己构建解析器?如果需要,哪种语言更好?

提前致谢。

谢谢大家!! 我现在开始研究perl,以前从来没有用过这种语言,看起来很聪明~~ 有没有从包含xml的文件中提取xml的建议?

【问题讨论】:

  • 你对cmets有什么打算?您是否需要保留他们的上下文,例如命名空间/类/函数/行号等?您可以编写简单的正则表达式和 bash 脚本来废弃 cmets
  • 嗨,我不需要保留它们的上下文,cmets 中包含一些 xml,我想提取它们。有什么建议吗?谢谢
  • 还有一个来自cppblogpython script 允许提取所有cmets。用作python extractcomments.py foo.c。它会给你 foo_cmt.txt。它给出(至少对我而言)与下面mzet answer 中的 awk 脚本完全相同的结果。

标签: c parsing extract doxygen


【解决方案1】:

以下单行显示 main.c 文件中所有注释的行(或包含 cmets 的行):

cat main.c | awk '/\/\// {print $0}; /\/\*/ {blk=1}; {if(blk) print $0}; /\*\// {blk=0}'

【讨论】:

  • 而且做得很差。 printf("//hi"); 这行不是评论。
【解决方案2】:

我建议您使用脚本语言,例如 Perl,并解析文件以寻找所有可能性:

 - "//" for single-line comments.
 - "/*" and "*/" for multi-line comments.
 - doxygen ones "///", "/**", "/*!"

【讨论】:

  • 实际上,cpan 上似乎已经有一个 perl 模块。
  • 是的!!这就是我想要的!我现在开始研究perl,以前从来没有用过这种语言,看起来很聪明~~谢谢大家。是否有从包含 xml 的文件中提取 xml 的建议?
  • 没那么简单。 printf("//hi"); 不是评论。
猜你喜欢
  • 1970-01-01
  • 2016-04-03
  • 2011-08-21
  • 2010-10-20
  • 1970-01-01
  • 2011-12-24
  • 2021-12-11
  • 2011-04-14
  • 1970-01-01
相关资源
最近更新 更多