const illegal = 'ILLEGAL '; type pp_types = ( dty, qty, dcl, qcl, rc, port, ptcl ); pp_ptr = ^pp_rec; pp_rec = packed record key:atom; { string representation } key_next:pp_ptr; { next key } num:integer; { decimal representation } num_next:pp_ptr; { numeric successor } case attribute:pp_types of dty: (pp_dty:dtype); qty: (pp_qty:qtype); dcl: (pp_dcl:dclass); qcl: (pp_qcl:qclass); end; pptbl_ptr = ^pp_tbl; pp_tbl = packed record table:packed array[0..26] of pp_ptr; {A-Z, '*'} num_head:pp_ptr; end.