<<>> <> <> <> <<>> <> <<>> DIRECTORY BasicTime USING [GMT], DFPorter USING [DFContents], MobConnection USING [ModuleID], Rope USING [ROPE]; MobOrder: CEDAR DEFINITIONS ~ BEGIN OPEN Rope; ExportItems: TYPE = RECORD [ id: MobConnection.ModuleID, items: BitVector ]; BitVector: TYPE = RECORD [w0: PACKED ARRAY [0..BITS[WORD]) OF BOOL, rest: REF BitVector]; emptyBitVector: BitVector = [ALL[FALSE], NIL]; MobConnections: TYPE = REF MobConnectionsRep; MobConnectionsRep: TYPE = RECORD [ kind: ATOM, -- $definitions, $program, $configuration id: MobConnection.ModuleID, directory: LIST OF MobConnection.ModuleID, imports: LIST OF MobConnection.ModuleID, exports: LIST OF ExportItems, modules: LIST OF MobConnection.ModuleID, goal: BOOL ¬ FALSE, fileName: ROPE, dfName: ROPE ]; LORA: TYPE = LIST OF REF; MakeLoadList: PROC [dfNames: LIST OF ROPE, goals: LIST OF ROPE] RETURNS [LIST OF LIST OF ATOM]; MakeDependentsList: PROC [dfNames: LIST OF ROPE, roots: LIST OF ROPE] RETURNS [modules: LIST OF ATOM, dependentDFNames: LIST OF ROPE]; EnumerateFiles: PROC [action: PROC [dfName: ROPE, name: ROPE, fullFName: ROPE, created: BasicTime.GMT, goal: BOOL], dfs: LIST OF DFPorter.DFContents]; BitVectorRest: PROC [bitVector: BitVector] RETURNS [BitVector]; BitVectorRef: PROC [bitVector: BitVector, i: NAT] RETURNS [BOOL]; BitVectorSet: PROC [bitVector: BitVector, i: NAT] RETURNS [BitVector]; BitVectorOr: PROC [a, b: BitVector] RETURNS [BitVector]; BitVectorImplies: PROC [a, b: BitVector] RETURNS [BOOL]; BitVectorEmptyIntersection: PROC [a, b: BitVector] RETURNS [BOOL]; CachedLORAFromMob: PROC [fileName: ROPE] RETURNS [mob: LORA]; DecodeMob: PROC [fileName: ROPE] RETURNS [MobConnections]; GetMobsViaDFs: PROC [dfNames: LIST OF ROPE] RETURNS [LIST OF MobConnections]; BogusMob: SIGNAL [msg: ROPE]; ExtractNames: PROC [in: LIST OF LIST OF MobConnections] RETURNS [LIST OF LIST OF ATOM]; FindImportGoals: PROC [connections: LIST OF MobConnections, importGoals: LIST OF ATOM] RETURNS [ans: LIST OF ROPE ¬ NIL]; MarkGoals: PROC [connections: LIST OF MobConnections, goals: LIST OF ROPE] RETURNS [LIST OF MobConnections]; <> GoalNotFound: SIGNAL [rope: ROPE]; MobConnectionsListLength: PROC [connections: LIST OF MobConnections] RETURNS [n: INT ¬ 0]; IncorrectVersionNumberInDF: SIGNAL [fullFName, realName: ROPE]; BoundProgramNotKnown: SIGNAL [configuration, program: MobConnection.ModuleID]; DuplicateExports: SIGNAL [moduleID, interfaceID: MobConnection.ModuleID]; TopoSortConnections: PROC [connections: LIST OF MobConnections, topDown: BOOL ¬ TRUE] RETURNS [LIST OF LIST OF MobConnections]; END.