code: func (r *importReader) readByte() byte {
  	c, err := r.b.ReadByte()
  	if err == nil {
  		r.buf = append(r.buf, c)
  		if c == 0 {
  			err = errNUL
  		}
  	}
  	if err != nil {
  		if err == io.EOF {
  			r.eof = true
  		} else if r.err == nil {
  			r.err = err
  		}
  		c = 0
  	}
  	return c
  }
docs: // readByte reads the next byte from the input, saves it in buf, and returns it.
  // If an error occurs, readByte records the error in r.err and returns 0.