-- Commands.mesa last edit, Bruce September 26, 1980 8:59 PM
DIRECTORY
CommandList USING [Command, Error],
DebugFormat USING [BBHandle];
Commands: DEFINITIONS =
BEGIN
Command: TYPE = CommandList.Command;
Error: TYPE = CommandList.Error;
NullCommand: Command = null;
Options: TYPE = {stack, process, notifier, exp, ucs, spare1, spare2, spare3};
Umbrella: PROC [op: Options, data: UNSPECIFIED];
DoExp: PROC [param: DebugFormat.BBHandle]; -- exp
UDS: PROC [CHARACTER]; -- stack
UProcess: PROC [CHARACTER]; -- process
Go: PROCEDURE [bb: DebugFormat.BBHandle ← NIL];
DispatchChar: PROCEDURE [CHARACTER];
WriteError: PROCEDURE [error: Error, eof: BOOLEAN ← TRUE];
WriteCommand: PROCEDURE [code: Command];
Prompt: PROCEDURE;
Execute: PROC [code: Command, call: PROC, resetPrompt: BOOLEAN ← TRUE];
Confirm: PROCEDURE [code: Command, call: PROCEDURE];
StringId: TYPE = {var, process, queue, module, proc, config, rconfig,
source, condition, frame, pc, comment, exp, di, file, image, num1,
num2, bbNum, nubModule, nubFrame, nubRCount, nubRAddr, nubWAddr, nubRhs,
user, password, temp1, temp2, temp3, temp4, temp5};
CommandRec: TYPE = RECORD [
prompt: Command ← NullCommand,
sId: StringId,
resetPrompt: BOOLEAN ← TRUE,
colon: BOOLEAN ← TRUE,
atom: BOOLEAN ← TRUE,
resetParse: BOOLEAN ← TRUE];
ModuleBreak: PROCEDURE [proc: PROCEDURE [STRING,STRING], prompt: Command];
Login: PROCEDURE;
GetComment: PROC [printDash: BOOLEAN];
GetLine: PROCEDURE [com: CommandRec, call: PROCEDURE [STRING],
prompt: Command ← NullCommand];
GetString: PROCEDURE [com: CommandRec, call: PROCEDURE [STRING],
prompt: Command ← NullCommand];
GetText: PROC [com: CommandRec, call: PROC [STRING], term: TermProc];
GetTwoStrings: PROCEDURE [
com1, com2: CommandRec, proc: PROCEDURE[STRING, STRING],
prompt: Command ← NullCommand];
TermProc: TYPE = PROC [CHARACTER] RETURNS [BOOLEAN];
IsAtom: PROCEDURE [c: CHARACTER] RETURNS [BOOLEAN];
IsCR: PROCEDURE [c: CHARACTER] RETURNS [BOOLEAN];
GetToken: PROCEDURE [
get: PROCEDURE RETURNS [CHARACTER], token, ext, switches: STRING];
END.