Ejemplo n.º 1
0
        public void Visit(DescNode node)
        {
            _walker = _walker.NextChild();

            node.Accept(_visitor);

            _walker = _walker.Parent();
        }
        public void Visit(CreateTransformationTableNode node)
        {
            _walker = _walker.NextChild();
            _visitor.SetScope(_walker.Scope);

            node.Accept(_visitor);

            _walker = _walker.Parent();
        }
Ejemplo n.º 3
0
        public void Visit(CteInnerExpressionNode node)
        {
            _walker = _walker.NextChild();
            _visitor.SetScope(_walker.Scope);

            node.Value.Accept(this);
            node.Accept(_visitor);

            _walker = _walker.Parent();
            _visitor.SetScope(_walker.Scope);
        }
Ejemplo n.º 4
0
        public void Visit(DescNode node)
        {
            _walker = _walker.NextChild();
            _visitor.SetScope(_walker.Scope);

            node.From.Accept(this);
            node.Accept(_visitor);

            _walker = _walker.Parent();
            _visitor.SetScope(_walker.Scope);
        }
        private void TraverseSetOperator(SetOperatorNode node)
        {
            _walker = _walker.NextChild();
            _visitor.SetScope(_walker.Scope);

            if (node.Right is SetOperatorNode)
            {
                var nodes = new Stack <SetOperatorNode>();
                nodes.Push(node);

                node.Left.Accept(this);
                _visitor.IncrementMethodIdentifier();

                while (nodes.Count > 0)
                {
                    var current = nodes.Pop();

                    if (current.Right is SetOperatorNode operatorNode)
                    {
                        nodes.Push(operatorNode);

                        _walker = _walker.NextChild();
                        _visitor.SetScope(_walker.Scope);

                        operatorNode.Left.Accept(this);
                        _visitor.IncrementMethodIdentifier();

                        current.Accept(_visitor);
                    }
                    else
                    {
                        current.Right.Accept(this);
                        _visitor.IncrementMethodIdentifier();

                        current.Accept(_visitor);
                    }
                }
            }
            else
            {
                node.Left.Accept(this);

                _visitor.IncrementMethodIdentifier();

                node.Right.Accept(this);

                node.Accept(_visitor);

                _walker = _walker.Parent();
                _visitor.SetScope(_walker.Scope);
            }
        }
        public void Visit(MultiStatementNode node)
        {
            _walker = _walker.NextChild();
            _visitor.SetScope(_walker.Scope);

            foreach (var cNode in node.Nodes)
            {
                cNode.Accept(this);
            }
            node.Accept(_visitor);

            _walker = _walker.Parent();
            _visitor.SetScope(_walker.Scope);
        }
Ejemplo n.º 7
0
        public void Visit(CteExpressionNode node)
        {
            _walker = _walker.NextChild();
            _visitor.SetScope(_walker.Scope);

            foreach (var exp in node.InnerExpression)
            {
                exp.Accept(this);
            }
            node.OuterExpression.Accept(this);
            node.Accept(_visitor);

            _walker = _walker.Parent();
            _visitor.SetScope(_walker.Scope);
        }
Ejemplo n.º 8
0
        public void Visit(InternalQueryNode node)
        {
            _walker = _walker.NextChild();

            node.From.Accept(this);
            node.Where.Accept(this);
            node.Select.Accept(this);

            node.Take?.Accept(this);
            node.Skip?.Accept(this);
            node.GroupBy?.Accept(this);
            node.Refresh?.Accept(this);
            node.Accept(_visitor);

            _walker = _walker.Parent();
        }
Ejemplo n.º 9
0
        public void Visit(QueryNode node)
        {
            _walker = _walker.NextChild();
            _visitor.SetScope(_walker.Scope);

            node.From.Accept(this);
            node.Where?.Accept(this);
            node.Select.Accept(this);

            node.Take?.Accept(this);
            node.Skip?.Accept(this);
            node.GroupBy?.Accept(this);
            node.OrderBy?.Accept(this);
            node.Accept(_visitor);

            _walker = _walker.Parent();
            _visitor.SetScope(_walker.Scope);
        }
        public void Visit(InternalQueryNode node)
        {
            _walker = _walker.NextChild();
            _visitor.SetScope(_walker.Scope);

            _visitor.SetMethodAccessType(MethodAccessType.TransformingQuery);
            _visitor.SetQueryIdentifier(node.From.Alias);
            node.Refresh?.Accept(this);
            node.From.Accept(this);
            node.Where?.Accept(this);
            node.Select.Accept(this);
            node.Take?.Accept(this);
            node.Skip?.Accept(this);
            node.GroupBy?.Accept(this);
            node.Accept(_visitor);

            _walker = _walker.Parent();
        }