SYSADATA ファイルは順次バイナリー・ファイルです。 z/OS バッチ環境では、コンパイラーは SYSADATA DD ステートメントで指定されたファイルに SYSADATA レコードを書き込みます。このファイルは PDS のメンバーであってはなりません。 その他のすべてのシステムでは、コンパイラーは拡張子「adt」を持つファイルに書き込みます。
ファイル内のそれぞれのレコードには、ヘッダーが入っています。 この 8 バイトのヘッダーには、以下のフィールドがあり、これはそのファイル内のすべてのレコード で同じです。
ヘッダーには、レコードごとに変わる、以下のフィールドもあります。
可能なレコード・タイプは、図 105 に示すような、序数値 としてエンコードされています。
Define ordinal xin_Rect
(Xin_Rect_Msg value(50), /* Message record */
Xin_Rect_Fil value(57), /* File record */
Xin_Rect_Sum value(61), /* Summary record */
Xin_Rect_Src value(63), /* Source record */
Xin_Rect_Tok value(64), /* Token record */
Xin_Rect_Sym value(66), /* Symbol record */
Xin_Rect_Lit value(67), /* Literal record */
Xin_Rect_Syn value(69), /* Syntax record */
Xin_Rect_Ord_Type value(80), /* ordinal type record */
Xin_Rect_Ord_Elem value(81), /* ordinal element record */
Xin_Rect_Ctr value(82) ) /* counter record */
prec(15);
レコードのヘッダー部分の宣言は、図 106 に示されています。
Dcl
1 Xin_Hdr Based( null() ), /* Header portion */
/* */
2 Xin_Hdr_Prod /* Language code */
fixed bin(8) unsigned, /* */
/* */
2 Xin_Hdr_Rect /* Record type */
unal ordinal xin_Rect, /* */
/* */
2 Xin_Hdr_Level /* SYSADATA level */
fixed bin(8) unsigned, /* */
/* */
2 * union, /* */
3 xin_Hdr_Flags bit(8), /* flags */
3 *, /* */
4 * bit(6), /* Reserved */
4 Xin_Hdr_Little_Endian /* ints are little endian */
bit(1), /* */
4 Xin_Hdr_Cont bit(1), /* Record continued in next rec */
/* */
2 Xin_Hdr_Edition /* compiler "edition" */
fixed bin(8) unsigned, /* */
/* */
2 Xin_Hdr_Fill bit(32), /* reserved */
/* */
2 Xin_Hdr_Data_Len /* length of data part */
fixed bin(16) unsigned, /* */
/* */
2 Xin_Hdr_End char(0); /* */