参照が渡す基本項目

仮パラメーターまたはそれに対応する引数がオブジェクト参照である場合、対応する引数または仮パラメーターは、以下の規則に従うオブジェクト参照にする必要がある。

  1. 引数または仮パラメーターが非限定オブジェクト参照である場合、対応する仮パラメーターまたは引数は非限定オブジェクト参照とする。
  2. 引数または仮パラメーターをインターフェイス名で記述する場合、対応する仮パラメーターまたは引数は、同じインターフェイス名で記述する。
  3. 引数または仮パラメーターをクラス名で記述する場合、対応する仮パラメーターまたは引数は、同じクラス名で記述する。さらに、FACTORY および ONLY を同様に指定する。
  4. 仮パラメーターを ACTIVE-CLASS 指定で記述する場合、以下の条件のいずれかに該当する必要がある。
    1. 引数が ACTIVE-CLASS 指定で記述されたオブジェクト参照であり、FACTORY 指定の有無が仮パラメーターと同じである。さらに、起動されるメソッドが、定義済みのオブジェクト参照 SELF または SUPER、あるいは ACTIVE-CLASS 指定で記述されたオブジェクト参照で呼び出される。
    2. 引数がクラス名および ONLY 指定で記述されたオブジェクト参照であり、FACTORY 指定の有無が仮パラメーターと同じである。さらに、起動されるメソッドが、そのクラス名で呼び出されるか、そのクラス名および ONLY 指定で記述されたオブジェクト参照で呼び出される。

引数または仮パラメーターの字類がポインターである場合、対応する仮パラメーターまたは引数の字類もポインターとし、対応する項目の項類は同じにする必要がある。どちらかのポインターが制限付きである場合、両方とも制限付きで同じ種類のポインターにする。特殊レジスタ ADDRESS の字類はポインターで、項類はデータ ポインターと見なされる。

仮パラメーターまたは引数のどちらも字類がオブジェクトまたはポインターでない場合の適合規則は次のとおり。

  1. 起動先の要素がプログラムであり、そのプログラムに対して起動元の要素のリポジトリ段落にプログラム指定子がなく、CALL 文で NEST が指定されていない場合、仮パラメーターは、対応する引数と同じ長さとする。
  2. 起動先の要素が以下のいずれかである場合、
    • 起動元の要素のリポジトリ段落にプログラム指定子があるプログラム
    • NEST を指定した CALL 文で呼び出されたプログラム
    • メソッド
    • 関数

    仮パラメーターおよび引数の定義に、同じ PICTURE、USAGE、SIGN、JUSTIFIED、および BLANK の句を含める。ただし、次の場合は例外とする。

    1. 対応する通貨文字列が同じ場合に限り、通貨記号は一致する。
    2. 終止符 PICTURE 記号が一致する。ただし、起動元および起動先の両方の実行時要素に対して DECIMAL-POINT IS COMMA 句が有効または無効である場合に限る。カンマ PICTURE 記号が一致する。ただし、起動元および起動先の両方の実行時要素に対して DECIMAL-POINT IS COMMA 句が有効または無効である場合に限る。

    さらに、次の規則が適用される。

    1. 仮パラメーターを ANY LENGTH 句で記述した場合、その長さは対応する引数の長さに一致すると見なされる。
    2. 引数を ANY LENGTH 句で記述した場合、対応する仮パラメーターは ANY LENGTH 句で記述する。