コンパイラが相互参照表を作成する。
>>-.---.-.----.--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度だけ参照される節として、 相互参照表に表示されている。