예제 #1
0
        public object VisitParensNode(ParensNode node, Context parameter)
        {
            if (node.IsAttachedWithValue)
            {
                return(null);
            }

            var context = new Context(parameter);

            if (node.IsEmpty)
            {
                context.IsAvailable = true;
            }

            foreach (var child in node.Children)
            {
                child.Accept(this, context);
            }

            if (context.IsAvailable)
            {
                node.OpenedParensNode.Accept(this, parameter);
                parameter.IsAvailable = true;
                parameter.AppendRawSql(context.GetRawSql());
                parameter.AppendFormattedSql(context.GetFormattedSql());
                parameter.AddAllParameters(context.SqlParameters);
                node.ClosedParensNode.Accept(this, parameter);
            }
            return(null);
        }
예제 #2
0
        private void ParseOpenedParens()
        {
            var parensNode = new ParensNode(Location);

            AppendNode(parensNode);
            _nodeStack.Push(parensNode);
        }