code: func (p *binParser) read() int {
  
  	i, err := p.r.ReadByte()
  
  	c := int(i)
  	if err == io.EOF {
  		c = -1
  	} else {
  		p.n++
  	}
  
  	p.last = c
  
  	return c
  }
docs: // read reads one character (byte) from the stream, returning it in the for of an int.
  // Returning an int permits signaling an EOS with -1.