AST + exceptions