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 Copyright Σ 1992 by Xerox Corporation. All rights reserved. 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]. Κq•NewlineDelimiter –(cedarcode) style™code™ Kšœ Οeœ1™