DIRECTORY Core, CoreFlat, CoreOps, IO; PWCLCoreFlatExtras: CEDAR DEFINITIONS = {OPEN CoreFlat, CO: CoreOps; Cut: TYPE = RECORD [ MembershipTester: CutMembershipTester, data: REF ANY _ NIL]; CutMembershipTester: TYPE = PROC [cutData: REF ANY, root: CellType, cellType: CellType, flatCell: FlatCellTypeRec, instance: CellInstance] RETURNS [BOOL]; Includes: PROC [cut: Cut, root: CellType, cellType: CellType, flatCell: FlatCellTypeRec, instance: CellInstance] RETURNS [BOOL] = INLINE {RETURN [cut.MembershipTester[cut.data, root, cellType, flatCell, instance]]}; SetCut: PROC [CutSet] RETURNS [Cut]; leaves: Cut; FlatPrint: PROC [ root: CellType, filter: Filter _ NIL, to: IO.STREAM, Annotator: PROC [subject: Descendant, to: IO.STREAM] _ NIL, leaves: Cut ]; Filter: TYPE ~ PROC [cellType: CellType, flatCell: FlatCellTypeRec, instance: CellInstance, bindings: Bindings] RETURNS [BOOL]; PrintNeighborhood: PROC [ root: CellType, of: DescendantListList, to: IO.STREAM, Annotator: PROC [subject: Descendant, to: IO.STREAM] _ NIL, leaves: Cut ]; MakeNeighborhoodFilter: PROC [of: DescendantListList, Consume: PROC [Filter]]; DescendantListList: TYPE = LIST OF DescendantList; DescendantList: TYPE = LIST OF Descendant; Descendant: TYPE = REF ANY--actually UNION [FlatWire, FlatCellType, REF InstancePath]--; LowerInstancePath: PROC [path, by: InstancePath] RETURNS [lower: InstancePath]; LowerFlatCell: PROC [fc: FlatCellTypeRec, by: FlatCellTypeRec] RETURNS [lower: FlatCellTypeRec]; LowerFlatWire: PROC [fw: FlatWireRec, by: FlatCellTypeRec] RETURNS [lower: FlatWireRec]; }. ζPWCLCoreFlatExtras.mesa Mike Spreitzer March 5, 1987 4:29:48 pm PST Last tweaked by Mike Spreitzer on February 16, 1988 1:20:31 pm PST Abstract Cut Sets Flat printing Helpful things for CoreFlat Concatenates path after by. Κ_– "cedar" style˜code™K™+K™B—K˜KšΟk œœ˜&K˜š Οnœœ œœ œ ˜Dhead™šœœœ˜Kšžœ˜&Kšœœœœ˜—K˜Kš œœœ œœYœœ˜šK˜šžœœcœœ˜KšœœœG˜W—K˜Kšžœœ œ˜$K˜K˜ —™ šž œœ˜K˜Kšœœ˜Kšœœœ˜Kš ž œœœœœ˜;K˜ K˜—K˜Kš œœœ]œœ˜K˜šžœœ˜K˜Kšœ˜Kšœœœ˜Kš ž œœœœœ˜;K˜ K˜—K˜Kšžœœžœœ ˜NK˜Kšœœœœ˜2Kšœœœœ ˜*Kšœ œœΟc=œ˜X—™šžœœœ˜OKšœ Οeœ œ™K™—šž œœ,œ˜`K˜—šž œœ(œ˜XK˜——K˜——…—2 w