-- file TableCommand.mesa
-- last edited by Satterthwaite, July 2, 1982 3:59 pm

DIRECTORY
  FileSegment: TYPE USING [Pages],
  Stream: TYPE USING [Handle],
  Strings: TYPE USING [String],
  TimeStamp: TYPE USING [Stamp];

TableCommand: DEFINITIONS = {

 -- from ModuleMaker (utilities)
 
  CreateBCDStream: PROC [
      in: Stream.Handle,
      modId, interfaceId: Strings.String,
      altoCode: BOOL ← FALSE]
    RETURNS [output: Stream.Handle];

  FinishBcdStream: PROC;

 -- from ModuleMaker

  MakeModule: PROC [inputFile, moduleId, interfaceId: Strings.String, altocode: BOOL];


 -- from StringCompactor

  CompileStrings: PROC [
	inputFile: Strings.String,		-- the source file
	interfaceId: Strings.String,		-- exported interface or "SELF"
	formatId: Strings.String,		-- ASCII record declaration
	moduleId: Strings.String,		-- output file
	compact, altoCode: BOOL]
      RETURNS [nChars, nStrings: CARDINAL];

 -- from TableSymbols

  FindInterface: PROC [id: Strings.String, file: Strings.String ← NIL]
    RETURNS [version: TimeStamp.Stamp, pages: FileSegment.Pages];
  FindItem: PROC [symbols: FileSegment.Pages, item: Strings.String]
    RETURNS [size, entry: CARDINAL];
  BadInterface: ERROR [id: Strings.String];

 -- from TableControl

  CreateTime: PROC [s: Stream.Handle] RETURNS [time: LONG INTEGER];
  GenerateVersion: PROC RETURNS [version: TimeStamp.Stamp];
 
  }.