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

◆ CompileFnKey()

QilNode System.Xml.Xsl.Xslt.QilGenerator.CompileFnKey ( QilNode name,
QilNode keys,
IFocus env )
inlineprivate

Definition at line 2489 of file QilGenerator.cs.

2490 {
2492 QilIterator expr;
2493 QilIterator n;
2494 QilNode collection = (keys.XmlType.IsNode ? ((!keys.XmlType.IsSingleton) ? _f.Loop(n = _f.For(keys), CompileSingleKey(name, _f.ConvertToString(n), env)) : CompileSingleKey(name, _f.ConvertToString(keys), env)) : ((!keys.XmlType.IsAtomicValue) ? _f.Loop(name2 = _f.Let(name), _f.Loop(expr = _f.Let(keys), _f.Conditional(_f.Not(_f.IsType(expr, XmlQueryTypeFactory.AnyAtomicType)), _f.Loop(n = _f.For(_f.TypeAssert(expr, XmlQueryTypeFactory.NodeS)), CompileSingleKey(name2, _f.ConvertToString(n), env)), CompileSingleKey(name2, _f.XsltConvert(expr, XmlQueryTypeFactory.StringX), env)))) : CompileSingleKey(name, _f.ConvertToString(keys), env)));
2496 }
QilIterator For(QilNode binding)
QilNode Loop(QilIterator variable, QilNode body)
QilNode DocOrderDistinct(QilNode collection)
readonly XsltQilFactory _f
QilNode CompileSingleKey(QilNode name, QilNode key, IFocus env)

References System.Xml.Xsl.Xslt.QilGenerator._f, System.Xml.Xsl.XmlQueryTypeFactory.AnyAtomicType, System.collection, System.Xml.Xsl.Xslt.QilGenerator.CompileSingleKey(), System.Xml.Xsl.Qil.QilPatternFactory.Conditional(), System.Xml.Xsl.XPath.XPathQilFactory.ConvertToString(), System.Xml.Dictionary, System.Xml.Xsl.Qil.QilPatternFactory.DocOrderDistinct(), System.Xml.Xsl.Qil.QilPatternFactory.For(), System.Xml.Xsl.Qil.QilPatternFactory.IsType(), System.keys, System.Xml.Xsl.Qil.QilPatternFactory.Let(), System.Xml.Xsl.Qil.QilPatternFactory.Loop(), System.Xml.Xsl.XmlQueryTypeFactory.NodeS, System.Xml.Xsl.Qil.QilPatternFactory.Not(), System.Xml.Xsl.XmlQueryTypeFactory.StringX, System.Xml.Xsl.Qil.QilPatternFactory.TypeAssert(), and System.Xml.Xsl.Qil.QilPatternFactory.XsltConvert().

Referenced by System.Xml.Xsl.Xslt.QilGenerator.ResolveFunction().