Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ BuildOnePredicate()

static QilNode System.Xml.Xsl.XPath.XPathBuilder.BuildOnePredicate ( QilNode nodeset,
QilNode predicate,
bool isReverseStep,
XPathQilFactory f,
FixupVisitor fixupVisitor,
ref int numFixupCurrent,
ref int numFixupPosition,
ref int numFixupLast )
inlinestaticinherited

Definition at line 725 of file XPathBuilder.cs.

726 {
727 nodeset = f.EnsureNodeSet(nodeset);
729 if (numFixupLast != 0 && fixupVisitor.CountUnfixedLast(predicate) != 0)
730 {
732 QilIterator qilIterator2 = f.Let(f.XsltConvert(f.Length(qilIterator), XmlQueryTypeFactory.DoubleX));
734 predicate = fixupVisitor.Fixup(predicate, qilIterator3, qilIterator2);
735 numFixupCurrent -= fixupVisitor.numCurrent;
736 numFixupPosition -= fixupVisitor.numPosition;
737 numFixupLast -= fixupVisitor.numLast;
738 qilNode = f.Loop(qilIterator, f.Loop(qilIterator2, f.Filter(qilIterator3, predicate)));
739 }
740 else
741 {
743 predicate = fixupVisitor.Fixup(predicate, qilIterator4, null);
744 numFixupCurrent -= fixupVisitor.numCurrent;
745 numFixupPosition -= fixupVisitor.numPosition;
746 numFixupLast -= fixupVisitor.numLast;
747 qilNode = f.Filter(qilIterator4, predicate);
748 }
749 if (isReverseStep)
750 {
751 qilNode = f.DocOrderDistinct(qilNode);
752 }
753 return qilNode;
754 }

References System.Xml.Xsl.XPath.XPathBuilder.FixupVisitor.CountUnfixedLast(), System.Xml.Dictionary, System.Xml.Xsl.Qil.QilPatternFactory.DocOrderDistinct(), System.Xml.Xsl.XmlQueryTypeFactory.DoubleX, System.Xml.Xsl.XPath.XPathQilFactory.EnsureNodeSet(), System.Xml.Xsl.Qil.QilPatternFactory.Filter(), System.Xml.Xsl.XPath.XPathBuilder.FixupVisitor.Fixup(), System.Xml.Xsl.Qil.QilPatternFactory.For(), System.Xml.Xsl.Qil.QilPatternFactory.Length(), System.Xml.Xsl.Qil.QilPatternFactory.Let(), System.Xml.Xsl.Qil.QilPatternFactory.Loop(), System.Xml.Xsl.XPath.XPathBuilder.FixupVisitor.numCurrent, System.Xml.Xsl.XPath.XPathBuilder.numFixupCurrent, System.Xml.Xsl.XPath.XPathBuilder.numFixupLast, System.Xml.Xsl.XPath.XPathBuilder.numFixupPosition, System.Xml.Xsl.XPath.XPathBuilder.FixupVisitor.numLast, System.Xml.Xsl.XPath.XPathBuilder.FixupVisitor.numPosition, and System.Xml.Xsl.Qil.QilPatternFactory.XsltConvert().

Referenced by System.Xml.Xsl.Xslt.XPathPatternBuilder.BuildPredicates(), and System.Xml.Xsl.XPath.XPathBuilder.Predicate().