<> <> <> <> DIRECTORY CD USING [Object, Design, markNum]; CDMarks: CEDAR DEFINITIONS = BEGIN <> <> <> <> <<>> <<*Only objects which are actually part of the design and in the directory may be used. This is necessary to guaranty that the marks are properly cleared on the next cycle through MarkRange and for avoiding conflicts on mark usage on multiple designs.>> <> MarkRange: TYPE = [0..CD.markNum); MarkProc: TYPE = PROC [mark: MarkRange]; DoWithMark: PROC [design: CD.Design, proc: MarkProc]; MarkOccupied: ERROR; MarkUnMarkedInclusiveChildren: PROC [design: CD.Design, ob: CD.Object, mark: MarkRange]; <<--For all objects (whose class is inDirectory) do: >> <> <<--all the children of the object. >> <<--mark must be the current mark value. >> <<>> END.