Skip to content

s-tanoue/AnalysisCommentsUsingGrep

Repository files navigation

動作に必要なもの

GNU Grep, bashの動く環境(bush on ubuntu on Windows)
bush on ubuntu on Windows だとすぐに動く.

git clone https://github.com/SatoshiTanoue/AnalysisCommentsUsingGrep.git
$ cd AnalysisCommentsUsingGrep

grepによる特定のコメントを検出

pattern.txtに文字列検出のパターンを記述する.

単体ファイルに対して実行

$ sh 755 check.sh #一度だけ
$ sh check.sh code_comment_sample.cpp #ファイルパス.
4:    // TODO 内部処理を記述する
'TODO'がマッチしました
8:     * 内部処理は将来本実装する。
'将来'がマッチしました
19:    for (int i = 0; i < 10; i++) { // ループ )
'ループ'がマッチしました
14:    // 2016/11/08 修正
'(?=.*\d{2,4}[.\-/年]\d{1,2}[.\-/月]\d{1,2}日{0,1})(?=.*修正)'がマッチしました
1://未定である.
'^(?!.*未定義).*(?=未定).*$'がマッチしました
27:    // elseのパターンはなくて大丈夫?
'?'がマッチしました

実行結果はresultディレクトリの中に保存されます.

ディレクトリを指定して実行

$sh multiple_check.sh ../../../testcode #ディレクトリ名

このとき,ディレクトリ名を../../../testcode/としないでください.

注意

・空行があると,全てのパターンにマッチしてしまい全てを表示してしまう.
・pattern.txt,検証対象のソースコードがUTF-8でないと動かない.convert.shを動かせば文字コードを変更できる.
・pattern.txtでは,\dといったメタ文字を使う場合には\\dとする必要がある.
・pattern.txtのパターンファイルを別のパターンに変更するには,check.shを開いて,パターンファイルの名前を変更する.
・ファイルによっては,先読みの正規表現が動かないかもしれない.

grepの問題

?は,三項演算子として使われる.そのため,?を含むコードの場合は,適合率が下がる.   グループ分けできない? 何をする正規表現かコメントを記述できない.

ソースコードをSJISからUTF8に変更する

$ sh converter.sh ディレクトリ名 

上記のシェルスクリプトを実行すると,指定されたディレクトリの中にあるcppファイル,hファイルをutf-8にして, UTF8の中に-uを付けて出力する.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published