DIRECTORY TextFind, RegExpFindPrivate USING [FinderRecord, Search], TextEdit USING [GetRope, GetRuns], TextNode USING [RefTextNode, Offset], Rope USING [ROPE]; RegExpFind3Impl: CEDAR PROGRAM IMPORTS TextEdit, RegExpFindPrivate EXPORTS TextFind = { OPEN RegExpFindPrivate; Finder: TYPE = REF FinderRec; FinderRec: PUBLIC TYPE = FinderRecord; ROPE: TYPE = Rope.ROPE; Offset: TYPE = TextNode.Offset; RefTextNode: TYPE = TextNode.RefTextNode; UnImplemented: ERROR = CODE; SearchRopeBackwards: PUBLIC PROC [finder: Finder, rope: ROPE, start: Offset, len: Offset, interrupt: REF BOOL _ NIL] RETURNS [found: BOOLEAN, at, atEnd, before, after: Offset] = { [found, at, atEnd, before, after] _ RegExpFindPrivate.Search[finder, rope, NIL, start, len, FALSE, interrupt] }; TryBackwards: PUBLIC PROC [finder: Finder, text: RefTextNode, start: Offset, len: Offset, looksExact: BOOLEAN _ FALSE, interrupt: REF BOOL _ NIL] RETURNS [found: BOOLEAN, at, atEnd, before, after: Offset] = { [found, at, atEnd, before, after] _ RegExpFindPrivate.Search[finder, TextEdit.GetRope[text], TextEdit.GetRuns[text], start, len, looksExact, interrupt] }; }. LRegExpFind3Impl.mesa Last Edited by: Nix, December 21, 1983 12:45 pm Κœ˜Jšœ™J™/J˜šΟk ˜ Jšœ ˜ Icodešœœ˜/Kšœ œ˜"Kšœ œ˜%Kšœœœ˜K˜—KšΟbœœ˜Kšœ˜#Kšœ ˜Kšœ˜K˜Jšœœœ ˜Jšœ œœ˜&Kšœœœ˜Kšœœ˜Kšœ œ˜)Kšœœœ˜K˜šΟnœœœœ˜=Jš œœ œœœ˜6šœ œ'˜>˜#Jšœ'œœ ˜LJ˜———šŸ œœœ$˜=J˜Jš œ œœ œœœ˜7šœ œ'˜>˜#šœP˜PJšœ%˜%————K˜K˜—…—pX