<<>> <> <> <> <> <<>> <> DIRECTORY Rope; MobConnection: CEDAR DEFINITIONS ~ BEGIN FormIdentifier: TYPE = ATOM; ModuleID: TYPE = RECORD [ identifier: ATOM, -- e.g, $MobConnection version: ATOM -- e.g, $v953774e4263ada3c ]; FilterItem: TYPE = {versions, directory, using, imports, importedItems, exports, typeExports, exportedItems, modules, configurations, spare0, spare1, spare2, spare3}; FalseBool: TYPE = BOOL ¬ FALSE; Filter: TYPE = PACKED ARRAY FilterItem OF FalseBool; Error: ERROR [culprit: REF, msg: Rope.ROPE]; DecodeMob: PROC [ fileName: Rope.ROPE, begin: PROC [FormIdentifier], -- start a substructure end: PROC, -- terminate a substructure putATOM: PROC[ATOM], putROPE: PROC[Rope.ROPE], putINT: PROC[INT], putBOOL: PROC[BOOL], putModuleID: PROC[ModuleID], filter: Filter ¬ ALL[TRUE] ]; LORAFromMob: PROC [fileName: Rope.ROPE, filter: Filter ¬ ALL[TRUE]] RETURNS [LIST OF REF ANY]; -- look at this impl for a sample client. END.