예제 #1
0
        Expression INodeVisitor <Expression, ExpressionNodeVisitorInput> .VisitComplexNode(ComplexNode node, ExpressionNodeVisitorInput input)
        {
            Expression expression = null;

            foreach (var childNode in node.Nodes)
            {
                expression =
                    expression == null
                        ? childNode.Accept(this, input)
                        : childNode.LogicalOperator == LogicalOperator.And
                            ? ExpressionEx.AndAlso(expression, childNode.Accept(this, input))
                            : ExpressionEx.OrElse(expression, childNode.Accept(this, input));
            }

            return(expression);
        }