A crate which performs semantic analysis and tree-annotation on rush programs.
Almost every rush compiler backend requires the semantic correctness of its input tree. Furthermore, the backends often require precise type information at compile time in order to compile the correct output.
Therefore, the analyzer traverses an
AST generated by the
rush-parser
and adds type information whilst validating its semantic correctness.
This way, many compiler backends can be significantly simplified due to the lack of unnecessary checks during program compilation.