Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
XPathPrecedingMergeIterator.cs
Go to the documentation of this file.
3
5
8{
16
18
20
22
24
26
28
30 {
32 _state = IteratorState.NeedCandidateCurrent;
33 }
34
36 {
37 switch (_state)
38 {
39 case IteratorState.NeedCandidateCurrent:
40 if (input == null)
41 {
42 return IteratorResult.NoMoreNodes;
43 }
45 _state = IteratorState.HaveCandidateCurrent;
46 return IteratorResult.NeedInputNode;
47 case IteratorState.HaveCandidateCurrent:
48 if (input == null)
49 {
50 _state = IteratorState.HaveCurrentNoNext;
51 }
52 else
53 {
55 {
57 return IteratorResult.NeedInputNode;
58 }
60 _state = IteratorState.HaveCurrentHaveNext;
61 }
63 break;
64 }
65 if (!_navStack.IsEmpty)
66 {
67 do
68 {
70 {
71 return IteratorResult.HaveCurrentNode;
72 }
74 }
75 while (!_navStack.IsEmpty);
76 }
77 if (_state == IteratorState.HaveCurrentNoNext)
78 {
79 _state = IteratorState.NeedCandidateCurrent;
80 return IteratorResult.NoMoreNodes;
81 }
83 _state = IteratorState.HaveCandidateCurrent;
84 return IteratorResult.HaveCurrentNode;
85 }
86
87 private void PushAncestors()
88 {
90 do
91 {
93 }
94 while (_navCurrent.MoveToParent());
95 _navStack.Pop();
96 }
97}
bool MoveTo(XPathNavigator other)
virtual XmlNodeOrder ComparePosition(XPathNavigator? nav)
bool MoveToFollowing(XPathNavigator navigator, XPathNavigator navigatorEnd)
static XPathNavigator SyncToNavigator(XPathNavigator navigatorThis, XPathNavigator navigatorThat)