<<>> <> <> <> <> <> <> <> DIRECTORY IO USING [STREAM], Rope USING [ROPE], SpellingWordMap USING [CharSet], TiogaOpsDefs USING [Location, Ref, SelectionGrain], ViewerClasses USING [Viewer]; SpellingToolShared: CEDAR DEFINITIONS = { ROPE: TYPE ~ Rope.ROPE; STREAM: TYPE = IO.STREAM; CharSet: TYPE = SpellingWordMap.CharSet; SelectionRec: TYPE = RECORD[ viewer: ViewerClasses.Viewer, start, end: TiogaOpsDefs.Location, level: TiogaOpsDefs.SelectionGrain, caretBefore, pendingDelete: BOOL]; Selection: TYPE = REF SelectionRec; MapWordsInSelection: PROC [start, end: TiogaOpsDefs.Location, alphabetic: CharSet, f: PROC [REF TEXT, REF ANY, INT] RETURNS [BOOL], forwards: BOOL] RETURNS [premature: BOOL ¬ FALSE, wordStart, wordEnd: TiogaOpsDefs.Location]; <> ToRope: PROC [Selection] RETURNS [ROPE]; ProcessSelection: PROC [forceEOD: BOOL ¬ FALSE, defEOD: BOOL ¬ TRUE, forwards: BOOL] RETURNS [Processed]; <> Processed: TYPE ~ RECORD [s: Selection, alphabetic: CharSet, wasExtended: BOOL]; CheckMiddleOfWord: PROC[s: Selection, alphabetic: CharSet]; FirstWithin: PROC [r: TiogaOpsDefs.Ref] RETURNS [first: TiogaOpsDefs.Ref]; AdjustCharSet: PROC [org: CharSet, add, rem: ROPE] RETURNS [CharSet]; <> }.