compiler now generates full AST