カスタム ルールのチェック (-custom-rules)
識別子の命名規則への準拠
説明
識別子の命名規則を定義し、それに対してコードをチェックします。
オプションの設定
以下のいずれかの方法を使用してオプションを設定します。
Polyspace® ユーザー インターフェイス (デスクトップ製品のみ): プロジェクト構成で [コーディング規約およびコード メトリクス] ノードを選択してから、このオプションを選択します。
Polyspace Platform ユーザー インターフェイス (デスクトップ製品のみ): このオプションは、プロジェクト構成には存在していません。チェッカーを有効にするには、オプション
[カスタム チェッカー ファイルを使用]と[チェッカー アクティベーション ファイル] (-checkers-activation-file)を使用します。コマンド ラインとオプション ファイル: オプション
-custom-rulesを使用します。コマンド ライン情報を参照してください。
このオプションを使用する理由
このオプションを使用して、識別子が命名規則に従うようにします。命名規則を使用すると、名前から識別子の性質を容易に判断できるようになります。たとえば、構造体の命名規則を定義すると、識別子が構造体変数を表すかどうかを容易に示すことができます。
解析後、[解析結果のリスト] ペインに命名規則違反がリストされます。[ソース] ペインでは、Polyspace はすべての違反に対し、
シンボルを関連するキーワードまたは識別子に割り当てます。
命名規則を適用可能なタイプの完全なリストについては、カスタム コーディング ルールを参照してください。
設定
オンPolyspace はコード内の識別子を、定義したテキスト パターンと照合します。テキスト パターンをカスタム コーディング ルール ファイルで定義します。コーディング ルール ファイルは次の方法で作成します。
カスタム ルール ウィザードを使用します。
をクリックします。[チェッカーの選択] ウィンドウが開きます。左側のペインで [カスタム] ノードが強調表示されます。右側のペインのノードを展開し、チェックするカスタム ルールを選択します。
チェックするすべてのカスタム ルールに対して以下を実行します。
[オン]
を選択します。[規則] 列にルール違反があった場合に表示するエラー メッセージを入力します。
たとえば、ルール 4.3 All struct fields must follow the specified pattern に「
All struct fields must begin with s_」と入力します。このメッセージは次のような場合に [結果の詳細] ペインに表示されます。[パターン] を
s_[A-Za-z0-9_]+と指定する。コードの構造体フィールドが
s_で始まっていない。
[パターン] 列にテキスト パターンを入力します。
たとえば、ルール 4.3 All struct fields must follow the specified pattern に「
s_[A-Za-z0-9_]+」と入力します。struct フィールドがs_で始まっていない場合、Polyspace によりルール 4.3 の違反が報告されます。パターンは Perl regex を使用して定義できます。たとえば、以下の式を使用できます。
式 意味 . 改行以外の任意の単一の文字と一致 [a-z0-9]a-zのセットにある任意の単一の文字か0-9のセットにある任意の単一の数字と一致[^a-e]a-eのセットにない任意の単一の文字と一致\d任意の単一の数字と一致 \w任意の単一の英数字か _と一致x?xの 0 回または 1 回の出現と一致x*xの 0 回以上の出現と一致x+xの 1 回以上の出現と一致頻度の高いパターンには、以下の regex を使用できます。
(?!__)[a-z0-9_]+(?!__)は、2 つのアンダースコアで開始および終了しないテキスト パターンに一致します。int __text; //Does not match int _text_; //Matches
[a-z0-9_]+_(u8|u16|u32|s8|s16|s32)は、特定の接尾辞で終了するテキスト パターンに一致します。int _text_; //Does not match int _text_s16; //Matches int _text_s33; // Does not match
[a-z0-9_]+_(u8|u16|u32|s8|s16|s32)(_b3|_b8)?は、特定の接尾辞およびオプションの 2 番目の接尾辞で終了するテキスト パターンに一致します。int _text_s16; //Matches int _text_s16_b8; //Matches
Polyspace に対して、特定のパターンをチェックしたときにトリビアルなケースを報告しないように指示する場合は、そのトリビアルなケースのパターンを正規表現に追加します。
たとえばルール 8.5 の "すべての浮動小数点定数は、指定されたパターンに従わなければなりません" の場合は、すべての浮動小数点定数の末尾に "f" または "F" を付加する必要がある、というパターンを指定することができます。トリビアルなケース 0.0 を無視するには、次のような正規表現を使用します。
Polyspace は、0.0 以外の指定されたパターンに対してこのルールの違反を報告します。(.*(f|F))|(^0\.0$)
float arr[] = { 0.0, // No violation reported 10.05, // Violation reported 4.00f }; // No violation reportedregex の完全なリストは、Perl のドキュメンテーションを参照してください。
既存のコーディング ルール ファイルを使用または更新するには、
をクリックして [チェッカーの選択] ウィンドウを開き、次のいずれかを行います。 所定のフィールドにファイルへの絶対パスを入力
[参照] をクリックして、ファイルの場所に移動
オフ (既定の設定)Polyspace は、カスタムの命名規則に対しコードをチェックしません。
コマンド ライン情報
コマンド ラインでコマンド -custom-rules を使用して、事前に定義された命名規則の違反をチェックします。
パラメーター: -custom-rules |
値: from-file ([ファイルごとにチェッカーを設定] (-checkers-selection-file) を使用してファイルを指定) |
| 既定値: オフ |
例 (Bug Finder): polyspace-bug-finder -sources |
例 (Bug Finder Server): polyspace-bug-finder-server -sources |
または、アクティベーション XML ファイル内でルールを有効にします。チェッカー アクティベーション ファイル (-checkers-activation-file) を参照してください。

