引き続き静的解析ツールの指摘を自動で対処するスクリプトを考える。
今回はswitch
のdefault
が処理なし(;
のみ)の場合はコメントで置き換えるスクリプトを作成する。
処理がないdefaultケースの";"にマッチさせる
下記の正規表現でマッチできる。後読み肯定を使ってdefault:
の後の;
にマッチさせる。
(?<=default\s*:\s*);
マッチした";"をコメントで置換する
regex.sub
を使って置換すればOK。今回はシンプルに解決できた!
import regex
with open("test.c", "r", encoding="utf-8") as file_obj:
codetext = file_obj.read()
ret = regex.sub(r"(?<=default\s*:\s*);", "/* 処理なし */", codetext, flags=regex.DOTALL)
print(ret)
まとめ
静的解析ツールの「default
に処理がないよ!」という指摘はコメントを追加することで回避できるっぽい。(結局、コメントしかないなら処理がないことに変わりないのでは...?と思うが、まぁ指摘が出なくなるのであれば良しとしよう)