Abstract Syntax Tree (AST) This component is responsible for: Converting parse tree to AST (optional) Reformatting the code Doing name analysis Doing type analysis (optional) Outputting the formatted code with type annotations Documentation