我知道之前已经问过这个问题(例如:见Remove comments from C/C++ code),但我没有找到任何令人满意的结果。
我正在解析一组首先必须规范化的复杂C / C ++代码,其中包括从输入源代码中删除注释。
我尝试过的所有退役工具在某种程度上都失败了,其中包括:
注意:我也试过“gcc -fpreprocessed -E”,但它不会产生完美的结果;输出有一些奇怪的宏注释,用于保持某些代码行的粘性。
为了说明特定工具(cloc)的问题,从this header file删除注释也会导致删除非注释,例如该文件开头的所有包含。
那就是说,有没有可靠的删除注释工具,可用于在异常复杂的代码中删除注释?
非常感谢。
答案 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,/*
至*/
,如果您愿意,可以删除几个正则表达式...
对于单行注释,您可以使用:\/\/(.*)
对于多行评论,请执行以下操作:\/\*(.*)\*\/