CDExtras.mesa (part of ChipNDale)
Copyright © 1983, 1984 by Xerox Corporation. All rights reserved.
by Ch. Jacobi, October 24, 1983 11:48 am
last edited by Ch. Jacobi, June 29, 1985 5:36:51 pm PDT
CDExtras:
CEDAR
DEFINITIONS =
BEGIN
CreateDummyObject:
PROC[design:
CD.Design]
RETURNS [
CD.Object];
--create a dummy cell object which contains the whole design.
--On future changes of the design, the dummy object may or may not
--get obsolete.
--the cell object is NOT put into any cell library
EnumerateChildrenObjects:
PROC [me:
CD.Object, p: CDDirectory.EnumerateObjectsProc, x:
REF];
--enumerate me and its children objects
EnumerateDesignObjects: PROC [design: CD.Design, p: CDDirectory.EnumerateObjectsProc, x: REF];
BoundingBox: PROC [design: CD.Design] RETURNS [CD.Rect];
PushedCellName: PROC [design: CD.Design] RETURNS [Rope.ROPE];
RemoveProperties:
PROC [design:
CD.Design, key:
REF];
--tries to remove the propertiy "key" from all objects of "design";
--may be delayed or incomplete
--(only from objects, not instances...)
ToLambda: PROC [n: CD.Number] RETURNS [Rope.ROPE];
PopToTopLevel:
PROC [design:
CD.Design]
;
--if "design" is pushed in, it will be popped out, either by flushing,
--replacing cells or creating new cells
Cellize:
PROC [design:
CD.Design, name: Rope.
ROPE←
NIL]
RETURNS [cell:
CD.Object←
NIL, pos:
CD.Position];
--makes a single "cell" of of the "design", removes all instances;
--pos: if "cell" is included at position "pos" in an empty design we would get "design" again
--if "design" is pushed in, it will be popped out, either by flushing,
--replacing cells or creating new cells
ToRope: PROC [x: REF, whenFailed: REF←NIL] RETURNS [Rope.ROPE];
GetTechnology:
PROC [name: Rope.
ROPE]
RETURNS [
CD.Technology];
--far more friendly version of CD.GetTechnology
--NIL if not found
END.