Semantic analysis is the phase in which the compiler:
This phase performs semantic checks such as:
Semantic analysis usually requires a complete parse tree, meaning that this phase logically follows the parsing phase, and logically precedes the code generation phase.