DIRECTORY Core; CoreOps: CEDAR DEFINITIONS = BEGIN OPEN Core; CreateDesign: PROC [name: ROPE _ NIL, props: Properties _ NIL] RETURNS [design: Design]; PrintDesign: PROC [design: Design, out: STREAM]; printClassProcProp: ATOM; PrintClassProc: TYPE = PROC [data: REF ANY, out: STREAM]; RegisterCellClass: PROC [class: CellClass]; InsertCellType: PROC [design: Design, cellType: CellType]; FetchCellType: PROC [design: Design, name: ROPE] RETURNS [cellType: CellType]; EnumerateCellTypes: PROC [design: Design, action: EachEntryAction] RETURNS [quit: BOOL]; EachEntryAction: TYPE = PROC [cellType: CellType] RETURNS [quit: BOOL _ FALSE]; PrintCellType: PROC [cellType: CellType, out: STREAM]; Identity: PROC [cellType: CellType, name: ROPE, props: Properties _ NIL] RETURNS [identity: CellType]; Recast: RecastProc; CreateSequenceWire: PROC [name: ROPE _ NIL, components: LIST OF Wire, props: Properties _ NIL] RETURNS [wire: Wire]; CreateRecordWire: PROC [name: ROPE _ NIL, components: LIST OF Wire, props: Properties _ NIL] RETURNS [wire: Wire]; CreateAtomWire: PROC [name: ROPE _ NIL, props: Properties _ NIL] RETURNS [wire: Wire]; CopyWire: PROC [wire: Wire] RETURNS [new: Wire]; VisitWire: PROC [wire: Wire, eachWire: EachWireProc]; EachWireProc: TYPE = PROC [wire: Wire] RETURNS [notSubWires: BOOL _ FALSE, quit: BOOL _ FALSE]; PrintWire: PROC [wire: Wire, out: STREAM]; PrintIndent: PROC [depth: NAT, out: STREAM]; NameWire: PROC [wire: Wire, name: ROPE, prop: ATOM]; NameAllWires: PROC [design: Design]; NameWireProc: TYPE = PROC [data: REF ANY]; nameClassWireProcProp: ATOM; publicWireFullName: ATOM; END. FCoreOps.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Barth, October 2, 1985 11:39:31 am PDT Bertrand Serlet August 14, 1985 10:58:16 am PDT Spreitzer, August 12, 1985 5:18:13 pm PDT Theory This interface defines interesting utilities for the data structure defined in Core. Designs May raise StructureError[MissingParameter]. Looks for printClassProcProp in the cell type class's properties. Cell Classes May raise StructureError[DuplicateName, MissingParameter]. Resuming when DuplicateName is OK. Cell Types Inserts the cellType into the directory of the design. Raises StructureError[MissingParameter] if the name, class, design or cellType is NIL. Raises StructureError[DuplicateName] if a cellType of that name already exists. Resuming when DuplicateName is OK. May raise StructureError[MissingParameter]. Returns NIL if no such named cellType. May raise StructureError[MissingParameter]. Returns a CellType which refers to the original CellType but has a new property list. Useful when properties describe instances of a class all of whose members have the same Core data structure. Always returns the same pointer, given same cell type. Wires Attaches full path names to wire tree starting with initial name "name" on wire "wire" using property "prop". For each recursive call appends .(wire.elements[i].name) if structure = record or [index] if structure = sequence. Names all the public wires in a design using publicWireFullName as the property atom. Looks for nameClassWireProcProp, whose value must be a NameWireProc, in each cell type class's properties. ΚF˜– "Cedar" stylešœ ™ Jšœ Οmœ1™