private LogicalExpression getLogicalExpression(QueryBuilderQueriesParser.LogicalExpressionContext context) { var ret = new LogicalExpression(); context.logicalTerm().ToList().ForEach(lt => ret.LogicalTerms.Add(getLogicalTerm(lt))); context.logicalOperator().ToList().ForEach(lo => { switch (lo.GetText()) { case "and": ret.LogicalOperators.Add(LogicalOperator.AND); break; case "or": ret.LogicalOperators.Add(LogicalOperator.OR); break; } }); return(ret); }
/// <summary> /// Exit a parse tree produced by <see cref="QueryBuilderQueriesParser.logicalExpression"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitLogicalExpression([NotNull] QueryBuilderQueriesParser.LogicalExpressionContext context) { }
/// <summary> /// Visit a parse tree produced by <see cref="QueryBuilderQueriesParser.logicalExpression"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitLogicalExpression([NotNull] QueryBuilderQueriesParser.LogicalExpressionContext context) { return(VisitChildren(context)); }