code: func (p *Lexer) Byte() (byte, error) {
  	if p.lastByte < bufSize && p.r >= p.lastByte {
  		p.r = p.lastByte + 1
  		return 0, ErrEOS
  	}
  
  	c := p.buf[p.r]
  	p.r++
  	p.fill()
  	return c, nil
  }
docs: // Byte reads and returns a single byte.
  // If no byte is available, returns 0 and an error.