Home | History | Annotate | Download | only in xml

Lines Matching defs:predicate

44 Step::Step(Axis axis, const NodeTest& nodeTest, const Vector<Predicate*>& predicates)
60 // E.g., there is no need to build a set of all "foo" nodes to evaluate "foo[@bar]", we can check the predicate while enumerating.
61 // This optimization can be applied to predicates that are not context node list sensitive, or to first predicate that is only context position sensitive, e.g. foo[position() mod 2 = 0].
62 Vector<Predicate*> remainingPredicates;
64 Predicate* predicate = m_predicates[i];
65 if ((!predicate->isContextPositionSensitive() || m_nodeTest.mergedPredicates().isEmpty()) && !predicate->isContextSizeSensitive() && remainingPredicates.isEmpty()) {
66 m_nodeTest.mergedPredicates().append(predicate);
68 remainingPredicates.append(predicate);
100 Predicate* predicate = m_predicates[i];
101 if (predicate->isContextPositionSensitive() || predicate->isContextSizeSensitive())
106 Predicate* predicate = m_nodeTest.mergedPredicates()[i];
107 if (predicate->isContextPositionSensitive() || predicate->isContextSizeSensitive())
123 Predicate* predicate = m_predicates[i];
135 if (predicate->evaluate())
219 // Only the first merged predicate may depend on position.
222 const Vector<Predicate*>& mergedPredicates = nodeTest.mergedPredicates();
224 Predicate* predicate = mergedPredicates[i];
228 if (!predicate->evaluate())