
    <<InternalPackageSymbols.mesa>>
        <<Copyright © 1985 by Xerox Corporation.  All rights reserved.>>
        <<Sweet, May 12, 1980  3:21 PM>>
        <<Satterthwaite, June 3, 1986 3:03:50 pm PDT>>

    DIRECTORY
        PrincOps: TYPE USING [EPRange, MaxNGfi],
        Symbols: TYPE USING [HTIndex],
        SymbolSegment: TYPE USING [constType],
        Table: TYPE USING [Selector];

    PackageSymbols: DEFINITIONS = {

        MaxEntries: CARDINAL = PrincOps.EPRange*PrincOps.MaxNGfi;

    <<constant table declarations>>

        WordIndex: TYPE = CARDINAL;

        ConstRecord: TYPE = RECORD[
            offset: WordIndex,
            length: CARDINAL];

        ConstIndex: TYPE = CARDINAL [0..CARDINAL.LAST/ConstRecord.SIZE);

        constType: Table.Selector = SymbolSegment.constType;

    <<body data for outer callable bodies>>

        OuterPackRecord: TYPE = MACHINE DEPENDENT RECORD[
            hti: Symbols.HTIndex,
            placed, attr1, attr2: BOOL _ FALSE,
            fill: [0..1FFFH] _ 0,
            length: CARDINAL,
            firstSon: IPIndex,
            resident: BOOL,
            entryIndex: [0..MaxEntries)];

        OPIndex: TYPE = CARDINAL [0..MaxEntries];
        OPNull: OPIndex = OPIndex.LAST; 

    <<body data for inner callable bodies>>

        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; 

        }.


