コメントをキャプチャせずにソースコードを把握する方法

コメントをキャプチャせずにソースコードを把握する方法

私は時々コメントのために間違った肯定を得ることなくソースコードをgrepする方法を検索しました。たとえば、この.cソースコードからfooを検索すると、次のようになります。

/* 
 * foo has changed [...] and is now a 2-parameters function
 */
// foo(24)
foo(42, 28);

無邪気な人々はgrep3回の発生に気づくでしょうが、私は1回だけ欲しいです。私は見たこの方法StackOverflowでこれを行いましたが、私の要件には合いません。そのプラットフォームではPHPを使用できません。私もそれに気づいた。この方法一行の説明ですが、私の問題の一部だけを解決します。

古典的なスクリプトツール(awk、sed、bash、grepなど)を使用する必要があります。早く何千ものファイルにもかかわらず。

さて、ソースコードをgrepできるかどうか、そしてソースコードだけをgrepできるかどうか知っていますか?

ベストアンサー1

grepはプレーンテキストで動作し、Cプログラムの基本的な構文に関する知識はありません。したがって、内部レビューを検索したくない場合は、次のオプションがあります。

  1. 検索する前にCコメントを削除するには、次のコマンドを使用してこれを実行できます。gcc -fpreprocessed -dD -E yourfile.c詳細については参照https://stackoverflow.com/questions/2394017/remove-comments-from-cc-code

  2. 詳細については、可能なすべてのC / C ++アノテーションを処理するために見つけたものなど、いくつかの反応スクリプト(//またはで始まる行をスキップして動作する/*)を作成/使用してください(再度、いくつかのひどいテストケースについては前のリンク参照してください)。これはまだ誤検出を引き起こす可能性がありますが、前処理を実行する必要はありません。

  3. 高度なツールを使用してコードで「意味検索」を実行します。 「coccigrep」が見つかりました。http://home.regit.org/software/coccigrep/これらのツールを使用すると、特定の言語ステートメント(たとえば、特定の名前を持つ構造体の更新)を検索でき、もちろんコメントも削除されます。

おすすめ記事