public Accumulator(DomElement root, DomQuery elements, Evaluator eval) { this.root = root; this.elements = elements; this.eval = eval; }
static DomQuery FilterOut(ICollection<DomElement> elements, ICollection<DomElement> outs) { DomQuery output = new DomQuery(); foreach (DomElement el in elements) { bool found = false; foreach (DomElement oe in outs) { if (el.Equals(oe)) { found = true; break; } } if (!found) output.Add(el); } return output; }
public static DomQuery Collect(Evaluator eval, DomElement root) { DomQuery elements = new DomQuery(); new NodeTraversor(new Accumulator(root, elements, eval)).Traverse(root); return elements; }