TSTypes: CEDAR DEFINITIONS = BEGIN Badness: TYPE = REAL; infBadness: Badness = 1.0E+20; Penalty: TYPE = INTEGER; Dimn: TYPE = RECORD [texPts: REAL]; -- a dimension, measured in micas nilDimn: Dimn = [-999999]; -- for default dimensions in rules zeroDimn: Dimn = [0]; RealDimn: PROCEDURE [value: REAL, unit: Dimn] RETURNS [Dimn] = INLINE {RETURN[[value*unit.texPts]]}; Pt: PROCEDURE [value: REAL] RETURNS [Dimn] = INLINE {RETURN[[value]]}; IntDimn: PROCEDURE [value: LONG INTEGER, unit: Dimn] RETURNS [Dimn] = INLINE {RETURN[[value*unit.texPts]]}; RatDimn: PROCEDURE [num,denom: LONG INTEGER, unit: Dimn] RETURNS [Dimn] = INLINE {RETURN[[num*unit.texPts/denom]]}; DimnRatio: PROCEDURE [num,denom: Dimn] RETURNS [REAL] = INLINE {RETURN[num.texPts/denom.texPts]}; DimnInt: PROCEDURE [num,denom: Dimn] RETURNS [INTEGER]; AddDimn: PROCEDURE [a,b: Dimn] RETURNS [Dimn] = INLINE {RETURN[[a.texPts+b.texPts]]}; SubDimn: PROCEDURE [a,b: Dimn] RETURNS [Dimn] = INLINE {RETURN[[a.texPts-b.texPts]]}; DivDimn: PROCEDURE [num: Dimn, denom: LONG INTEGER] RETURNS [Dimn] = INLINE {RETURN[[num.texPts/denom]]}; NegDimn: PROCEDURE [a: Dimn] RETURNS [BOOLEAN] = INLINE {RETURN[a.texPts<0]}; MaxDimn: PROCEDURE [a,b: Dimn] RETURNS [Dimn] = INLINE {RETURN[[MAX[a.texPts,b.texPts]]]}; AbsDimn: PROCEDURE [a: Dimn] RETURNS [Dimn] = INLINE {RETURN[[ABS[a.texPts]]]}; pt: Dimn = [1.0]; bp: Dimn = [1.00375]; in: Dimn = [72.27]; cm: Dimn = [28.452755]; mm: Dimn = [2.8452755]; mica: Dimn = [2.8452755e-2]; Direction: TYPE = {left, right, up, down}; Dimensions: TYPE = ARRAY Direction OF Dimn; END. Michael Plass, September 7, 1982 1:26 pm. Added Pt[]. Michael Plass, November 2, 1982 10:02 am. CEDARized. ŽTSTypes.mesa Basic types used all over the typesetter. Written by Michael Plass Edited by Michael Plass, November 2, 1982 10:02 am. Last Edited by: Beach, May 16, 1983 9:59 am dimensions All operations that deal with dimensions should do so only through this interface, so if the representation changes in the future, the only places that will need to be changed are here and in TSTypesImpl. Κ‘– "cedar" style˜JšΟc ™ Jš)™)Jš™Jš3™3J™+Jšœ Οkœ˜Jšž˜J˜Jšœ žœžœ˜J˜Jšœ žœžœ˜J˜Jš ™ J˜JšΜ™ΜJšœžœžœ žœ!˜EJšœ"˜=J˜š Οnœž œ žœžœ ž˜EJšœžœ˜—Jš Ÿœž œ žœžœ žœžœ ˜Fš Ÿœž œ žœžœžœ ž˜LJšœžœ˜—š Ÿœž œ žœžœžœ ž˜PJšœžœ˜"—š Ÿ œž œžœžœž˜>Jšœžœ˜"—JšŸœž œžœžœ˜7šŸœž œ žœ ž˜6Jšœžœ˜—šŸœž œ žœ ž˜6Jšœžœ˜—š Ÿœž œžœžœžœ ž˜KJšœžœ˜—Jš Ÿœž œ žœžœžœžœ˜MšŸœž œ žœ ž˜6Jšœžœžœ˜#—šŸœž œ žœ ž˜4Jšœžœžœ˜J˜—J˜J˜J˜J˜J˜J˜J˜Jšœ žœ˜*Jšœ žœžœ žœ˜+J˜Jšžœ˜J˜J˜5J˜4—…—š Ή