# Semantic Analyzer 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](https://en.wikipedia.org//wiki/Abstract_syntax_tree) generated by the [`rush-parser`](https://github.com/rush-rs/rush/tree/main/crates/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.