[ivy]<Satterthwaite>Mimosa>SymLiteralOps.mesa!2

SymLiteralOps.Mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Satterthwaite, June 9, 1986 9:57:52 am PDT
Russ Atkinson (RRA) March 6, 1985 10:07:28 pm PST
DIRECTORY
Alloc USING [Handle],
Literals USING [STIndex],
RTBcd USING [RefLitIndex, TypeIndex],
Symbols USING [Name, MDIndex, Type],
Tree USING [Link];
SymLiteralOps: DEFINITIONS = {
typeIds
EnterType: PROC[type: Symbols.Type, canonical: BOOL←TRUE];
TypeIndex: PROC[type: Symbols.Type, canonical: BOOL←TRUE] RETURNS [RTBcd.TypeIndex];
TypeRef: PROC[type: Symbols.Type, canonical: BOOL←TRUE] RETURNS [Tree.Link];
DescribeTypes: PROC RETURNS[offset, length: CARDINAL];
EnumerateTypes: PROC[PROC[canonical: BOOL, type: Symbols.Type]];
UTypeId: PROC[type: Symbols.Type] RETURNS [Symbols.MDIndex, Symbols.Type];
atoms and REFs to literals
RefLitItem: TYPE = RECORD[
SELECT kind: * FROM
atom => [pName: Symbols.Name],
text => [value: Literals.STIndex],
ENDCASE
];
EnterAtom: PROC[name: Symbols.Name];
AtomIndex: PROC[name: Symbols.Name] RETURNS [RTBcd.RefLitIndex];
AtomRef: PROC[name: Symbols.Name] 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[pad: BOOL];
Finalize: PROC;
}.