找到c ++项目中有多少个

时间:2013-03-07 16:56:55

标签: c++ regex grep goto

我正在尝试查看c ++项目中有多少goto个指令。现在,我使用与grep搜索"goto "的简单匹配:

grep -r --exclude-dir "third_party" --include "*.cpp" --include "*.h" --include "*.C" --include "*.cxx" --include "*.hcc" --include "*.c" --include "*.cc" "goto " .

我得到了很多假阳性,特别是在评论中:

// Perform stack overflow check if this goto needs it before jumping.

或文字内部:

stream->Add(" goto (");

避免它们的最简单方法是什么?我不需要一个完美的解决方案。

3 个答案:

答案 0 :(得分:2)

您可以考虑使用静态分析工具,例如cppcheck这样做。仅使用正则表达式处理所有可能的情况可能会变得不适用。

答案 1 :(得分:2)

将正则表达式更改为:'goto[ \t]+[_A-Za-z0-9]+[ \t]*;'这将在同一行搜索单词goto,其目标标签和分号。

答案 2 :(得分:0)

我建议使用awk或其他可以使用多个正则表达式或编写脚本的工具。

更困难的案例是:

/*****
 * Goto system failure if this point is reached.
 */

在C风格的评论中含义。