System.Xml.Xsl.Xslt.XPathPatternBuilder.XPathPredicateEnvironment.GetPosition C# (CSharp) Method

GetPosition() public method

public GetPosition ( ) : QilNode
return QilNode
            public QilNode GetPosition() {
                QilLoop clone = (QilLoop) cloner.Clone(baseContext);
                XmlNodeKindFlags nodeKinds = baseContext.XmlType.NodeKinds;
                // baseContext either always returns attributes (attribute::), or never returns attributes or namespaces (child::)
                if (nodeKinds == XmlNodeKindFlags.Attribute) {
                    QilIterator i = f.For(f.Parent(GetCurrent()));
                    clone.Variable.Binding = f.Content(i);
                    clone.Body = f.And(clone.Body, f.Before(clone.Variable, GetCurrent()));
                    clone = f.BaseFactory.Loop(i, clone);
                } else {
                    Debug.Assert((nodeKinds & (XmlNodeKindFlags.Attribute | XmlNodeKindFlags.Namespace)) == XmlNodeKindFlags.None);
                    clone.Variable.Binding = f.PrecedingSibling(GetCurrent());
                }
                return f.Add(f.Double(1), f.XsltConvert(f.Length(clone), T.DoubleX));
            }
            public QilNode GetLast() {