-- CommanderOps.mesa
--   last edited by Sandman, January 22, 1979  7:44 AM
--   last edited by Satterthwaite, September 20, 1982 1:32 pm

CommanderOps: DEFINITIONS = {
  
  CommandBlock: TYPE = RECORD [
    name: STRING,
    proc: PROC,
    nparams: CARDINAL,
    params: ARRAY [0..0) OF CommandParam];
  
  ParamType: TYPE = {string, numeric, character, boolean};
  
  CommandParam: TYPE = RECORD [type: ParamType, prompt: STRING];
  
  CommandBlockHandle: TYPE = POINTER TO CommandBlock;
  
  AddCommand: PROC [name: STRING, proc: PROC, numargs: CARDINAL]
    RETURNS [CommandBlockHandle];
  
  InitCommander: PROC [herald: STRING];
  WaitCommands: PROC;
  
  }.