HLASM ソースの解釈

HLASM コピーブックを処理するために、File Manager は HLASM コンパイラーを呼び出します。次に、対応する DS または DC フィールドと一緒に見つかった DSECT ごとにレコード・レイアウト (またはセグメント・レイアウト) を生成します。File Manager は、DS および DC フィールドを、ここに示すように解釈します。

ブランク・フィールド名
DS または DC ステートメントにフィールド名がない場合は、それに名前「*」が割り当てられます。
複数オペランド
DS または DC ステートメントに複数のオペランドがある場合、フィールドはグループ・フィールドとして定義され、接尾部が「_On」(n はオペランドの相対番号) のオペランドごとに子エレメントが作成されます。
例:
REC_TYPE01 DSECT
FIELD1  DS    F,H,CL1
以下のように生成されます。
Ref Field Name                        Picture  Type Start    End Length
    ****  Top of data  ****
  1 1 REC_TYPE01                                AN      1      7      7
  2  2 FIELD1                         F,H,CL1   AN      1      7      7
  3   3 FIELD1_O1                               BI      1      4      4
  4   3 FIELD1_O2                               BI      5      6      2
  5   3 FIELD1_O3                               AN      7      7      1
    ****  End of data  ****
複数値
DS または DC オペランドに複数の値が割り当てられている場合は、接尾部が「_Vn」(n は値の相対番号) のオペランドごとに子エレメントと一緒にグループ・フィールドが定義されます。
例:
REC_TYPE01 DSECT
FIELD1  DS    F'1,2,3',H,CL1
以下のように生成されます。
Ref Field Name                   Picture       Type Start    End Length
    ****  Top of data  ****
  1 1 REC_TYPE01                                AN      1     15     15
  2  2 FIELD1                    F'1,2,3',H,CL1 AN      1     15     15
  3   3 FIELD1_O1                               AN      1     12     12
  4    4 FIELD1_O1_V1                           BI      1      4      4
  5    4 FIELD1_O1_V2                           BI      5      8      4
  6    4 FIELD1_O1_V3                           BI      9     12      4
  7   3 FIELD1_O2                               BI     13     14      2
  8   3 FIELD1_O3                               AN     15     15      1
    ****  End of data  ****
複写因数
DS または DC オペランドに 1 より大きい複写因数がある場合、結果のフィールドは、複写因数によって指定される回数だけ実行される単一次元フィールドとして扱われます。
例:
REC_TYPE01 DSECT
FIELD1  DS    5F
以下のように生成されます。
Ref Field Name                                Picture  Type Start    End Length
    ****  Top of data  ****
  1 1 REC_TYPE01                                        AN      1     20     20
  2  2 FIELD1(5)                              F         BI      1      4      4
    ****  End of data  ****
ビット長さ指定
DS または DC にビット長さ指定がある場合、それはフィールド・タイプとは関係なくビット・フィールドとして定義されます。
例:
REC_TYPE01 DSECT
FIELD1  DS    AL.5
以下のように生成されます。
Ref Field Name                                Picture  Type Start    End Length
    ****  Top of data  ****
  1 1 REC_TYPE01                                        AN      1      1      1
  2  2 FIELD1                                 AL.5      BT      1      1      1
    ****  End of data  ****
DSECT またはレイアウト長さ
レベル 1 フィールドは、どのフィールドについても必ず最大最終桁に設定されます。
再定義/範囲指定
拡張コピーブック選択を使用してテンプレートを作成する場合は、X 接頭部コマンドによって、COBOL REDEFINES または PL/I UNION ステートメントと同じ方法で、ORG フィールド名を解釈できます。