部分参照

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

一般形式

identifier-1 ( leftmost-position : [length] )

構文規則

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

一般規則

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

    OSVSVSC2MF 外部浮動小数点数、

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

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

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

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

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

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

      OSVSVSC2MF および外部浮動小数点

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

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