---------------------------------------------------------------------------
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.