<> <> <> <> <> DIRECTORY Core; CoreOps: CEDAR DEFINITIONS = BEGIN OPEN Core; <> <> <> <> nameProp: ATOM; <> printClassProcProp: ATOM; PrintClassProc: TYPE = PROC [data: REF ANY, out: STREAM]; <> CreateCellType: PROC [class: CellClass, public: WireSequence, data: REF ANY _ NIL, name: ROPE _ NIL, props: Properties _ NIL] RETURNS [cellType: CellType]; <> GetCellTypeName: PROC [cellType: CellType] RETURNS [name: ROPE _ NIL]; Recast: RecastProc; <> PrintCellType: PROC [cellType: CellType, out: STREAM, depth: NAT _ 0]; PrintIndent: PROC [depth: NAT, out: STREAM]; -- utility <> <> CreateAtomWire: PROC [name: ROPE _ NIL, props: Properties _ NIL] RETURNS [wire: Wire]; CreateRecordWire: PROC [components: LIST OF Wire, name: ROPE _ NIL, props: Properties _ NIL] RETURNS [wire: Wire]; CreateBasicSequenceWire: PROC [length: NAT, name: ROPE _ NIL, props: Properties _ NIL] RETURNS [wire: Wire]; CreateSequenceWire: PROC [components: LIST OF Wire, name: ROPE _ NIL, props: Properties _ NIL] RETURNS [wire: Wire]; SubrangeWire: PROC [wire: Wire, start, length: NAT, name: ROPE _ NIL, props: Properties _ NIL] RETURNS [sub: Wire]; WiresToWireSequence: PROC [wires: LIST OF Wire] RETURNS [wireSeq: WireSequence]; WireSequenceToWire: PROC [wireSeq: WireSequence] RETURNS [wire: Wire]; CopyWire: PROC [wire: Wire] RETURNS [new: Wire]; CopyWireSequence: PROC [wireSeq: WireSequence] RETURNS [newSeq: WireSequence]; sequenceProp: ATOM; <> <> EachWireProc: TYPE = PROC [wire: Wire] RETURNS [subWires: BOOL _ TRUE, quit: BOOL _ FALSE]; EachWirePairProc: TYPE = PROC [actualWire, publicWire: Wire] RETURNS [subWires: BOOL _ TRUE, quit: BOOL _ FALSE]; VisitWire: PROC [wire: Wire, eachWire: EachWireProc] RETURNS [quit: BOOL]; VisitWireSequence: PROC [wireSeq: WireSequence, eachWire: EachWireProc] RETURNS [quit: BOOL]; VisitBinding: PROC [actual, public: WireSequence, eachWirePair: EachWirePairProc] RETURNS [quit: BOOL]; <> Conform: PROC [actual, public: WireSequence] RETURNS [BOOL]; <> <> GetWireName: PROC [wire: Wire] RETURNS [name: ROPE _ NIL]; FullNameWireSequence: PROC [wireSeq: WireSequence, name: ROPE _ NIL, prop: ATOM _ publicFullName, isSequence: BOOL _ FALSE]; <> NameWireProc: TYPE = PROC [data: REF ANY]; nameClassWireProcProp: ATOM; publicFullName: ATOM; <> PrintWire: PROC [wire: Wire, out: STREAM, depth: NAT _ 0]; PrintWireSequence: PROC [wireSeq: WireSequence, out: STREAM, depth: NAT _ 0]; <> Reverse: PROC [wires: LIST OF Wire] RETURNS [revWires: LIST OF Wire _ NIL]; Delete: PROC [wires: LIST OF Wire, wire: Wire] RETURNS [newWires: LIST OF Wire _ NIL]; Member: PROC [wires: LIST OF Wire, wire: Wire] RETURNS [BOOL]; <<>> END.