public override Expression VisitConditionalOrExpression([NotNull] RuleEngineParser.ConditionalOrExpressionContext context) { var conditionalAndExpressionContexts = context.conditionalAndExpression(); var leftExpression = VisitConditionalAndExpression(conditionalAndExpressionContexts[0]); for (int i = 1; i < conditionalAndExpressionContexts.Length; i++) { var rightExpression = VisitConditionalAndExpression(conditionalAndExpressionContexts[i]); leftExpression = Expression.MakeBinary(ExpressionType.OrElse, leftExpression, rightExpression); } return(leftExpression); }
/// <summary> /// Visit a parse tree produced by <see cref="RuleEngineParser.conditionalOrExpression"/>. /// <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 VisitConditionalOrExpression([NotNull] RuleEngineParser.ConditionalOrExpressionContext context) { return(VisitChildren(context)); }