public override Expression Visit(Expression node)
        {
            if (node is DirectoryExpression && _root != node)
            {
                _root = (DirectoryExpression)node;
                return(base.Visit(_root.RootExpression));
            }

            return(base.Visit(node));
        }
 public DirectoryExpression VisitDirectory(DirectoryExpression node)
 {
     _root = node;
     base.Visit(node.RootExpression);
     return(node);
 }
 public SingleResultExpression VisitSingleResult(SingleResultExpression node)
 {
     _root = node;
     base.Visit(node.RootExpression);
     return(node);
 }