(* Copyright (C) 1989, Digital Equipment Corporation *) (* All rights reserved. *) (* See the file COPYRIGHT for a full description. *) (* File: Scope.i3 *) (* Last modified on Thu Apr 26 22:57:36 1990 by muller *) (* modified on Sat Feb 10 20:49:45 1990 by kalsow *) INTERFACE Scope; IMPORT M3, String, Value, Type; TYPE T = M3.Scope; ValueList = UNTRACED REF ARRAY OF Value.T; Visitor = PROCEDURE (node: Value.T); VAR Initial: T; PROCEDURE PushNew (open: BOOLEAN; name: String.T; viaFrame := FALSE): T; PROCEDURE PopNew (); PROCEDURE New1 (obj: Value.T): T; PROCEDURE Push (t: T); PROCEDURE Pop (); PROCEDURE Top (): T; PROCEDURE OuterMost (t: T): BOOLEAN; PROCEDURE Insert (o: Value.T); PROCEDURE LookUp (name: String.T): Value.T; PROCEDURE LookUpInScope (t: T; name: String.T): Value.T; PROCEDURE LookUpQID (READONLY q: String.QID): Value.T; PROCEDURE EmitFrameName (t: T): BOOLEAN; PROCEDURE EmitLocalFrameName (t: T): BOOLEAN; PROCEDURE EmitFrameType (t: T); PROCEDURE GenFrameTypes (); PROCEDURE ForEach (t: T; v: Visitor); PROCEDURE ToList (t: T; VAR objs: ValueList; VAR cnt: INTEGER); PROCEDURE Seal (t: T); PROCEDURE Bind (t: T; finishDelays: BOOLEAN); PROCEDURE TypeCheck (t: T; finishDelays: BOOLEAN); PROCEDURE Enter (t: T); PROCEDURE Generate (t: T); PROCEDURE Exit (t: T); PROCEDURE WarnUnused (t: T); PROCEDURE NameToPrefix (v: Value.T; VAR p: String.Stack; considerExternal := TRUE); PROCEDURE GenName (v: Value.T); PROCEDURE Initialize (); END Scope.