Пример #1
0
        private void ParseIfBlockComment()
        {
            var ifBlockNode = new IfBlockNode();

            AppendNode(ifBlockNode);
            _nodeStack.Push(ifBlockNode);
            var expression = SqlTokenHelper.Extract(_tokenType, _token);
            var ifNode     = new IfNode(Location, expression, _token);

            ifBlockNode.IfNode = ifNode;
            _nodeStack.Push(ifNode);
        }
Пример #2
0
        private bool HandleIfNode(IfBlockNode node, Context parameter)
        {
            var ifNode     = node.IfNode;
            var expression = ifNode.Expression;
            var isValid    = ExpressionEvaluator.Evaluate(expression, _propertyValues);

            if (isValid)
            {
                ifNode.Accept(this, parameter);
                return(true);
            }

            return(false);
        }
Пример #3
0
        public object VisitIfBlockNode(IfBlockNode node, Context parameter)
        {
            if (!HandleIfNode(node, parameter))
            {
                if (!HandleElseifNode(node, parameter))
                {
                    HandleElseNode(node, parameter);
                }
            }

            var endNode = node.EndNode;

            return(endNode.Accept(this, parameter));
        }
Пример #4
0
        private bool HandleElseifNode(IfBlockNode node, Context parameter)
        {
            foreach (var elseifNode in node.ElseifNodes)
            {
                var expression = elseifNode.Expression;
                var isValid    = ExpressionEvaluator.Evaluate(expression, _propertyValues);
                if (isValid)
                {
                    elseifNode.Accept(this, parameter);
                    return(true);
                }
            }

            return(false);
        }
Пример #5
0
        private void HandleElseNode(IfBlockNode node, Context parameter)
        {
            var elseNode = node.ElseNode;

            elseNode?.Accept(this, parameter);
        }