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