A more or less proper AST is now returned