ENTRY

目的

プロシージャへの代替エントリ ポイントを定義します。

構文

name:ENTRY[(parameter,…)][RETURNS(returns-descriptor)][EXTERNAL|INTERNAL];

パラメーター

name
エントリ ポイントを識別します。
parameter
このエントリ ポイントでプロシージャに必要なパラメーターを表します。

説明

ENTRY 文が外部プロシージャに含まれている場合、name の範囲は外部になります。ENTRY 文が内部プロシージャに含まれている場合、name の範囲は内部になります。

RETURNS オプションは、関数参照によって呼び出されるエントリ ポイントに必要であり、返される関数値のデータ型属性を指定します。RETURNS オプションは、CALL 文によって呼び出されるエントリ ポイント プロシージャでは無効になります。

COBOL NOMAP [map-list] オプション

FORTRAN NOMAPIN [map-list] オプション

TASK NOMAPOUT [map-list] オプション

NOEXECOPS オプション

OPTION(BYTEADDR) オプションは、ビット境界上に割り当てられた項目についてもバイト アドレスが確実に渡されるようにするために使用できます。このオプションが指定されていない場合、Open PL/I では、非整列ビット文字列のビット アドレスを渡します。このオプションが指定されている場合、Open PL/I では、非整列ビット文字列の先頭バイトのアドレスだけを渡します。

EXTERNAL または INTERNAL は、一方しか指定できず、トップレベルのプロシージャ、つまり、他のプロシージャの範囲内に含まれていないプロシージャで指定する必要があります。EXTERNAL が指定されている場合、そのプロシージャは、コンパイルされている現在のファイルの外部となり、他の個別にコンパイルされたプロシージャから呼び出すことができます。これはデフォルトの設定です。INTERNAL が指定されている場合、そのプロシージャは、現在のコンパイル内にある他のプロシージャからのみ呼び出すことができます。その名前はこのファイル外では使用できません。

詳細については、「データ型」の章の「エントリ データ」セクションおよび「宣言と属性」の章の「ENTRY」セクションを参照してください。

FILE_MANAGER: PROCEDURE;
DECLARE 1 FILE_IOCB BASED (IOCB_PTR),
      .
      .
      .
OPEN: ENTRY (IOCB_PTR, FILE_PTR, OPEN_MODE);
      .
      .
      .
RETURN;
CLOSE: ENTRY(IOCB_PTR);
      .
      .
      .
RETURN;
READ_RECORD: ENTRY (IOCB_PTR, BUFFER_PTR, READ_COUNT);
.
.
.
END;

FILE_MANAGER は、次の 3 種類の呼び出しを処理するように設計された単一のプロシージャです。

  • ファイルを開くための呼び出し
  • ファイルからレコードを読み取るための呼び出し
  • ファイルを閉じるための呼び出し

呼び出しの種類ごとに個別のエントリが作成され、それぞれに独自のパラメーターがあります。

制約事項

ENTRY 文は、BEGIN ブロック、ON-units、または DO グループ (単純な DO を除く) では使用できません。