コンパイラが相互参照表を作成する。
>>-.---.-.----.--XREF---------------------->< +-/-+ +-NO-+
なし
省略値: | NOXREF |
段階: | 構文チェック |
$SET: | 初期 |
XREFは、RESEQを設定する。
NOLISTにより、NOXREFに設定される。
LIST指令が指定されていないと、本指令は実行されない。
相互参照表を作成するには、コンパイラディスク上に追加の作業領域を必要とする。必要な記憶域は、データ項目数と手続き名数およびデータ項目および手続き名が 参照される回数により異なる。
XREF指令が指定されると、生成される( .lst)ファイルの終わりに追加情報が付加される。
簡単なプログラム用の( .LST)ファイルから抽出したものを以下に示す。
1 working-storage section. 2 01 a pic 9(2). 3 4 procedure division. 5 main section. 6 move 1 to a 7 if a = 1 display "HELLO" end-if 8 stop run. ... * A Numeric DISPLAY * 2# 6* 7? (X 3) * * 1 data-names * * MAIN Section * 5# (X 1) * * * 1 procedure-names * End of cross reference listing
リストファイルからの相互参照情報では、1個のデータ項目Aがあり、種類は数字表示で行2に定義され行6で更新、行7で試験されている。データ項目は相互 参照表に3度現れている。(X3)は、行の最後で相互参照リストにデータ項目が現れる回数を参照する。手続き名Mainも、1度だけ参照される節として、 相互参照表に表示されている。