/// <summary>
        /// Bind a top option
        /// </summary>
        /// <param name="syntax">a syntax tree containing the top option to bind</param>
        /// <param name="rangeVariable">the range variable that iterates over the top level collection</param>
        /// <param name="path">the top level path</param>
        /// <returns>a nullable long representing this top option</returns>
        public static long?BindTop(SyntacticTree syntax, RangeVariable rangeVariable, ODataPath path)
        {
            if (syntax.Top != null)
            {
                if (rangeVariable == null || !path.EdmType().IsEntityCollection())
                {
                    throw new ODataException(ODataErrorStrings.MetadataBinder_QueryOptionNotApplicable("$top"));
                }

                return(MetadataBinder.ProcessTop(syntax.Top));
            }

            return(null);
        }