DIRECTORY Collections, IO, LichenDataStructure, RefTab; LichenArrayStuff: CEDAR DEFINITIONS = {OPEN LichenDataStructure, Colls:Collections; CreateArrayRep: PROC [eltType: CellType, size2, basePeriod: Size2] RETURNS [a: Array]; MakeArrayNewConnection: PROC [act: CellType, rangeA: Range2, delta: Int2, epA, epB: Port]; FinishedMakingArrayConnections: PROC [act: CellType]; SetStatRep: PROC [act: CellType, statrep: StatRep, reset: BOOL]; ArrayEltPortsConnected: PROC [a: Array, ai1, ai2: ArrayIndex, ep1, ep2: Port] RETURNS [BOOL]; EnumerateConnectedEltPorts: PROC [a: Array, ep: Port, Consume: PROC [Port]]; GetArrayPortForPort: PROC [act: CellType, index: ArrayIndex, ep: Port, mayAdd: BOOL] RETURNS [arrayPort: Port]; NoteNewEltPort: PROC [a: Array, ep: Port]; IsIncompleteArray: PROC [CellType] RETURNS [BOOL]; ComposeIndex: PROC [i: Int2, relTo: Range2] RETURNS [NATURAL] ~ INLINE {RETURN [(i[Foo]-relTo[Foo].min) * (relTo[Bar].maxPlusOne-relTo[Bar].min) + i[Bar]-relTo[Bar].min]}; PrintArray: PROC [to: IO.STREAM, act: CellType, nameGen: NameGenerator _ NIL]; NameIndex: PROC [a: Array, index: ArrayIndex] RETURNS [SteppyName]; FmtIndex: PROC [a: Array, index: ArrayIndex] RETURNS [asRope: ROPE]; Subscript: PROC [ROPE, INT] RETURNS [ROPE]; Subscript2: PROC [ROPE, ArrayIndex] RETURNS [ROPE]; GetDumbWire: PROC [a: Array, ep: Port, ai: ArrayIndex] RETURNS [dw: DumbWire]; EnumerateDumbWiresForPort: PROC [a: Array, ep: Port, Consume: PROC [DumbWire]]; GetInstForPortInDumbWire: PROC [a: Array, dw: DumbWire, ep: Port] RETURNS [ArrayIndex]; ScanPortsInDumbWire: PROC [a: Array, dw: DumbWire, Test: PROC [Port] RETURNS [BOOL]] RETURNS [found: BOOL, ep: Port]; ScanStatVertices: PROC [a: Array, Test: PROC [StatVertex] RETURNS [BOOL]] RETURNS [found: BOOL, sv: StatVertex]; ScanStatEdgesFrom: PROC [sr: StatRep, from: StatVertex, Test: PROC [se: StatEdge, ob: BOOL] RETURNS [BOOL]] RETURNS [found: BOOL, se: StatEdge, ob: BOOL]; StatEdgeRedundant: PROC [a: Array, sep: StatEdgePrivate, avoid: StatEdge _ NIL] RETURNS [BOOL]; FindStatEdge: PROC [sr: StatRep, sep: StatEdgePrivate] RETURNS [StatEdge]; AddStatEdge: PROC [sr: StatRep, sep: StatEdgePrivate] RETURNS [se: StatEdge]; CreateStatRep: PROC RETURNS [StatRep]; statVerts, portsAtIndices: READONLY Colls.Space; }. ώLichenArrayStuff.mesa Last tweaked by Mike Spreitzer on October 20, 1987 8:13:03 pm PDT Connections may only be added before this; queries about array connectivity can only be made after this. Recomputes DumbRep, but doesn't mess with array ports. ΚΤ– "cedar" style˜code™K™A—K˜KšΟk œœ˜7K˜šΟnœœ ˜#Kšœ˜—K˜Kšœœžœ ˜-K˜Kšžœœ/œ ˜VKšžœœ>˜Zšžœœ˜5Kšœh™h—šž œœ*œ˜@K™6—Kšžœœ2œœ˜]Kšžœœžœœ ˜LKšžœœ6œœ˜oKšžœœ˜*Kšžœœ œœ˜2K˜šž œœœœ˜=Kšœœœ]˜m—K˜Kš ž œœœœ*œ˜NK˜Kšž œœœ˜CKšžœœœ œ˜DKš ž œœœœœœ˜+Kš ž œœœœœ˜3K˜Kšž œœ&œ˜NKšžœœžœœ ˜OKšžœœ$œ˜WKšžœœžœœœœœ œ ˜uKšžœœ žœœœœœ œ˜pKšžœœ!žœœœœœœ œœ˜šKš žœœ4œœœ˜_Kšž œœ%œ ˜JKšž œœ%œ˜MKšž œœœ ˜&K˜Kšœœ ˜0K˜K˜—…—κ Ό