<< JunoOldParseWindow.mesa (ex OldParseWindow.mesa)>> <<>> <> <> <> << Maintains a text viewer containing the current set of Juno procedures. Exports procedures that search this list and that append new procedures to it. >> << TO FIX: Everything.>> DIRECTORY Atom, ViewerClasses, JunoNewParser, Rope; JunoOldParseWindow: DEFINITIONS = BEGIN OPEN Parser: JunoNewParser; ROPE: TYPE = Rope.ROPE; << - - - - XXX>> << Moved here from JunoStorage on April 6, 1984 3:52:04 pm PST; need to be fixed!!!>> GetBody: PUBLIC PROC [name: REF ANY] RETURNS [REF ANY]; GetLocals: PUBLIC PROC [name: REF ANY] RETURNS [REF ANY]; AddDef: PUBLIC PROC [name, locals, body: REF ANY]; -- adds to lambdaAlist the definition of name << - - - - XXX>> Handle: TYPE = REF HandleRep; NewHandle: PROC [v: ViewerClasses.Viewer] RETURNS [h: Handle]; HandleRep: TYPE = RECORD [ ph: Parser.Handle, viewer: ViewerClasses.Viewer, WellFormed: SyntacticPredicate, content: LIST OF NodeContent, contentValid: BOOL]; NodeContent: TYPE = RECORD [text1: ROPE, text2: ROPE, tree: REF ANY]; SyntacticPredicate: TYPE = PROC [f: REF ANY] RETURNS [VerdictAndCulprit]; VerdictAndCulprit: TYPE = RECORD [verdict: Verdict, culprit: REF ANY]; <> Verdict: TYPE = {Yes, No, OfCourseNot}; -- Yes == innocent HasForm: PROC[f: REF ANY, op: ATOM, Arg1: SyntacticPredicate, Arg2: SyntacticPredicate _ NIL] RETURNS [VerdictAndCulprit]; < Arg2 = NIL).>> Or: PROC [aw1, aw2: VerdictAndCulprit] RETURNS [r: VerdictAndCulprit]; ParseViewer: PUBLIC PROC [pw: Handle]; AddTree: PUBLIC PROC[pw: Handle, tree: REF]; <> AddText: PUBLIC PROC[pw: Handle, text1: ROPE, text2: ROPE]; <> AddOp: PROC[h: Handle, op: ROPE, alias: ROPE, -- alternate form; op is preferred bp: INTEGER, f: OperatorType, c: ROPE, u: INT _ 0]; OperatorType: TYPE = {infix, matchfix, subfixMatchfix, prefix, infixPrefix, closefix}; END.