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