Marker trait for all built-in entities.
A built-in procedure with its parameter information.
A built-in type with an implicit definition that the compiler must have special knowledge about.
A user-defined constant entity represented by a constant declaration.
An entity that represents some program object.
An environment is a stack of scopes with the innermost scope on the top.
An environment is a stack of scopes with the innermost scope on the top.
An entity that represents an error situation.
A built-in value of some type that is represented by a particular integer value.
A user-defined module represented by a module declaration.
Support for unique ids for named things.
A named entity.
Information about a particular parameter.
A parameter is a variable augmented with a passing mode.
A procedure entity represented by a procedure declaration.
A scope maps identifiers to entities.
A scope maps identifiers to entities.
An entity representing by a user-provided type declaration.
A user-defined type.
A variable entity including a reference to its types' definition.
A entity represented by names for whom we have seen more than one declaration so we are unsure what is being represented.
Static support for entity names.
An unknown entity, represented by names whose declarations are missing.
Built-in Boolean type.
Built-in Boolean type.
The default environment.
The default environment.
The default environment with pre-defined procedures added.
The default environment with pre-defined procedures added.
Define i to be e in the current scope of env, raising an error if the environment is empty.
Define i to be e in the current scope of env, raising an error if the environment is empty.
Enter a new empty scope nested within the given environment.
Enter a new empty scope nested within the given environment.
Built-in false constant.
Built-in false constant.
Built-in integer type.
Built-in integer type.
Return true if the given type is Boolean or an unknown type.
Return true if the given type is Boolean or an unknown type.
Return true if the entity is erroneous or is a constant.
Return true if the entity is erroneous or is a constant.
Say whether i is defined in any scope of env.
Say whether i is defined in any scope of env.
Say whether i is defined in an innermost scope of env (i.
Say whether i is defined in an innermost scope of env (i.e., in the current scope).
Say whether i is defined in an outer scope of env (i.
Say whether i is defined in an outer scope of env (i.e., not in the current scope).
Say whether i is defined in the given scope.
Say whether i is defined in the given scope.
Say whether i is defined in the current scope of env.
Say whether i is defined in the current scope of env.
Return true if the entity is an error, false otherwise.
Return true if the entity is an error, false otherwise.
Return true if the given type is integer or an unknown type.
Return true if the given type is integer or an unknown type.
Return true if the entity is erroneous or is a module.
Return true if the entity is erroneous or is a module.
Return true if the entity is erroneous or is a type.
Return true if the entity is erroneous or is a type.
Parameters are variables too.
Parameters are variables too.
Leave the outermost scope of the given environment, raising an error if the environment is empty.
Leave the outermost scope of the given environment, raising an error if the environment is empty.
Look up i in env, returning the mapped Entity if there is one, otherwise return e.
Look up i in env, returning the mapped Entity if there is one, otherwise return e. If scope is true, just search the innermost scope, otherwise search outwards in all scopes, returning the first Entity found, if any.
The built-in Read procedure.
Reset the environment module.
Reset the environment module.
Create a root environment, i.
Create a root environment, i.e., one that has a single scope containing the given bindings.
Built-in true constant.
Built-in true constant.
A type that is unknown, eg because the typed thing is erroneously defined.
A type that is unknown, eg because the typed thing is erroneously defined.
The built-in Write procedure.
The built-in WriteLn procedure.