MBCommandUtil.Mesa
last modified by Satterthwaite, November 18, 1980 2:45 PM
last edit by Russ Atkinson, 19-Dec-80 13:22:44
last edited by Lewis on 17-Dec-80 13:28:28
last edited by Guarino on 27-Jul-81 11:07:31
last edited by Sandman on 15-Aug-81 15:11:48
last edited by Levin on April 5, 1983 2:00 pm
DIRECTORY
LongString: TYPE USING [SubString],
Segments: TYPE USING [Address],
Streams: TYPE USING [Handle];
MBCommandUtil: DEFINITIONS =
BEGIN
CommandPtr: TYPE = LONG POINTER TO CommandObject;
CommandObject:
TYPE =
RECORD [
getChar: PROCEDURE RETURNS [CHARACTER],
token: PRIVATE CHARACTER ← 0C,
c: PRIVATE CHARACTER ← ' ,
reset: PRIVATE BOOLEAN ← FALSE,
idString: PRIVATE LONG STRING ← NIL
];
PairList: TYPE [SIZE[Segments.Address]];
Create: PROC [get: PROCEDURE RETURNS [CHARACTER]] RETURNS [CommandPtr];
Destroy: PROC [cmd: CommandPtr];
CopyString: PROC [s: LONG STRING, extra: CARDINAL ← 0] RETURNS [LONG STRING];
Echo:
PROC [
d: Streams.Handle, operator: LONG STRING, argList, resultList: PairList, switches: LONG STRING];
FreePairList: PROC [PairList] RETURNS [PairList];
FreeString: PROC [LONG STRING] RETURNS [LONG STRING];
GetNthPair:
PROC [list: PairList, n:
CARDINAL, delete:
BOOLEAN ←
FALSE]
RETURNS [key,value: LONG STRING];
GetNth:
PROC [list: PairList, n:
CARDINAL, delete:
BOOLEAN ←
FALSE]
RETURNS [
LONG
STRING] =
INLINE {RETURN [GetNthPair[list, n, delete].value]};
KeyValue:
PROC [key: LongString.SubString, list: PairList, delete:
BOOLEAN ←
FALSE]
RETURNS [LONG STRING];
ListLength: PROC [list: PairList] RETURNS [CARDINAL];
Parse:
PROC [
cmd: CommandPtr, opX, argX, resultX: CARDINAL ← 0, allowNoTagParm: BOOLEAN ← FALSE]
RETURNS [operator: LONG STRING, argList, resultList: PairList, switches: LONG STRING];
Failed: ERROR;
SetExtension: PROC [root, defaultExt: LONG STRING] RETURNS [name: LONG STRING];
END.