Enum Environment: Just a set of names that are valid enums.
Enum Environment: Just a set of names that are valid enums. No need to remember fields etc, because they are integers anyway and no further checking is done in C
label environment: stores which labels are reachable from a goto.
label environment: stores which labels are reachable from a goto.
the environment is filled upon function entry for the entire function and just stores under which condition a label is defined
for struct and union ConditionalTypeMap represents for the fields of the struct
*** Variable-Typing context (collects all top-level and local declarations) variables with local scope overwrite variables with global scope
*** Variable-Typing context (collects all top-level and local declarations) variables with local scope overwrite variables with global scope
invoked before every external decl, statement and expression with the environment of that node
invoked before every external decl, statement and expression with the environment of that node
for example to debug the environment
mixed in from CEnvCache
invoked before checking an external declaration (for example used for progress reports)
invoked before checking an external declaration (for example used for progress reports)
error reporting for type errors
error reporting for type errors
invoked after typing an expression
invoked after typing an expression
refined by CTypeCache if desired
invoked after typing a function definition (top level declaration, not nested function)
invoked after typing a function definition (top level declaration, not nested function)