code: func (s *state) errRecover(errp *error) {
  	if e := recover(); e != nil {
  		switch e := e.(type) {
  		case runtime.Error:
  			*errp = s.errFromNode("%s: %v\n%v", s.callAnnotation(), e, string(debug.Stack()))
  		default:
  			*errp = s.errFromNode("%s: %v", s.callAnnotation(), e)
  		}
  	}
  }
docs: // errRecover is the handler that turns panics into returns from the top
  // level of Parse.