if 文のみの対応とする。
戦略
こんなプログラムがあった時に、
if ( a > 2 ) {
b = 3;
if ( c > 4 ) {
d = 5;
} else {
e = 6;
}
} else {
f = 7;
}
IDは"control:"<ファイルパス>:<条件式のある行番号>とかでよかろう。
control_varsとcontrol_rangeはこの時点では決定できないので、
別変数に貯めておいてif文の終了時にテーブルに加えよう。
reflexion に与える入力
True または False にしたい条件式をJSONで指定する。
{
"controls": [
{
// 指定するif文のある場所
"file": "<ファイルパス>",
"line": "<行番号>",
// 条件式の値
"value": "trueまたはfalse"
}
]
}
出力する制御テーブルの仕様
| カラム名 |
説明 |
| id |
ifブロックに一意に割り当てられるID |
| file |
ifブロックのあるファイル名 |
| control_range |
ifブロックの範囲。ファイル名と合わせてifキーワードのある行、elseキーワードのある行、if文の終了行を:....で記述する。elseが無い場合は:..とする |
| control_vars |
if条件式の中で使われている変数のID |
if 文のみの対応とする。
戦略
こんなプログラムがあった時に、
IDは
"control:"<ファイルパス>:<条件式のある行番号>とかでよかろう。control_varsとcontrol_rangeはこの時点では決定できないので、
別変数に貯めておいてif文の終了時にテーブルに加えよう。
reflexion に与える入力
True または False にしたい条件式をJSONで指定する。
{ "controls": [ { // 指定するif文のある場所 "file": "<ファイルパス>", "line": "<行番号>", // 条件式の値 "value": "trueまたはfalse" } ] }出力する制御テーブルの仕様