DIRECTORY Basics USING [BITAND, BITOR, BITNOT], Rope USING [ROPE], Tioga USING [Look, Looks, noLooks, allLooks, Runs]; TextLooks: CEDAR DEFINITIONS IMPORTS Basics ~ BEGIN Look: TYPE = Tioga.Look; Looks: TYPE = Tioga.Looks; noLooks: Looks = Tioga.noLooks; allLooks: Looks = Tioga.allLooks; Runs: TYPE ~ Tioga.Runs; LooksAND: PROC [looks1, looks2: Looks] RETURNS [Looks] ~ INLINE { RETURN[LOOPHOLE[Basics.BITAND[LOOPHOLE[looks1], LOOPHOLE[looks2]]]] }; LooksOR: PROC [looks1, looks2: Looks] RETURNS [Looks] ~ INLINE { RETURN[LOOPHOLE[Basics.BITOR[LOOPHOLE[looks1], LOOPHOLE[looks2]]]] }; LooksNOT: PROC [looks: Looks] RETURNS [Looks] ~ INLINE { RETURN[LOOPHOLE[Basics.BITNOT[LOOPHOLE[looks]]]] }; ModifyLooks: PROC [old, remove, add: Looks] RETURNS [Looks] ~ INLINE { RETURN[LooksOR[LooksAND[old, LooksNOT[remove]], add]] }; Size: PROC [runs: Runs] RETURNS [INT]; FetchLooks: PROC [runs: Runs, index: INT] RETURNS [Looks]; LooksToRope: PROC [looks: Looks] RETURNS [rope: Rope.ROPE]; RopeToLooks: PROC [rope: Rope.ROPE] RETURNS [looks: Looks]; END.  TextLooks.mesa Copyright Σ 1985, 1986, 1988, 1991 by Xerox Corporation. All rights reserved. written by Bill Paxton, February 1981 last edit by Bill Paxton, December 13, 1982 1:17 pm Last Edited by: Maxwell, January 5, 1983 12:35 pm Michael Plass, March 14, 1985 10:00:03 am PST Doug Wyatt, October 17, 1991 5:27 pm PDT This package provides Looks for text in Tioga it allows a client to associate looks with characters in a rope looks are represented as a vector of 32 bits The implementation expects that long sequences will have the same looks and thus uses a run encoding to save space. As of Cedar10, we use a ROSARY. The runs of looks are immutable just like the text in a rope. i.e., you don't change runs; instead you build new ones out of parts of old ones Κz•NewlineDelimiter –(cedarcode) style™codešœ™Kšœ ΟeœC™NKšœ%™%Kšœ3™3K™1K™-K™(—K˜šœ-™-Kšœ?™?Kšœ,™,K˜—šœG™GKšœ+™+KšœΟkœ™K˜—šœ=™=šœ™Kšœ4™4K˜——šž ˜ Kš œžœžœžœžœ˜%Kšœžœžœ˜Kšœžœ(˜3—K˜Kš Οn œžœž œžœ ž˜3K˜Kšœžœ˜Kšœžœ˜Kšœ˜Kšœ!˜!Kšœžœ˜K™šŸœžœžœ˜6Kš œžœžœžœžœžœ žœ˜QK˜—šŸœžœžœ˜5Kš œžœžœžœžœžœ žœ˜PK˜—šŸœžœžœ˜-Kš œžœžœžœžœžœ ˜>K˜—šŸ œžœžœ˜;Kšœžœžœ2˜CK˜—šŸœžœžœžœ˜&K™—šŸ œžœžœžœ ˜:K™—šŸ œžœžœ žœ˜;K˜—šŸ œžœ žœžœ˜;K˜—K˜Kšžœ˜—…—$ ¨