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 BOOLEANFALSE,
idString: PRIVATE LONG STRINGNIL
];
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: BOOLEANFALSE]
RETURNS [key,value: LONG STRING];
GetNth: PROC [list: PairList, n: CARDINAL, delete: BOOLEANFALSE] RETURNS [LONG STRING] =
INLINE {RETURN [GetNthPair[list, n, delete].value]};
KeyValue: PROC [key: LongString.SubString, list: PairList, delete: BOOLEANFALSE]
RETURNS [LONG STRING];
ListLength: PROC [list: PairList] RETURNS [CARDINAL];
Parse: PROC [
cmd: CommandPtr, opX, argX, resultX: CARDINAL ← 0, allowNoTagParm: BOOLEANFALSE]
RETURNS [operator: LONG STRING, argList, resultList: PairList, switches: LONG STRING];
Failed: ERROR;
SetExtension: PROC [root, defaultExt: LONG STRING] RETURNS [name: LONG STRING];
END.