DIRECTORY IO USING [STREAM], Rope USING [ROPE]; MobCommandUtil: DEFINITIONS = { PairList: TYPE = LIST OF RECORD[key, val: Rope.ROPE]; Switches: TYPE = PACKED ARRAY CHAR ['a..'z] OF BOOL; Echo: PROC [ d: IO.STREAM, operator: Rope.ROPE, argList, resultList: PairList, switches: Rope.ROPE]; GetSwitches: PROC [switches: Rope.ROPE, default: Switches] RETURNS[Switches]; GetNthPair: PROC [list: PairList, n: CARDINAL, delete: BOOL¬FALSE] RETURNS [key,value: Rope.ROPE]; GetNth: PROC [list: PairList, n: CARDINAL, delete: BOOL¬FALSE] RETURNS [Rope.ROPE] = INLINE { RETURN [GetNthPair[list, n, delete].value]}; KeyValue: PROC [key: Rope.ROPE, list: PairList, delete: BOOL¬FALSE] RETURNS [Rope.ROPE]; ListLength: PROC [list: PairList] RETURNS [CARDINAL]; Parse: PROC [s: IO.STREAM] RETURNS [operator: Rope.ROPE, argList, resultList: PairList, switches: Rope.ROPE]; SetExtension: PROC [root, defaultExt: Rope.ROPE] RETURNS [name: Rope.ROPE]; GetRootName: PROC[name: Rope.ROPE] RETURNS [root: Rope.ROPE]; SkipNonBlank: PROC [s: IO.STREAM, n: CARDINAL¬1]; Failed: ERROR; }. ( MobCommandUtil.Mesa Copyright Σ 1985, 1989, 1991 by Xerox Corporation. All rights reserved. Satterthwaite, December 10, 1982 10:32 am Maxwell, August 19, 1983 8:39 am Paul Rovner, October 4, 1983 4:59 pm Russ Atkinson (RRA) March 6, 1985 10:03:29 pm PST JKF July 22, 1989 3:51:29 pm PDT Κe–(cedarcode) style•NewlineDelimiter ™codešœ™Kšœ Οeœ=™HKšΟy)™)Kšž ™ Kšž$™$KšœΟkœŸ™1KšŸœ™ K™—šŸ ˜ KšŸœŸœŸœ˜KšœŸœŸœ˜K˜—KšΟnœŸ œ˜˜Kš œ ŸœŸœŸœŸœŸœ˜5Kš œ ŸœŸœŸœŸœ ŸœŸœ˜4K˜š œŸœ˜ KšœŸœŸœ˜ KšœŸœ˜K˜KšœŸœ˜—Kš  œŸœŸœŸœ ˜Mš  œŸœŸœ Ÿ œ˜BKšŸœŸœ˜—š œŸœŸœ Ÿ œ˜>KšŸœŸœŸœ˜KšŸœ&˜,—š œŸœ ŸœŸ œ˜CKšŸœŸœ˜—Kš  œŸœŸœŸœ˜5š œŸœŸœŸœ˜KšŸœŸœ0Ÿœ˜R—Kš   œŸœŸœŸœ Ÿœ˜KKš   œŸœ ŸœŸœ Ÿœ˜=Kš   œŸœŸœŸœŸ œ˜1K˜Kš œŸœ˜K˜K˜K˜——…—.»