-- file: ListerDefs.mesa, edited by Sandman; July 8, 1980  9:22 AM

DIRECTORY
  BcdDefs USING [MTIndex, VersionStamp],
  SegmentDefs USING [FileSegmentHandle],
  StringDefs USING [SubString],
  Symbols USING [HTIndex, ISEIndex],
  SymbolTable USING [Base];

ListerDefs: DEFINITIONS =
  BEGIN
  
  FileSegmentHandle: TYPE = SegmentDefs.FileSegmentHandle;
  
  IncorrectVersion: SIGNAL;
  Load: PROCEDURE [name: STRING, saveBcdSeg: BOOLEAN ← FALSE]
    RETURNS [code, symbols, bcdseg: FileSegmentHandle];
  LoadFromConfig: PROCEDURE [
    configName, moduleName: STRING, saveBcdSeg: BOOLEAN ← FALSE]
    RETURNS [
      code, symbols, bcdseg: SegmentDefs.FileSegmentHandle, mti: BcdDefs.MTIndex];
  NoCode, NoSymbols, NoFGT, MultipleModules: SIGNAL;
  WriteFileID: PROCEDURE;
  WriteVersions: PROCEDURE [
    version, creator, source: POINTER TO BcdDefs.VersionStamp ← NIL];
  SetRoutineSymbols: PROCEDURE [s: SymbolTable.Base];
  PrintHti: PROCEDURE [hti: Symbols.HTIndex];
  PrintSei: PROCEDURE [sei: Symbols.ISEIndex];
  Indent: PROCEDURE [n: CARDINAL];
  PutSubString: PROCEDURE [ss: StringDefs.SubString];
  PrintMachine: PROCEDURE [stamp: BcdDefs.VersionStamp];
  
  -- known PROGRAM modules
  
  ListBcd: PROGRAM;
  ListCode: PROGRAM;
  ListSymbols: PROGRAM;
  ListInterface: PROGRAM;
  ListFGT: PROGRAM;
  ListerRoutines: PROGRAM;
  ListPub: PROGRAM;
  ListUsing: PROGRAM;
  ListUnbound: PROGRAM;
  ListXref: PROGRAM;
  ListPackageInfo: PROGRAM;
  
  END.