public void Visit(PseudoFunction selector)
 {
   switch (selector.Type)
   {
     case PseudoTypes.FunctionNot:
       var visitor = new MatchVisitor(new HtmlQueryEngine());
       var sel = selector.Body as ISelector;
       _matches = _matches.Where(n =>
       {
         visitor.Initialize(n);
         sel.Visit(visitor);
         return !visitor.IsMatch();
       });
       break;
     case PseudoTypes.FunctionContains:
     case PseudoTypes.FunctionDir:
     default:
       NotSupported();
       break;
   }
 }
 public void Visit(PseudoFunction selector)
 {
   var arg = selector.Body as ISelector;
   if (arg != null) arg.Visit(this);
 }
 public void Visit(PseudoFunction selector)
 {
   this.Visit((PseudoSelector)selector);
   _writer.Write('(');
   var bodySelect = selector.Body as ISelector;
   if (bodySelect == null)
   {
     _writer.Write(selector.Body);
   }
   else
   {
     bodySelect.Visit(this);
   }
   _writer.Write(')');
 }