各トークン・レコードでは、トークン索引と呼ばれる 1 つの番号が割り当てられます。後のレコードで PL/I コンパイラーに認識されるトークンを参照するときは、この番号が使用されます。 また、このレコードは、トークンのタイプに加えて、トークンの開始と終了それぞれの列と行を示します。
Dcl
1 Xin_Tok Based( null() ), /* token record */
/* */
2 Xin_Tok_Hdr /* standard header */
like Xin_Hdr, /* */
/* */
2 Xin_Tok_Inx /* adata index for token */
fixed bin(32) unsigned, /* */
/* */
2 Xin_Tok_Begin_Line /* starting line no within file */
fixed bin(32) unsigned, /* */
/* */
2 Xin_Tok_End_Line_Offset /* offset of end line from first */
fixed bin(16) unsigned, /* */
/* */
2 Xin_Tok_Kind_Value /* token kind */
ordinal xin_Tok_Kind, /* */
/* */
2 Xin_Tok_Rsrvd /* reserved */
fixed bin(8) unsigned, /* */
/* */
2 Xin_Tok_Begin_Col /* starting column */
fixed bin(16) unsigned, /* */
/* */
2 Xin_Tok_End_Col /* ending column */
fixed bin(16) unsigned; /* */序数 xin_Tok_Kind は、トークン・レコードのタイプを示します。
Define
ordinal
xin_Tok_Kind
( xin_Tok_Kind_Unset
,xin_Tok_Kind_Lexeme
,xin_Tok_Kind_Comment
,xin_Tok_Kind_Literal
,xin_Tok_Kind_Identifier
,xin_Tok_Kind_Keyword
) prec(8) unsigned;