Terraria v1.4.4.9
Terraria source code documentation
All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros

◆ Evaluate()

override object MS.Internal.Xml.XPath.XPathAncestorQuery.Evaluate ( XPathNodeIterator context)
inline

Definition at line 25 of file XPathAncestorQuery.cs.

26 {
27 base.Evaluate(context);
28 XPathNavigator xPathNavigator = null;
29 XPathNavigator xPathNavigator2;
30 while ((xPathNavigator2 = qyInput.Advance()) != null)
31 {
32 if (!_matchSelf || !matches(xPathNavigator2) || Query.Insert(outputBuffer, xPathNavigator2))
33 {
34 if (xPathNavigator == null || !xPathNavigator.MoveTo(xPathNavigator2))
35 {
36 xPathNavigator = xPathNavigator2.Clone();
37 }
38 while (xPathNavigator.MoveToParent() && (!matches(xPathNavigator) || Query.Insert(outputBuffer, xPathNavigator)))
39 {
40 }
41 }
42 }
43 return this;
44 }
virtual bool matches(XPathNavigator e)
List< XPathNavigator > outputBuffer
XPathNavigator Advance()
bool MoveTo(XPathNavigator other)

References MS.Internal.Xml.XPath.XPathAncestorQuery._matchSelf, MS.Internal.Xml.XPath.Query.Advance(), System.Xml.XPath.XPathNavigator.Clone(), MS.Internal.Xml.XPath.Query.Insert(), MS.Internal.Xml.XPath.BaseAxisQuery.matches(), System.Xml.XPath.XPathNavigator.MoveTo(), System.Xml.XPath.XPathNavigator.MoveToParent(), MS.Internal.Xml.XPath.CacheAxisQuery.outputBuffer, and MS.Internal.Xml.XPath.BaseAxisQuery.qyInput.