code: func (p *parser) ensure(index int) {
  	if p.lexOver {
  		// nothing more to grab
  		return
  	}
  
  	nb := index + 1
  
  	for len(p.tokens) < nb {
  		// fetch next token
  		tok := p.lex.NextToken()
  
  		// queue it
  		p.tokens = append(p.tokens, &tok)
  
  		if (tok.Kind == lexer.TokenEOF) || (tok.Kind == lexer.TokenError) {
  			p.lexOver = true
  			break
  		}
  	}
  }
docs: // Ensures there is token to parse at given index