code: func (s *Scanner) readN(n int) string {
  	var buf bytes.Buffer
  	for i := 0; i < n; i++ {
  		ch := s.read()
  		if ch == eof {
  			break
  		}
  		buf.WriteRune(ch)
  	}
  	return buf.String()
  }
docs: // readN reads the next n characters and moves the position forward.