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

◆ Evaluate()

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

Definition at line 35 of file PreSiblingQuery.cs.

36 {
37 base.Evaluate(context);
40 while ((currentNode = qyInput.Advance()) != null)
41 {
42 stack.Push(currentNode.Clone());
43 }
44 while (stack.Count != 0)
45 {
46 XPathNavigator xPathNavigator = stack.Pop();
47 if (xPathNavigator.NodeType == XPathNodeType.Attribute || xPathNavigator.NodeType == XPathNodeType.Namespace || !NotVisited(xPathNavigator, parentStk))
48 {
49 continue;
50 }
52 if (!xPathNavigator2.MoveToParent())
53 {
54 continue;
55 }
56 bool flag = xPathNavigator2.MoveToFirstChild();
57 while (!xPathNavigator2.IsSamePosition(xPathNavigator))
58 {
60 {
62 }
63 if (!xPathNavigator2.MoveToNext())
64 {
65 break;
66 }
67 }
68 }
69 return this;
70 }
virtual bool matches(XPathNavigator e)
List< XPathNavigator > outputBuffer
static bool NotVisited(XPathNavigator nav, List< XPathNavigator > parentStk)
XPathNavigator Advance()

References MS.Internal.Xml.XPath.Query.Advance(), System.Xml.XPath.XPathNavigator.Clone(), System.Collections.Generic.Dictionary< TKey, TValue >.Count, MS.Internal.Xml.XPath.BaseAxisQuery.currentNode, MS.Internal.Xml.XPath.Query.Insert(), MS.Internal.Xml.XPath.BaseAxisQuery.matches(), MS.Internal.Xml.XPath.PreSiblingQuery.NotVisited(), MS.Internal.Xml.XPath.CacheAxisQuery.outputBuffer, and MS.Internal.Xml.XPath.BaseAxisQuery.qyInput.