public void Visit(CreateTransformationTableNode node) { _walker = _walker.NextChild(); _visitor.SetScope(_walker.Scope); node.Accept(_visitor); _walker = _walker.Parent(); }
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(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); }