<\body> The compiler uses several special symbols for representing auxiliary programs and storing special information in environments. A hopefully exhaustive list follows below. We will have to modify some names and ensure that no name clashes can occur. >> Add section on global variables. <\description> >This is a special converter for an expression of any type into . >Programs represent sequential blocks in which until have already been declared. In particular, the declaration phase transforms input programs of the form into auxiliary programs of the form (prg1', ..., prgk')> which will next be passed to the routine . >Programs represent read-only field access for class fields. >Programs represent writable field access for class fields. >Programs represent methods of classes and result in the possibility to denote directly by inside . >Programs correspond constructors for the class . >The program stands for an unnested lambda expression with given , parameters , and return type . The parameter stands for non-global variables which are referred to from within the , without being declared in the and without being among the parameters. >This construct is used for auxiliary programs during the building phase. It corresponds to a block of commands which is not directly a . >> A cleaner solution might be implemented. <\description> (sym)>>If is a macro, then this environment variable is set to the body of that macro. >> At the moment, macros with parameters are not yet implemented. >> Macros importation is not yet handled either for modules. (also )>This variable contains the expected return type when compiling the body of a lambda expression. (also )>This variable contains the type of the environment under consideration, among , , and . (also )>Name of the current class or module being declared. (also >Current declaration mode for classes and modules among , , or . (also )>Current access mode for declarations among and . (also )>Visibility of declarations among and . (also )>Overloading mode for declarations among (variables are completely redeclared in inner environment) or (variables overload variables of the same name in the parent environment). >> Not yet implemented. (also )>Vector with all fields of the current class being declared. (also )>Environment which is used for the compilation of methods. Methods are rewritten into the form and the primitive has the effect of selecting the method environment. This environment has macro declarations this.name> for all methods . <\description> >The environment variable with the list of all converter definitions in the current environement. This list of converters is constructed during the declaration phase. All other environment variables for converter management below are only used for caching potentially expensive computations. (F, T)>>The converter from an atomic type into another atomic type . This converter is given in the form of a function which takes a compiled program of type on input and returns the compiled converted program of type . >Penalty for the conversion from to . >Left transitivity of the converter from to ( or ). >Right transitivity of the converter from to ( or ). >Table with incoming converters. Given a type , the value is again a table and is set if there is a converter from to . >Table with outgoing converters. Given a type , the value is again a table and is set if there is a converter from to . >List of converters (of type ) from a general type into . >List of possible joins between types and (used by if-then-else). >List of possible function applications for a function of type to a list of arguments of type . . If you don't have this file, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.>