code: func (s *Scanner) Errorf(format string, a ...interface{}) {
  	str := fmt.Sprintf(format, a...)
  	val := s.r.s[s.r.pos().Offset:]
  	if len(val) > 2048 {
  		val = val[:2048]
  	}
  	err := fmt.Errorf("line %d column %d near \"%s\"%s (total length %d)", s.r.p.Line, s.r.p.Col, val, str, len(s.r.s))
  	s.errs = append(s.errs, err)
  }
docs: // Errorf tells scanner something is wrong.
  // Scanner satisfies yyLexer interface which need this function.