Checker Studio を使用して目的の KAST ノードを検索する
単純なテストケースを作成したら、次のステップは Checker Studio を開くことです。
Checker Studio には、最新の IDE と同様に、KAST パターンのインテリジェントなコード補完と構文強調が含まれています。Checker Studio は、以下の機能を備えています。
-
AST ノード、属性、子要素、組み込み関数、演算子、リテラルに関するコンテキストアウェアなコード提案。これらは、Ctrl+Space キーを押すことで表示することができます。オートコンプリートは式の途中では使用できず、式の最後でのみ使用できることに注意してください。
-
構文強調
-
C、C++、C#、Java などの複数の言語のサポート
-
日本語対応
Checker Studio を使用するには、以下のようにします。
- デスクトップで Checker Studio アイコンをダブルクリックするか、コマンドラインで次のように入力します。
kwstudio
- Checker Studio の [ソースコード] セクションにテストケースの抜粋を貼り付けて、KAST ノード名、コード例および階層情報を表示します。これらは、チェッカーで特定する指摘へのパスを追跡する KAST 式の構成要素になります。言語ボタンをウィンドウの右上隅に忘れずに設定してください。
(オプション): [デフォルト] ドロップダウンから C++ 規格を選択します。Checker Studio は、C++03 (デフォルト)、C++98、および C++11 またはそれ以降をサポートしています。
- [ソースコード] ペインで、抜粋内の if をクリックします。
AST で IfStmt ノードがハイライトされます。これはKAST 式内の目的の最初のノードです。
- ツリーノードを選択して F1 キーを押すか、[表示] > [コンテキストヘルプ] ウィンドウをクリックし、式のコンテキスト依存ヘルプを表示します。[ソースコード] ペインの下にコンテキスト依存ヘルプが表示され、スーパータイプやサブタイプ、使用できる関数などのノード情報が提供されます(画像の鮮明度の理由により、このチュートリアルの図には [コンテキストヘルプ] パネルは表示されません)。
- AST で IfStmt を拡張します。
IfStmt には子 Cond、Then、および Else があります。このチェッカーは if ステートメントの条件式を処理します。
- Cond: :AnyExpr ノードを拡張します。
Cond には 1 つの子 BinaryExpr があり、IfStmt にはバイナリ式 (BinaryExpr) の条件句 (Cond) が含まれることを示します。
- [ソースコード] ペインで '=' をクリックします。
これにより BinaryExpr がハイライトされ、属性が左下の属性テーブルに表示されます。
属性が表示されない場合は、
[属性を表示] アイコンをクリックします。現在選択されているノードの属性のみが表示されます。
- Value (KTC_OPCODE_ASSIGN)を書き留めます。
AST ノードが揃ったら、KAST 式のドラフトを作成できます。