DFDependenciesPrivate.Mesa
Spreitzer, February 11, 1986 2:25:50 pm PST
DIRECTORY DFDependencies, FileSets, HashTable, IO, Rope;
DFDependenciesPrivate: CEDAR DEFINITIONS = {OPEN DFDependencies;
DependencyGraph: TYPE = REF DependencyGraphPrivate;
DependencyGraphPrivate: TYPE = RECORD [
verticesByBase: HashTable.Table
];
VertexList: TYPE = LIST OF Vertex;
Vertex: TYPE = REF VertexPrivate;
VertexPrivate: TYPE = RECORD [
naming: Naming,
dependents: DependentList ← NIL,
providers: ProviderList ← NIL,
rank: INT ← notRanked,
rank = MAX[0, providers.rank + 1]
avoid, tried, failed: BOOLFALSE
];
Naming: TYPE = RECORD [long, base: ROPE];
notRanked: INT = FIRST[INT];
DependentList: TYPE = VertexList;
ProviderList: TYPE = VertexList;
}.