<> <> DIRECTORY AMModel, AMTypes, Interpreter, InterpreterOps, IO, PPTree, Rope, SafeStorage, SymTab; StatementInterpreter: CEDAR DEFINITIONS = BEGIN ROPE: TYPE = Rope.ROPE; Context: TYPE = AMModel.Context; SymbolTable: TYPE = SymTab.Ref; Tree: TYPE = InterpreterOps.Tree; EvalHead: TYPE = InterpreterOps.EvalHead; Type: TYPE = SafeStorage.Type; nullType: Type = SafeStorage.nullType; TV: TYPE = AMTypes.TV; InterpretStatement: PROC [blockAsRope: ROPE, context: Context _ NIL, symTab: SymbolTable _ NIL, abort: Interpreter.AbortClosure _ Interpreter.nilAbortClosure] RETURNS [errorRope: ROPE]; <> ParseBlock: PROC [asRope: ROPE, errout: IO.STREAM] RETURNS [asTree: Tree]; ParseModule: PROC [asRope: ROPE, errout: IO.STREAM] RETURNS [asTree: Tree]; Interp: PROC [asTree: Tree, head: EvalHead, nest: BOOL _ TRUE]; <> <> Enable: PROC [catches: REF PPTree.Node, head: EvalHead, inner: PROC]; <> END.