DIRECTORY OrderedSymbolTableRef, RoseTypes; RoseSimCheck: CEDAR PROGRAM IMPORTS OrderedSymbolTableRef, RoseTypes ={OPEN RoseTypes; Check: PROC [rootCell: Cell] = { [] _ CheckCell[rootCell]; }; CheckCell: PROC [item: REF ANY] RETURNS [stop: BOOL] = { cell: Cell _ NARROW[item]; IF cell.substantiality # (SELECT cell.expansion FROM Leaf => Real, Expand => Shadow, ENDCASE => ERROR) THEN ERROR; IF (cell.substantiality=Real) # (cell.realCellStuff # NIL) THEN ERROR; IF (cell.firstInternalNode#NIL) AND (cell.substantiality=Real) THEN ERROR; IF (cell.leftChild#NIL) AND (cell.substantiality=Real) THEN ERROR; FOR pi: PortIndex IN [0 .. cell.type.ports.length) DO IF NOT Conforming[cell.interfaceNodes[pi].type, cell.type.ports[pi].type] THEN ERROR; ENDLOOP; cell.components.EnumerateIncreasing[CheckCell]; stop _ FALSE; }; }. RRoseSimCheck.Mesa Last Edited by: Spreitzer, April 15, 1985 3:06:49 pm PST Κ^– "cedar" style˜Icode™J™8K˜KšΟk œ"˜+K˜šΠbx œœ˜Kšœ!˜(K˜Kšœœ ˜K˜šΟnœœ˜ K˜K˜—K˜š Ÿ œœœœœœ˜8Kšœ œ˜Kšœœœ!œœœœ˜rKšœ4œœœ˜FKš œœœœœ˜JKš œœœœœ˜Bšœœ˜5KšœœDœœ˜UKšœ˜—K˜/Kšœœ˜ K˜—K˜K˜——…—>ξ