Copyright (C) 1994, Digital Equipment Corp.
File: Variable.i3
Last Modified On Tue Dec 20 15:08:50 PST 1994 By kalsow
Modified On Fri Apr 27 03:11:00 1990 By muller
INTERFACE Variable;
IMPORT M3ID, Type, Value, Scope, Decl, Target, CG, Tracer;
TYPE
T <: Value.T;
PROCEDURE ParseDecl (READONLY att: Decl.Attributes);
PROCEDURE New (name: M3ID.T; used: BOOLEAN): T;
doesn't insert the object into any scope....
PROCEDURE NewFormal (formal: Value.T; name: M3ID.T): T;
PROCEDURE BindType (t: T; type: Type.T;
indirect, readonly, open_array_ok, needs_init: BOOLEAN);
PROCEDURE Split (t: T; VAR type: Type.T; VAR indirect, readonly: BOOLEAN);
PROCEDURE IsFormal (t: T): BOOLEAN;
PROCEDURE HasClosure (t: T): BOOLEAN;
PROCEDURE NeedsAddress (t: T);
PROCEDURE SetBounds (t: T; READONLY min, max: Target.Int);
PROCEDURE GetBounds (t: T; VAR min, max: Target.Int);
PROCEDURE Load (t: T);
PROCEDURE LoadLValue (t: T);
PROCEDURE SetLValue (t: T);
PROCEDURE CGName (t: T; VAR unit: CG.Var; VAR offset: INTEGER);
return the back-end address of the variable.
PROCEDURE NeedGlobalInit (t: T): BOOLEAN;
PROCEDURE InitGlobal (t: T);
PROCEDURE GenGlobalMap (s: Scope.T): INTEGER;
PROCEDURE ParseTrace (): Tracer.T;
PROCEDURE BindTrace (t: T; x: Tracer.T);
PROCEDURE CheckTrace (x: Tracer.T; VAR cs: Value.CheckState);
PROCEDURE ScheduleTrace (t: T);
END Variable.