/// <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);
        }