XREF

コンパイラで相互参照リストが生成されるようにします。

構文:

>>-.---.-.----.--XREF----------------------><
   +-/-+ +-NO-+

パラメーター:

なし

プロパティ:

デフォルト: NOXREF
段階: 構文チェック
$SET: 最初の行

依存関係:

XREF を指定すると、RESEQ がすぐに設定されます。

NOXREF を指定すると、最後に NOLIST に設定されます。

説明:

この指令は、LIST 指令が指定されていない場合は無効となります。

相互参照リストを生成するには、ディスク上にコンパイラのワークスペースが追加で必要になります。必要なスペースは、データ項目と手続き名の数、およびこれらが参照される回数によって異なります。

UNIX の場合に、相互参照リストにメッセージ「*End of cross reference listing (*相互参照リストの終わり)」を表示するには、詳細モードを指定するコンパイラ オプション、-v も指定する必要があります。

XREF 指令が指定されると、生成された .lst ファイルの最後に次の情報が追加されます。

  • データ項目の名前
  • データ項目のタイプ
  • データ項目が定義された行番号 (n# の形式で表示)
  • データ項目が更新された行番号 (n* の形式で表示)
  • データ項目がテストされた行番号 (n? の形式で表示)
  • データ項目が相互参照リストに出現した回数 ((X n) の形式で表示)
  • 手続き名
  • 手続きのタイプ

例:

簡単なプログラムの .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

相互参照の情報で、次のことが確認できます。数値 DISPLAY タイプのデータ項目 a が 1 つあります。このデータ項目は、行 2 で定義され、行 6 で更新されて、行 7 でテストされています。行の最後にある (X 3) は、このデータ項目が相互参照リストに出現した回数を示しています。手続き名 main も 1 回だけ参照された節としてリストに表示されています。