code: func expect(parser *Parser, kind lexer.TokenKind) (lexer.Token, error) {
  	token := parser.Token
  	if token.Kind == kind {
  		return token, advance(parser)
  	}
  	descp := fmt.Sprintf("Expected %s, found %s", kind, lexer.GetTokenDesc(token))
  	return token, gqlerrors.NewSyntaxError(parser.Source, token.Start, descp)
  }
docs: // If the next token is of the given kind, return that token after advancing
  // the parser. Otherwise, do not change the parser state and return error.