是否有可靠的工具来删除ASM / C / C ++代码中的注释?

时间:2013-08-12 22:09:34

标签: c++ c linux refactoring

我知道之前已经问过这个问题(例如:见Remove comments from C/C++ code),但我没有找到任何令人满意的结果。

我正在解析一组首先必须规范化的复杂C / C ++代码,其中包括从输入源代码中删除注释。

我尝试过的所有退役工具在某种程度上都失败了,其中包括:

  • decomment
  • stripcmt
  • CLOC

注意:我也试过“gcc -fpreprocessed -E”,但它不会产生完美的结果;输出有一些奇怪的宏注释,用于保持某些代码行的粘性。

为了说明特定工具(cloc)的问题,从this header file删除注释也会导致删除非注释,例如该文件开头的所有包含。

那就是说,有没有可靠的删除注释工具,可用于在异常复杂的代码中删除注释?

非常感谢。

2 个答案:

答案 0 :(得分:2)

#!/bin/bash

if [[ "$#" != 1 ]] ; then
  echo "Usage: stripcomments input-file" > /dev/stderr
  exit
fi

gcc -fpreprocessed -dD -E -P "$1" 2> /dev/null

答案 1 :(得分:-1)

您可以删除//之后的所有内容,直至EOL,/**/,如果您愿意,可以删除几个正则表达式...

对于单行注释,您可以使用:\/\/(.*)

对于多行评论,请执行以下操作:\/\*(.*)\*\/