-- file SymLiteralOps.Mesa -- last modified by Satterthwaite, 25-Feb-82 14:51:08 DIRECTORY Alloc: TYPE USING [Handle], Literals: TYPE USING [STIndex], RTBcd: TYPE USING [RefLitIndex, TypeIndex], Symbols: TYPE USING [HTIndex, MDIndex, SEIndex], Tree: TYPE USING [Link]; SymLiteralOps: DEFINITIONS = { -- typeIds EnterType: PROC [type: Symbols.SEIndex, canonical: BOOLEAN←TRUE]; TypeIndex: PROC [type: Symbols.SEIndex, canonical: BOOLEAN←TRUE] RETURNS [RTBcd.TypeIndex]; TypeRef: PROC [type: Symbols.SEIndex, canonical: BOOLEAN←TRUE] RETURNS [Tree.Link]; DescribeTypes: PROC RETURNS [offset, length: CARDINAL]; EnumerateTypes: PROC [PROC [canonical: BOOLEAN, type: Symbols.SEIndex]]; UTypeId: PROC [type: Symbols.SEIndex] RETURNS [Symbols.MDIndex, Symbols.SEIndex]; -- atoms and REFs to literals RefLitItem: TYPE = RECORD [ SELECT kind: * FROM atom => [pName: Symbols.HTIndex], text => [value: Literals.STIndex] ENDCASE]; EnterAtom: PROC [name: Symbols.HTIndex]; AtomIndex: PROC [name: Symbols.HTIndex] RETURNS [RTBcd.RefLitIndex]; AtomRef: PROC [name: Symbols.HTIndex] RETURNS [Tree.Link]; EnterText: PROC [sti: Literals.STIndex]; TextIndex: PROC [sti: Literals.STIndex] RETURNS [RTBcd.RefLitIndex]; TextRef: PROC [sti: Literals.STIndex] RETURNS [Tree.Link]; DescribeRefLits: PROC RETURNS [offset, length: CARDINAL]; EnumerateRefLits: PROC [PROC [RefLitItem]]; -- state transitions Initialize: PROC [Alloc.Handle]; Reset: PROC; Finalize: PROC; }.