-- file LiteralOps.Mesa
-- last modified by Satterthwaite,  9-Feb-82  9:48:55

DIRECTORY
  Alloc: TYPE USING [Handle],
  Literals: TYPE,
  Strings: TYPE USING [String, SubString],
  Symbols: TYPE USING [SEIndex];

LiteralOps: DEFINITIONS = {
  OPEN Literals;

  Initialize: PROC [Alloc.Handle, UNCOUNTED ZONE];
  Finalize: PROC;
 
 -- procedural interface for standard literals

  ValueDescriptor: TYPE = LONG DESCRIPTOR FOR ARRAY OF WORD;
  
  CopyLiteral: PROC [LTId] RETURNS [LTIndex];
  DescriptorValue: PROC [LTIndex] RETURNS [LitDescriptor];
  FindDescriptor: PROC [LiteralOps.ValueDescriptor] RETURNS [LTIndex];
  Find: PROC [WORD] RETURNS [LTIndex];
  ForgetEntries: PROC RETURNS [currentSize: CARDINAL];
  Value: PROC [LTIndex] RETURNS [WORD];


 -- procedural interface for string literals

  EnumerateHeapStrings: PROC [PROC [STIndex]];
  EnumerateLocalStrings: PROC [STIndex, PROC [MSTIndex]];
  EnumerateMasterStrings: PROC [PROC [MSTIndex]];
  FindHeapString: PROC [STIndex, Symbols.SEIndex] RETURNS [STIndex];
  FindLocalString: PROC [STIndex] RETURNS [STIndex];
  FindString: PROC [Strings.SubString] RETURNS [STIndex];
  MasterString: PROC [sti: STIndex] RETURNS [MSTIndex];
  ResetLocalStrings: PROC RETURNS [STIndex];
  StringReference: PROC [STIndex];
  StringValue: PROC [STIndex] RETURNS [Strings.String];
  TextType: PROC [STIndex] RETURNS [Symbols.SEIndex];

  }.