RPGソースの中で CASxx、DOxx、IFxx や SELECT を階層的に多用している場合、
どれが対応する ENDxx であるかを調べるのは手間がかかる。
コンパイル・リストを追っていくのも大変である。
このようなときに SEU で階層構造を調べる方法をご紹介しよう。
SEU で RPGソースをオープンして次のようなソースであったとする。
0203.00 C A001 IFGT B001 0204.00 C A002 IFGT B001 0205.00 C Z-ADD A001 BB 0206.00 C Z-ADD A002 BB 0207.00 C Z-ADD A003 BB 0208.00 C END 0209.00 C Z-ADD A004 BB 0210.00 C END
最下位の 204.00
から 208.00
の行番号の位置に文字’XX’ を打鍵して実行キーを押すと
0203.00 C A001 IFGT B001 - - - - ------------- 5 除外データ・レコード ------------------- 0209.00 C Z-ADD A004 BB 0210.00 C END
のような表示となる。
XX - XX
はプロック単位の除外(非表示)を行うコマンドである。
SEU上で見えなくなったからといって削除された訳ではなく、単に非表示となっているだけである。
上記の例では -- 5 除外データ・レコード --
となっているので、5行のレコードが
除外されていることがわかる。
このように XX – XX を繰り返していくと対応する ENDxx を見つけることができる。
なお、除外を元に戻すには -- 5 除外データ・レコード --
の行に SF5 というように
元に戻す行数とともに指定する必要がある。
構造化プログラムと称してあまりIF-END などの構造を深くしてしまうと後々でのソースの解析が大変となる。
この方法は他人が作成したソースなどの解析にも役立つはずである。