m3front/src/values/Variable.i3


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.

interface M3ID is in: