シーケンス識別子階層構造を作成し、各シーケンス識別子の内容の記述と
下位シーケンスの設定、変数識別子の設定でパターンが生成されます。
下図は、ファイル識別子$File[1]の下位にシーケンス識別子が作成されたものです。
(1) パターン構成
パターン構成は、$Seq[1] の下位に$Seq{3],
$Seq[3]の下位に$Seq[5]、$Seq[1]の次に
$Seq[2], $Seq[2]の次に$Seq[4]が設定されている構成です。
同一階層のシーケンスは、上下に移動することができるので、パターン構成を変える
ことが出来ます。
(2) パターン解析
パターン解析の順序は、
1.$Seq[1] (無条件で解析)
2.$Seq[3]
(ただし、$Seq[1]の内容に$Seq[3]が設定されてい場合に解析)
3.$Seq[5] (ただし、$Seq[3]の内容に$Seq[5]が設定されてい場合に解析)
4.$Seq[2] (無条件で解析)
5.$Seq[4] (無条件で解析)
1. $Seq[1]の解析
変数識別子の$Var[28]は、ループ(繰り返し)なので、インスタンスの$Var[28]の
個数分繰り返します。
$Var[28]は、Lクラスの要素名が--任意--の変数です。
$Seq[3]があるので、ここに$Seq[3]の内容が展開されます。
内容に$Seq[3]がない場合は、$Seq[3]は展開されません。
2. $Seq[3]の解析
変数識別子にループはないので、$Seq[3]の内容は、1回だけ処理され、
上位$Seq[1]の内容の$Seq[3]に展開されます。
$Var[39]はSクラスで要素名は固定なので、ループ(繰り返し)はありません。
$Seq[5]があるので、ここに$Seq[5]の内容が展開されます。
内容に$Seq[5]がない場合は、$Seq[5]は展開されません。
3. $Seq[5]の解析
変数識別子の$Var[57],$Var[58],$Var[59]は、ループ(繰り返し)なので、
インスタンスの$Var[57],$Var[58],$Var[59]の個数分繰り返します。
$Var[57],$Var[58],$Var[59]は、状態遷移の3つのキーワードです。
4. $Seq[2]の解析
$Seq[2]は、下位シーケンスと変数識別子がないので、内容を$Seq[1]で展開された
内容の後に、追加されます。
5. $Seq[4]の解析
$Seq[4]は、下位シーケンスと変数識別子がないので、内容を$Seq[2]で展開された
内容の後に、追加されます。
解析した結果のチェックは、「9.2.出力チェック」を参照してください。