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: BOOL ← FALSE
];
Naming: TYPE = RECORD [long, base: ROPE];
notRanked: INT = FIRST[INT];
DependentList: TYPE = VertexList;
ProviderList: TYPE = VertexList;
}.