StructuralComparisonOps.Mesa
Bertrand Serlet June 4, 1986 4:15:42 pm PDT
Last tweaked by Mike Spreitzer on March 24, 1987 2:57:00 pm PST
DIRECTORY IO, StructuralComparisonDataStructure;
StructuralComparisonOps: CEDAR DEFINITIONS =
BEGIN OPEN StructuralComparisonDataStructure;
Log: PROC [format: ROPE, v1, v2, v3, v4, v5: IO.Value ← [null[]]];
FlushLog: PROC;
WriteColorTable: PROC [colorTable: ColorTable, descriptions: RealGraphDescriptions];
WriteAll: PROC [when: ROPE, descriptions: RealGraphDescriptions, a, b: CellType, oldColorData, curColorData: ColorTable];
VerboseVName: PROC [Vertex] RETURNS [ROPE];
DeleteVertex: PROC [parent: CellType, v: Vertex];
MergeVertices: PROC [parent: CellType, v1, v2: Vertex] RETURNS [merged, doomed: Vertex];
If they're cells, the caller asserts that they are connected identically — i.e., nothing needs to be done but delete the doomed vertex and the edges touching it.
RemoveEdge: PROC [e: Edge];
CompareGraphs: PROC
[
descriptions: RealGraphDescriptions,
a, b: CellType,
GenerateHints: PROC [Consume: PROC [vA, vB: Vertex]],
pick, mirrors, mayQuitEarly: BOOL,
abort: REF BOOL]
RETURNS [equiv, didQuitEarly: BOOL, partition: ColorTable];
END.