/// <summary>
        /// Check MDX Syntax is validate
        /// </summary>
        /// <param name="mdxText"></param>
        /// <returns></returns>
        public static MDXSyntaxInfo checkMDXSyntax(String mdxText)
        {
            int           IsParseSuccessfully = 0;
            MDXSyntaxInfo info = new MDXSyntaxInfo();

            MDXParser.MDXParser parser = Parse(null, false, false, false, mdxText, out IsParseSuccessfully);
            if (parser != null && IsParseSuccessfully == 1)
            {
                info.IsValid = true;
            }
            else
            {
                info.IsValid        = false;
                info.SyntaxErrorMDX = mdxText;
                if (parser != null)
                {
                    info.SyntaxErrorMessage = parser.GetSSParser.m_Errors[0].Text;
                    info.Length             = parser.GetSSParser.m_Errors[0].Location.Length;
                    info.Column             = parser.GetSSParser.m_Errors[0].Location.Column;
                    info.Line = parser.GetSSParser.m_Errors[0].Location.Line;
                }
            }
            return(info);
        }
        /// <summary>
        /// Parse MDX Syntax
        /// </summary>
        /// <param name="text"></param>
        /// <param name="FillTree"></param>
        /// <param name="IsExpression"></param>
        /// <param name="TryAnother"></param>
        /// <param name="mdx"></param>
        /// <param name="IsParseSuccessfully"></param>
        /// <returns></returns>
        public static MDXParser.MDXParser Parse(string text, bool FillTree, bool IsExpression, bool TryAnother, String mdx, out int IsParseSuccessfully)
        {
            IsParseSuccessfully = 1;
            Locator l = new Locator();

            MDXParser.CubeInfo cb = null;
            if (cb == null)
            {
                cb = new MDXParser.CubeInfo();
            }
            //TextBoxSource src = new TextBoxSource(currentMdxEditor, l);
            Source src = new Source();

            MDXParser.MDXParser parser = new MDXParser.MDXParser(mdx, src, cb);

            try
            {
                if (IsExpression)
                {
                    parser.ParseExpression();
                }
                else
                {
                    parser.Parse(false);
                }
            }
            catch (MDXParserException exception)
            {
                IsParseSuccessfully = 0;
                if (TryAnother)
                {
                    try
                    {
                        IsParseSuccessfully = 1;
                        if (IsExpression)
                        {
                            parser.Parse();
                        }
                        else
                        {
                            parser.ParseExpression();
                        }
                        goto Label_016E;
                    }
                    catch (Exception)
                    {
                        //this.m_MessagesGrid.Populate(exception.Messages);
                        IsParseSuccessfully = 0;
                        return(parser);
                    }
                }
            }
            finally
            {
            }
Label_016E:
            if (FillTree)
            {
                MDXNode node = parser.GetNode();
            }
            return(parser);
        }