部分参照

部分参照とは、一意名、左端の位置、および長さを指定することによって一意のデータ項目を定義することである。

一般形式

一意名-1 ( 左端位置 : [長さ] )

構文規則

  1. 一意名-1 は、次の項目のいずれかのデータ項目を参照する。
    • 字類が英数字または各国語である基本項目
    • 用途が DISPLAY である数字項目
    • 集団項目
    注:GROUP-USAGE BIT 句で定義された個々のブール データ項目またはグループ項目を一意名-1 にすることはできない。
  2. 左端位置と長さは算術式とする。
  3. 別途指定がない限り、字類が英数字または各国文字のデータ項目を参照する一意名が使える場所であればどこでも部分参照を使用できる。
  4. 一意名-1 には部分参照を含めることはできない。
  5. 一意名-1 が関数一意名である場合、英数字または各国文字の関数を参照する必要がある。

一般規則

  1. 左端位置は、一意名-1 が英数字または各国文字のデータ項目をそれぞれ参照する際の英数字または各国文字の位置を表す。
  2. 一意名-1 が参照するデータ項目の各位置には、左端から右端まで 1 つずつ繰り上げた序数が割り当てられる。左端位置には序数 1 が割り当てられる。一意名-1 のデータ記述項に SIGN IS SEPARATE 句が含まれていると、符号位置にそのデータ項目内の序数が割り当てられる。
  3. 一意名-1 が参照するデータ項目が明示的にまたは暗黙的に用途 DISPLAY として記述され、項類が数値、

    OSVSVSC2MF 外部浮動小数点数、

    数字編集、英字、または英数字編集のいずれかであるとき、部分参照の目的上、そのデータ項目は同じ大きさの英数字データ項目として再定義されたものとして操作される。

  4. 作用対象に対する部分参照は、次のように評価される。
    1. 作用対象に添字を指定した場合、添字が評価された直後に部分参照が評価される。作用対象に添字 ALL を指定した場合、暗黙指定されたそれぞれの表要素に部分参照が適用される。
    2. 作用対象に添字を指定していない場合、添字を指定していた場合に添字が評価される時点で部分参照が評価される。
    3. 関数参照内で部分参照を指定した場合、関数が評価された直後に部分参照が評価される。
    4. オブジェクト プロパティ参照内で部分参照を指定した場合、オブジェクト プロパティが評価された直後に部分参照が評価される。
  5. 部分参照は、一意名-1 が参照するデータ項目の部分集合である、一意のデータ項目を作成する。この一意のデータ項目は次のように定義される。
    1. 左端位置の評価により、一意名-1 が参照するデータ項目に関して、一意のデータ項目の左端の文字位置が得られる。左端文字位置の評価値は、一意名-1 が参照するデータ項目内の位置の数以下の、非ゼロの正数である必要がある。

      VSC2MF 浮動小数点数形式の式では、結果は丸められる。固定小数点数形式の式では、結果は切り捨てられる。

    2. 長さを評価した結果、作用対象で使用するデータ項目の文字サイズが得られる。長さの評価結果は、非ゼロの正数とする。左端位置および長さの合計値から 1 を差し引いた値は、一意名-1 が参照するデータ項目の文字数以下である必要がある。長さが指定されていない場合、一意のデータ項目は、一意名-1 が参照するデータ項目の左端位置文字から右端位置文字までとなる (左端および右端も含む)。

      VSC2MF 浮動小数点数形式の式では、結果は丸められる。固定小数点数形式の式では、結果は切り捨てられる。

      注:左端の位置および長さの評価が有効な値を生成することはチェックされない。これらの評価がこの規則で述べられた制限に適合しない場合、結果は未定義になり、他のデータ項目は破損する可能性がある。
  6. 一意のデータ項目は、JUSTIFIED 句のない基本データ項目と見なされる。一意のデータ項目は、以下を除き、一意名-1 が参照するデータ項目に対して定義されたものと同じ字類、項類、および用途を有する。
    • 項類が数字、数字編集、英数字編集

      OSVSVSC2MF および外部浮動小数点

      のものは、字類および項類が英数字とみなされる。

    • ISO2002MF 項類が各国文字編集のものは、字類および項類が各国文字とみなされる。
  7. OSVS OSVS コンパイラ指令を設定した場合は、条件式内で部分参照を使用できない (「条件式」トピックを参照)。