func (p *parser) recover(err *error) {
	e := recover()
	if e != nil {
		// We only want to capture errors that we panic on.
		if _, ok := e.(runtime.Error); ok {
			panic(e)
		}
		*err = e.(error)
	}
	return
}
// recover is a handler that turns panics into error returns from Parse.  The
// panic is retained if it is of the runtime.Error variety.
recover is a handler that turns panics into error returns from Parse.  The
panic is retained if it is of the runtime.Error variety.
// recover is a handler that turns panics into error returns from Parse . The // panic is retained if it is of the runtime . Error variety .
func (p *parser) recover(err *error) {
	e := recover()
	if e != nil {
		if _, ok := e.(runtime.Error); ok {
			panic(e)
		}
		*err = e.(error)
	}
	return
}
func ( p * parser ) recover ( err * error ) { e := recover ( ) if e != nil { if _ , ok := e . ( runtime . Error ) ; ok { panic ( e ) } * err = e . ( error ) } return }
recover is a handler that turns panics into error returns from Parse.
recover is a handler that turns panics into error returns from Parse .
// We only want to capture errors that we panic on.