code: func (pctx *parseCtx) peek() *Token {
  	if pctx.peekCount < 0 {
  		select {
  		case <-pctx.Context.Done():
  			return &eofToken
  		case t, ok := <-pctx.lexsrc:
  			if !ok {
  				return &eofToken
  			}
  			pctx.peekCount++
  			pctx.peekTokens[pctx.peekCount] = t
  		}
  	}
  	return pctx.peekTokens[pctx.peekCount]
  }
docs: // peek the next token. this operation fills the peekTokens
  // buffer. `next()` is a combination of peek+advance.
  //
  // note: we do NOT check for peekCout > 2 for efficiency.
  // if you do that, you're f*cked.