(* Copyright (C) 1989, Digital Equipment Corporation *) (* All rights reserved. *) (* See the file COPYRIGHT for a full description. *) (* File: Value.i3 *) (* Last modified on Fri Feb 23 03:14:18 1990 by muller *) (* modified on Sat Feb 10 20:55:56 1990 by kalsow *) INTERFACE Value; IMPORT M3, Type, Wr, String; TYPE T = M3.Value; TYPE Class = {Expr, Var, Type, Exception, Procedure, Module, Field, Method, Formal, Error}; PROCEDURE Bind (t: T); PROCEDURE TypeOf (t: T): Type.T; PROCEDURE TypeCheck (t: T); PROCEDURE Load (t: T): M3.Temp; PROCEDURE Write (t: T); PROCEDURE SelectOne (a, b: T): T; PROCEDURE Declare0 (t: T); (* generate the C declaration for t; initialize it to the user specified value if possible *) PROCEDURE Declare1 (t: T); (* generate language required initialization for t if Declare0 did nothing *) PROCEDURE Declare2 (t: T); (* generate the user specified initialization for t *) PROCEDURE NoteUse (t: T); PROCEDURE ClassOf (t: T): Class; PROCEDURE Fingerprint (t: T; map: Type.Map; wr: Wr.T); PROCEDURE GenStorageClass (t: T; considerExternal: BOOLEAN := TRUE); PROCEDURE IsExternal (t: T): BOOLEAN; PROCEDURE ToExpr (t: T): M3.Expr; PROCEDURE ToType (t: T): M3.Type; PROCEDURE Initialize (); END Value.