code: func (s *Scanner) unread() {
  	if err := s.buf.UnreadRune(); err != nil {
  		panic(err) // this is user fault, we should catch it
  	}
  	s.srcPos = s.prevPos // put back last position
  }
docs: // unread unreads the previous read Rune and updates the source position