code: func (p *parser) shift() *lexer.Token {
  	var result *lexer.Token
  
  	p.ensure(0)
  
  	result, p.tokens = p.tokens[0], p.tokens[1:]
  
  	// check error token
  	if result.Kind == lexer.TokenError {
  		errToken(result, "Lexer error")
  	}
  
  	return result
  }
docs: // shift returns next token and remove it from the tokens buffer
  //
  // Panics if next token is `TokenError`