System.Xml.Xsl.XsltOld.NumberAction.numberCount C# (CSharp) Method

numberCount() private method

private numberCount ( XPathNavigator nav, Processor processor, XPathNavigator contextNode ) : int
nav System.Xml.XPath.XPathNavigator
processor Processor
contextNode System.Xml.XPath.XPathNavigator
return int
        private int numberCount(XPathNavigator nav, Processor processor, XPathNavigator contextNode) {
            Debug.Assert(nav.NodeType != XPathNodeType.Attribute && nav.NodeType != XPathNodeType.Namespace);
            Debug.Assert(MatchCountKey(processor, contextNode, nav));
            XPathNavigator runner = nav.Clone();
            int number = 1;
            if (runner.MoveToParent()) {
                runner.MoveToFirstChild();
                while (! runner.IsSamePosition(nav)) {
                    if (MatchCountKey(processor, contextNode, runner)) {
                        number++;
                    }
                    if (! runner.MoveToNext()) {
                        Debug.Fail("We implementing preceding-sibling::node() and some how miss context node 'nav'");
                        break;
                    }
                }
            }
            return number;
        }