---------------------------------------------------------------------------
INTERFACE---------------------------------------------------------------------------ProcessEnv ; IMPORT TextTextTbl;
TYPE T = TextTextTbl.T;---------------------------------------------------------------------------
PROCEDURE Current() : T;
(* Get the complete environment of the current process. This will be the
same data structure for every call, so it should be considered
readonly. *)
---------------------------------------------------------------------------
PROCEDURE Copy(env : T) : T; (* Create a copy of environment `env'. *)---------------------------------------------------------------------------
PROCEDURE SystemRepr(env : T) : REF ARRAY OF TEXT;
(* Return the system representation of an environment, that is, an
array of TEXT entries of the form `name=value'. This can be
passed as parameter to Process.Create(). *)
---------------------------------------------------------------------------
PROCEDURE Names(env : T) : REF ARRAY OF TEXT; (* Return an array of all names in `env'. *)---------------------------------------------------------------------------
PROCEDURE Defined(env : T; name : TEXT) : BOOLEAN; (* <=> Variable `name' is defined in `env' . *)---------------------------------------------------------------------------
PROCEDURE Value(env : T; name : TEXT) : TEXT; (* Return the value of `name' in `env'. *)---------------------------------------------------------------------------
PROCEDURE Set(env : T; name : TEXT; value : TEXT); (* Set the value of `name' in `env' to `value'. *)---------------------------------------------------------------------------
PROCEDURE Delete(env : T; name : TEXT); (* Delete the variable `name' form `env'. *)---------------------------------------------------------------------------
PROCEDURE Add(env : T; env2 : T);
(* Add all entries from form `env2' to `env', overiding any already
defined ones. *)
END ProcessEnv.