DIRECTORY Basics, CD, CDCells, D2Basic, Rope; RTBasic: CEDAR DEFINITIONS IMPORTS CDCells = { SideOrNone: TYPE = {bottom, top, left, right, none}; Side: TYPE = SideOrNone[bottom .. right]; LRSide: TYPE = SideOrNone[left .. right]; TBSide: TYPE = SideOrNone[bottom .. top]; DirectionOrNone: TYPE = {horizontal, vertical, none}; Direction: TYPE = DirectionOrNone[horizontal .. vertical]; AboveOrBelow: TYPE = {above, below}; PQPos: TYPE = RECORD[ p: D2Basic.Number, q: D2Basic.Number]; PQRectRef: TYPE = REF PQRect; PQRect: TYPE = RECORD[ c1, c2: PQPos]; PQRectList: TYPE = LIST OF PQRect; Range: TYPE = RECORD [ l, r: D2Basic.Number]; RangeList: TYPE = LIST OF Range; RefRange: TYPE = REF Range; sideName: ARRAY RTBasic.Side OF Rope.ROPE; Error: ERROR [errorType: ErrorType _ callingError, explanation: Rope.ROPE _ NIL]; Signal: SIGNAL [signalType: ErrorType _ callingError, explanation: Rope.ROPE _ NIL]; ErrorType: TYPE = {programmingError, callingError, noResource, designRuleViolation, other}; OtherSide: PROCEDURE [side: Side] RETURNS [Side]; OtherDirection: PROCEDURE [direction: Direction] RETURNS [Direction]; OtherRelation: PROCEDURE [aboveOrBelow: AboveOrBelow] RETURNS [AboveOrBelow]; SimpleCompare: PROCEDURE [result1, result2: D2Basic.Number] RETURNS [result: Basics.Comparison]; XYToPQ: PROC [pDir: Direction, pos: D2Basic.Pos] RETURNS [pqPos: PQPos]; PQToXY: PROC [pDir: Direction, pqPos: PQPos] RETURNS [pos: D2Basic.Pos]; IRSize: PROC [obj: CD.Object] RETURNS [CD.Position]; SetCDCellName: PROC [obj: CD.Object, name: Rope.ROPE] ~ INLINE{ cellPtr: CD.CellPtr _ NARROW [obj.specificRef]; cellPtr.name _ name}; CDCellIsEmpty: PROC [obj: CD.Object] RETURNS [BOOLEAN] ~ INLINE{ cellPtr: CD.CellPtr _ NARROW [obj.specificRef]; RETURN[cellPtr.contents = NIL]}; RepositionCell: PROC [obj: CD.Object] ~ INLINE{ IF ~CDCellIsEmpty[obj] THEN [] _ CDCells.RepositionCell[obj, NIL]}; }. 4RTBasic.mesa Copyright c 1985, 1986 by Xerox Corporation. All rights reserved. by Bryan Preas August 29, 1985 2:48:22 pm PDT last edited by Bryan Preas September 2, 1986 2:16:09 pm PDT Types Errors Procedures convert a position from x-y to p-q space. convert a position from p-q to x-y space. Κ˜šœ ™ Jšœ Οmœ7™BJšœ0™0Jšœ=™=—J˜šΟk ˜ Jšœžœ˜#J˜—šΟnœžœž ˜Jšžœ˜Jšœ˜—head™Jšœ žœ$˜4Jšœžœ˜)Jšœžœ˜)Jšœžœ˜)Jšœžœ ˜5Jšœ žœ+˜:Jšœžœ˜$J˜šœžœžœ˜Jšœ˜Jšœ˜J˜—Jšœ žœžœ˜šœžœžœ˜Jšœ˜—Jšœ žœžœžœ˜#J˜šœžœžœ˜Jšœ˜—Jšœ žœžœžœ˜ Jšœ žœžœ˜J˜Jšœ žœžœžœ˜*—™JšŸœžœ9žœžœ˜QJšŸœžœ:žœžœ˜TJšœ žœL˜[—šœ Ÿ™ šŸ œž œ ˜!Jšžœ˜—J˜šŸœž œ˜0Jšžœ ˜J˜—šŸ œž œ˜5Jšžœ˜J˜—šŸ œž œ#˜;Jšžœ˜$—J™šŸœžœ%žœ˜HJ™)J™—šŸœžœ!žœ˜HJ™)—J˜š Ÿœžœžœ žœžœ ˜4J˜—codeš Ÿ œžœžœžœžœ˜?Jšœ žœ žœ˜/Jšœ˜J˜—š Ÿ œžœžœ žœžœžœ˜@Jšœ žœ žœ˜/Jšžœžœ˜ J˜—šŸœžœžœ žœ˜/Jšžœžœ"žœ˜CJ˜—Jšœ˜—J˜—…—v Ζ