DIRECTORY AbSets, IO, LichenDataStructure, RefTab; LichenArrayStuff: CEDAR DEFINITIONS = {OPEN LichenDataStructure, Sets:AbSets; 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]}; 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]; FindStatEdge: PROC [sr: StatRep, sep: StatEdgePrivate] RETURNS [StatEdge]; AddStatEdge: PROC [sr: StatRep, sep: StatEdgePrivate] RETURNS [se: StatEdge]; RemStatEdge: PROC [sr: StatRep, se: StatEdge]; CreateStatRep: PROC RETURNS [StatRep]; FmtStatEdge: PROC [se: StatEdge, a: Array _ NIL, nameGen: NameGenerator _ NIL] RETURNS [ROPE]; MakeStatEdge: PROC [sep: StatEdgePrivate] RETURNS [StatEdge]; statEdges, statVerts, portsAtIndices: READONLY Sets.Space; }. LichenArrayStuff.mesa Last tweaked by Mike Spreitzer on December 21, 1987 9:43:04 am PST 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™B—K˜KšΟk œ œ˜2K˜šΟ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šž œœœ˜CKšžœœœ œ˜DKš ž œœœœœœ˜+Kš ž œœœœœ˜3K˜Kšž œœ&œ˜NKšžœœžœœ ˜OKšžœœ$œ˜WKšžœœžœœœœœ œ ˜uKšžœœ žœœœœœ œ˜pKšžœœ!žœœœœœœ œœ˜šKšž œœ%œ ˜JKšž œœ%œ˜MKšž œœ˜.Kšž œœœ ˜&Kš ž œœœœœœ˜^Kšž œœœ ˜=K˜Kšœ&œ ˜:K˜K˜—…—  ΰ