/// <summary> /// Preenche os dados da instancia com a expressões informadas. /// </summary> /// <param name="expressions"></param> private void Fill(List <Text.InterpreterExpression.Expression> expressions) { int ownerIndex; int aliasIndex; GetParameters(expressions, out ownerIndex, out aliasIndex); IEnumerator <Text.InterpreterExpression.Expression> enumerator = null; if (aliasIndex >= 0) { enumerator = (IEnumerator <Text.InterpreterExpression.Expression>)expressions.Take(aliasIndex).GetEnumerator(); } else { enumerator = (IEnumerator <Text.InterpreterExpression.Expression>)expressions.GetEnumerator(); } if (enumerator.MoveNext()) { _term = ConditionalParser.GetContainer(ref enumerator, new Text.InterpreterExpression.ContainerChars('(', ')')); } if (aliasIndex >= 0 && _alias == null) { _alias = expressions[aliasIndex + 1].Text; } }
/// <summary> /// Preenche os dados da instancia com a expressões informadas. /// </summary> /// <param name="expressions"></param> private void Fill(List <Colosoft.Text.InterpreterExpression.Expression> expressions) { var enumerator = (IEnumerator <Text.InterpreterExpression.Expression>)expressions.GetEnumerator(); if (enumerator.MoveNext()) { _term = ConditionalParser.GetContainer(ref enumerator, new Text.InterpreterExpression.ContainerChars('(', ')')); } }
/// <summary> /// Executa um parse na expressão informada. /// </summary> /// <param name="expression"></param> /// <returns></returns> public static ConditionalTerm ParseTerm(string expression) { if (string.IsNullOrEmpty(expression)) { throw new ArgumentNullException("expression"); } var container = ConditionalParser.Parse(expression); if (container.ConditionalsCount == 1) { return(container.Conditionals.First()); } return(container); }
/// <summary> /// Preenche os dados da instancia com a expressões informadas. /// </summary> /// <param name="expressions"></param> private void Fill(List <Colosoft.Text.InterpreterExpression.Expression> expressions) { var last = expressions.Last(); if (last.Token == (int)Parser.SqlTokenID.kDesc) { _reverse = true; } if (last.Token == (int)Parser.SqlTokenID.kAsc || last.Token == (int)Parser.SqlTokenID.kDesc) { expressions.RemoveAt(expressions.Count - 1); } var enumerator = (IEnumerator <Text.InterpreterExpression.Expression>)expressions.GetEnumerator(); if (enumerator.MoveNext()) { _term = ConditionalParser.GetContainer(ref enumerator, new Text.InterpreterExpression.ContainerChars('(', ')')); } }
/// <summary> /// Executa o parse da expressão para um ConditionalTerm. /// </summary> /// <param name="expression"></param> /// <returns></returns> public static ConditionalTerm ParseTerm(string expression) { return(ConditionalParser.ParseTerm(expression)); }
/// <summary> /// Executa o parse da expressão para um container. /// </summary> /// <param name="expression"></param> /// <param name="parameters"></param> /// <returns></returns> public static ConditionalContainer Parse(string expression, params QueryParameter[] parameters) { return(ConditionalParser.Parse(expression).Add(parameters)); }