DIRECTORY AMBridge, AMTypes, EqualCheck, Rope; EqualCheckImpl: CEDAR PROGRAM IMPORTS AMBridge, AMTypes EXPORTS EqualCheck = BEGIN FindDif: PUBLIC PROC [ a, b: REF ANY ] RETURNS [ fieldNames: LIST OF Rope.ROPE ] = BEGIN tva, tvb: AMTypes.TV; typea: AMTypes.Type; TRUSTED { tva _ AMBridge.TVForReferent[a, readOnly]; tvb _ AMBridge.TVForReferent[b, readOnly]; }; typea _ AMTypes.TVType[tva]; IF AMTypes.TVType[tvb] # typea THEN ERROR; fieldNames _ NIL; FOR i: AMTypes.Index DECREASING IN [1..AMTypes.NComponents[typea]] DO tvac: AMTypes.TV = AMTypes.IndexToTV[tva, i]; tvbc: AMTypes.TV = AMTypes.IndexToTV[tvb, i]; IF NOT AMTypes.TVEqual[tvac, tvbc] THEN fieldNames _ CONS[AMTypes.IndexToName[typea, i], fieldNames]; ENDLOOP; END; END.  EqualCheckImpl.mesa Copyright c 1986 by Xerox Corporation. All rights reserved. EdMcCreight (EMM) March 28, 1986 10:30:16 am PST NIL means no difference ΚO˜codešœ™Kšœ Οmœ1™