<> <> <> <> DIRECTORY PrincOps: TYPE USING [EPRange, MaxNGfi], Symbols: TYPE USING [HTIndex], SymbolSegment: TYPE USING [constType], Table: TYPE USING [Limit, Selector]; PackageSymbols: DEFINITIONS = { MaxEntries: CARDINAL = PrincOps.EPRange*PrincOps.MaxNGfi; <> WordIndex: TYPE = CARDINAL; ConstRecord: TYPE = RECORD[ offset: WordIndex, length: CARDINAL]; ConstIndex: TYPE = CARDINAL [0..Table.Limit/ConstRecord.SIZE); constType: Table.Selector = SymbolSegment.constType; <> OuterPackRecord: TYPE = MACHINE DEPENDENT RECORD[ hti: Symbols.HTIndex, placed, attr1, attr2: BOOL _ FALSE, length: CARDINAL, firstSon: IPIndex, resident: BOOL, entryIndex: [0..MaxEntries)]; OPIndex: TYPE = CARDINAL [0..MaxEntries]; OPNull: OPIndex = OPIndex.LAST; <> InnerPackRecord: TYPE = RECORD[ length: CARDINAL, lastSon: BOOL, entryIndex: [0..MaxEntries)]; IPIndex: TYPE = CARDINAL [0..MaxEntries]; -- waste a bit to get a null IPNull: IPIndex = IPIndex.LAST; }.