Add AST generation