Context Conditions (Abstract Syntax Tree)

These are the (mostly) complete static context conditions for SIMPLE; you have to enforce them in the assignment where you build the abstract syntax tree for expressions and instructions. A subset of these already had to be enforced when we built the symbol table for declarations.

The only things missing now are (a) properties of the target architecture, for example regarding the size of an INTEGER, and (b) properties that can (in general) only be checked at runtime, for example array bounds.