DIRECTORY Rope, TextNode; DefDWIM: CEDAR DEFINITIONS = { ROPE: TYPE = Rope.ROPE; Location: TYPE = TextNode.Location; FindDef: Finder; Finder: TYPE = PROC [subjectRope: ROPE, from: Place, deep, verbose: BOOL, interrupt: REF BOOL _ NIL] RETURNS [fp: FoundPlace]; Place: TYPE = RECORD [fileName: ROPE, loc: Location, searchOrder: SearchOrder]; noplace: Place = [NIL, [NIL, -1958], bkwdThenFwd]; SearchOrder: TYPE = {fwdThenBkwd, bkwdThenFwd, fromStart}; FoundPlace: TYPE = RECORD [where: Place, nameEnd: Location]; Failure: ERROR [where: Place, why: ROPE]; Register: PROC [languageTest: LanguageTest, finder: Finder]; LanguageTest: TYPE = PROC [Place] RETURNS [BOOL]; }. ŽDefDWIM.mesa Mike Spreitzer January 22, 1987 9:54:08 pm PST Determines the language used and uses the Finder for that language. If verbose, pacifiers will be printed in the MessageWindow. If interrupt # NIL and interrupt^, then Failure is raised. Raises Failure[..] if can't find. Raises Failure[noplace, ..] if parse error. The name occurs in the definition at chars [where.loc .. nameEnd]. ΚM– "cedar" style˜code™ K™.—K˜KšΟk œ˜K˜šΟnœœ œ˜K˜Kšœœœ˜Kšœ œ˜#K˜šžœ ˜K™C—K˜šœœœœœ œœœœ˜~K™;Kšœ:™:Kšœ!™!K™+—K˜Kšœœœ œ+˜OKšœœœ˜2Kšœ œ)˜:šœ œœ#˜