A small change that takes advantage of a new capability of AST. I believe my solution is safe and standards-compliant, but I would appreciate a sanity check on that. If you think of a cleaner solution I'd be interested.
The one known failure mode is that the first AST error message could be printed to stderr using AST's default error handler, because astshim's error handler is not registered until the first call to `ast::assertOK`. However, I think it unlikely (because astshim calls `assertOK` often) and the consequences are minor.