greatly improve parser error reporting