<> <> <> <> DIRECTORY BcdDefs USING [CTIndex, EXPIndex, FTIndex, IMPIndex, MTIndex], HashTypes USING [HTIndex, htNull], Table USING [Base, Index, Limit]; Symbols, Literals: DEFINITIONS={ Base: TYPE~Table.Base; Limit: CARDINAL~Table.Limit; <> <> HTIndex: TYPE~HashTypes.HTIndex; htNull: HTIndex~HashTypes.htNull; <> STRecord: TYPE~RECORD [ filename, assigned: BOOL, hti: HTIndex, imported, exported: BOOL, link: STIndex, impi: BcdDefs.IMPIndex, impgfi: CARDINAL, body: SELECT type: * FROM unknown => [], local => [ map: STMap, info: Table.Index, -- Tree.Index, context: CXIndex], external => [ map: STMap, pointer: SELECT ptype: * FROM instance => [sti: STIndex], file => [fti: BcdDefs.FTIndex], ENDCASE] ENDCASE]; STIndex: TYPE~Base RELATIVE POINTER[0..Limit) TO STRecord; stNull: STIndex~STIndex.LAST; <> ISEIndex, SEIndex: TYPE~STIndex; STMap: TYPE~RECORD [ SELECT type: * FROM unknown => [], config => [cti: BcdDefs.CTIndex], module => [mti: BcdDefs.MTIndex], interface => [expi: BcdDefs.EXPIndex] ENDCASE]; <> CXRecord: TYPE~RECORD [link: STIndex]; CXIndex: TYPE~Base RELATIVE POINTER[0..Limit) TO CXRecord; cxNull: CXIndex~CXIndex.LAST; <> LitIndex: TYPE~HashTypes.HTIndex; }.