1 write to _f
System.Private.Xml (1)
System\Xml\Xsl\Xslt\QilGenerator.cs (1)
100
_f
= new XsltQilFactory(new QilFactory(), debug);
534 references to _f
System.Private.Xml (534)
System\Xml\Xsl\Xslt\QilGenerator.cs (397)
105
_refReplacer = new ReferenceReplacer(
_f
.BaseFactory);
106
_invkGen = new InvokeGenerator(
_f
, debug);
107
_matcherBuilder = new MatcherBuilder(
_f
, _refReplacer, _invkGen);
108
_singlFocus = new SingletonFocus(
_f
);
110
_curLoop = new LoopFocus(
_f
);
111
_strConcat = new QilStrConcatenator(
_f
);
112
_varHelper = new VariableHelper(
_f
);
117
_nameCurrent =
_f
.QName("current", XmlReservedNs.NsXslDebug);
118
_namePosition =
_f
.QName("position", XmlReservedNs.NsXslDebug);
119
_nameLast =
_f
.QName("last", XmlReservedNs.NsXslDebug);
120
_nameNamespaces =
_f
.QName("namespaces", XmlReservedNs.NsXslDebug);
121
_nameInit =
_f
.QName("init", XmlReservedNs.NsXslDebug);
138
_functions =
_f
.FunctionList();
139
_extPars =
_f
.GlobalParameterList();
140
_gloVars =
_f
.GlobalVariableList();
141
_nsVars =
_f
.GlobalVariableList();
209
QilExpression qil =
_f
.QilExpression(root,
_f
.BaseFactory);
228
return
_f
.Loop(
_f
.Let(
_f
.InvokeOnCurrentNodeChanged(_curLoop.GetCurrent()!)),
_f
.Sequence());
246
QilNode init =
_f
.Int32(0);
254
init =
_f
.Add(init,
_f
.InvokeRegisterDecimalFormat(format));
259
init =
_f
.Add(init,
_f
.InvokeRegisterDecimalFormat(DecimalFormatDecl.Default));
266
init =
_f
.Add(init,
_f
.InvokeCheckScriptNamespace(scriptNs));
271
QilFunction initFunction =
_f
.Function(
_f
.FormalParameterList(), init, /*sideEffects:*/
_f
.True());
275
QilNode initBinding =
_f
.Invoke(initFunction,
_f
.ActualParameterList());
279
initBinding =
_f
.TypeAssert(initBinding, T.ItemS);
281
QilIterator initVar =
_f
.Let(initBinding);
295
return
_f
.DocumentCtor(result);
319
QilList nsDecls =
_f
.BaseFactory.Sequence();
322
nsDecls.Add(
_f
.NamespaceDecl(
_f
.String(rec.ncName!),
_f
.String(rec.nsUri!)));
462
QilIterator newVar =
_f
.Let(nsList);
463
newVar.DebugName =
_f
.QName($"ns{_nsVars.Count}", XmlReservedNs.NsXslDebug).ToString();
480
QilList args =
_f
.FormalParameterList();
548
QilList paramFormal =
_f
.FormalParameterList();
549
QilList paramActual =
_f
.ActualParameterList();
552
QilParameter formal =
_f
.Parameter(args[j].XmlType!);
564
QilFunction paramFunc =
_f
.Function(paramFormal,
565
_f
.Boolean((xslPar.DefValueFlags & XslFlags.SideEffects) != 0),
570
param.DefaultValue =
_f
.Invoke(paramFunc, paramActual);
597
tmpl.Function =
_f
.Function(args,
598
_f
.Boolean((tmpl.Flags & XslFlags.SideEffects) != 0),
635
QilParameter arg =
_f
.Parameter(xt);
680
return
_f
.BaseFactory.Sequence();
762
QilIterator var =
_f
.Let(result);
766
result =
_f
.Loop(var, CompileInstructions(instructions, i + 1));
786
return
_f
.Nop(
_f
.Sequence());
796
content.Add(
_f
.NamespaceDecl(
_f
.String(prefix),
_f
.String(nsUri)));
867
return
_f
.ElementCtor(qname, content);
891
qname =
_f
.QName(local, nsUri, prefix);
897
qname =
_f
.StrParseQName(qilName, qilNs);
910
return
_f
.ElementCtor(qname, content);
925
return
_f
.AttributeCtor(qname, CompileTextAvt(node.Select!));
957
qname =
_f
.QName(local, nsUri, prefix);
964
qname =
_f
.StrParseQName(qilName, qilNs);
976
return
_f
.AttributeCtor(qname, CompileInstructions(node.Content));
1014
return
_f
.Error(_lastScope!.SourceLine, SR.Xslt_SingleRightBraceInAvt, source);
1023
return i > start ?
_f
.String(source.Substring(start, i - start)) : null;
1028
return
_f
.String(_unescapedText.ToString());
1034
QilList result =
_f
.BaseFactory.Sequence();
1047
result.Add(
_f
.ConvertToString(exp));
1066
return
_f
.String(avt);
1068
return
_f
.StrConcat(CompileAvt(avt));
1076
return
_f
.TextCtor(
_f
.String(avt));
1084
result.Add(
_f
.TextCtor(node));
1090
return
_f
.TextCtor(avtParts);
1097
return
_f
.TextCtor(
_f
.String(node.Select!));
1099
return
_f
.RawTextCtor(
_f
.String(node.Select!));
1110
return
_f
.PICtor(qilName, CompileInstructions(node.Content));
1115
return
_f
.CommentCtor(CompileInstructions(node.Content));
1120
return
_f
.Error(
_f
.String(node.Select!));
1128
return
_f
.Sequence(
1131
SetLineInfo(
_f
.Nop(
_f
.Sequence()), after)
1144
QilIterator it =
_f
.For(CompileNodeSetExpression(node.Select!));
1169
QilIterator select =
_f
.Let(CompileNodeSetExpression(node.Select!));
1184
QilIterator let =
_f
.Let(val!);
1185
let.DebugName =
_f
.QName($"with-param {withParam.Name!.QualifiedName}", XmlReservedNs.NsXslDebug).ToString();
1194
QilIterator it =
_f
.For(select);
1234
QilIterator let =
_f
.Let(val);
1235
let.DebugName =
_f
.QName($"with-param {withParam.Name!.QualifiedName}", XmlReservedNs.NsXslDebug).ToString();
1255
result =
_f
.Sequence();
1267
return
_f
.Nop(result);
1290
return
_f
.Sequence();
1309
content.Add(
_f
.XPathNamespace(node));
1314
return
_f
.ElementCtor(
_f
.NameOf(node), result);
1331
return
_f
.XsltCopy(node, CompileInstructions(copy.Content));
1354
return
_f
.XsltCopyOf(selectExpr);
1359
return
_f
.Loop(it =
_f
.For(selectExpr),
_f
.XsltCopyOf(it));
1367
return
_f
.TextCtor(
_f
.ConvertToString(selectExpr));
1374
return
_f
.Loop(
1375
it =
_f
.For(selectExpr),
1376
_f
.Conditional(
_f
.IsType(it, T.Node),
1377
_f
.XsltCopyOf(
_f
.TypeAssert(it, T.Node)),
1378
_f
.TextCtor(
_f
.XsltConvert(it, T.StringX))
1386
return
_f
.TextCtor(
_f
.ConvertToString(CompileXPathExpression(/*select:*/valueOf.Select)));
1391
return
_f
.RawTextCtor(
_f
.ConvertToString(CompileXPathExpression(/*select:*/valueOf.Select)));
1396
return
_f
.Conditional(
1397
_f
.ConvertToBoolean(CompileXPathExpression(/*test:*/whenNode.Select)),
1434
return
_f
.Sequence();
1436
return IsDebug ?
_f
.Sequence(result) : result;
1442
QilNode content =
_f
.RtfCtor(CompileInstructions(node.Content),
_f
.String(baseUri));
1445
content =
_f
.InvokeOuterXml(content);
1450
return
_f
.Warning(content);
1455
return
_f
.Loop(i =
_f
.Let(content),
_f
.Sequence(
_f
.Warning(i),
_f
.Error(i)));
1490
varValue =
_f
.RtfCtor(CompileInstructions(content),
_f
.String(baseUri));
1495
varValue =
_f
.String(string.Empty);
1500
varValue =
_f
.TypeAssert(varValue, T.ItemS);
1521
QilList keyList =
_f
.BaseFactory.SortKeyList();
1566
result =
_f
.Loop(i =
_f
.Let(result),
1567
_f
.Conditional(
_f
.Eq(
_f
.InvokeLangToLcid(i, fwdCompat),
_f
.Int32(XsltLibrary.InvariantCultureLcid)),
1568
_f
.String(string.Empty),
1585
return
_f
.Double(XsltLibrary.InvariantCultureLcid);
1589
return
_f
.String(XsltLibrary.LangToNameInternal((string)(QilLiteral)lang, fwdCompat, (IErrorHelper)this));
1593
return
_f
.XsltConvert(
_f
.InvokeLangToLcid(lang, fwdCompat), T.DoubleX);
1609
select =
_f
.ConvertToNumber(select);
1644
result =
_f
.Loop(dt =
_f
.Let(result),
1645
_f
.Conditional(
_f
.Eq(dt,
_f
.String(DtNumber)),
_f
.False(),
1646
_f
.Conditional(
_f
.Eq(dt,
_f
.String(DtText)),
_f
.True(),
1647
fwdCompat ?
_f
.True() :
1648
_f
.Loop(
_f
.Let(ResolveQNameDynamic(/*ignoreDefaultNs:*/true, dt)),
1649
_f
.Error(_lastScope!.SourceLine,
1655
QilIterator text =
_f
.Let(result);
1659
select2 = select.DeepClone(
_f
.BaseFactory);
1660
select =
_f
.Conditional(text,
_f
.ConvertToString(select),
_f
.String(string.Empty));
1661
select2 =
_f
.Conditional(text,
_f
.Double(0),
_f
.ConvertToNumber(select2));
1667
select =
_f
.ConvertToString(select);
1695
result =
_f
.String("1");
1703
result =
_f
.String("0");
1709
result =
_f
.Loop(i =
_f
.Let(result),
1710
_f
.Conditional(
_f
.Eq(i,
_f
.String(value1)),
_f
.String("1"),
1711
fwdCompat ?
_f
.String("0") :
1712
_f
.Conditional(
_f
.Eq(i,
_f
.String(value0)),
_f
.String("0"),
1713
_f
.Error(_lastScope!.SourceLine,
1767
select =
_f
.ConvertToString(select);
1793
QilSortKey result =
_f
.SortKey(select, collation);
1799
result =
_f
.SortKey(select2, collation.DeepClone(
_f
.BaseFactory));
1822
list =
_f
.BaseFactory.Sequence();
1826
QilNode result =
_f
.False();
1831
result =
_f
.Or(
1859
return
_f
.InvokeIsSameNodeSort(testNode, current);
1865
case XmlNodeKindFlags.Document: return
_f
.IsType(testNode, T.Document);
1866
case XmlNodeKindFlags.Element: result =
_f
.IsType(testNode, T.Element); break;
1867
case XmlNodeKindFlags.Attribute: result =
_f
.IsType(testNode, T.Attribute); break;
1868
case XmlNodeKindFlags.Text: return
_f
.IsType(testNode, T.Text);
1869
case XmlNodeKindFlags.Comment: return
_f
.IsType(testNode, T.Comment);
1870
case XmlNodeKindFlags.PI: return
_f
.And(
_f
.IsType(testNode, T.PI),
_f
.Eq(
_f
.LocalNameOf(testNode),
_f
.LocalNameOf(current)));
1871
case XmlNodeKindFlags.Namespace: return
_f
.And(
_f
.IsType(testNode, T.Namespace),
_f
.Eq(
_f
.LocalNameOf(testNode),
_f
.LocalNameOf(current)));
1874
return
_f
.False();
1878
return
_f
.And(result,
_f
.And(
1879
_f
.Eq(
_f
.LocalNameOf(testNode),
_f
.LocalNameOf(current)),
1880
_f
.Eq(
_f
.NamespaceUriOf(testNode),
_f
.NamespaceUriOf(GetCurrentNode()))
1911
countPattern2 = countPattern?.DeepClone(
_f
.BaseFactory);
1912
countMatches =
_f
.Filter(i =
_f
.For(
_f
.AncestorOrSelf(GetCurrentNode())), MatchCountPattern(countPattern, i));
1915
A =
_f
.DocOrderDistinct(countMatches);
1919
A =
_f
.Filter(i =
_f
.For(countMatches),
_f
.Eq(
_f
.PositionOf(i),
_f
.Int32(1)));
1928
fromMatches =
_f
.Filter(i =
_f
.For(
_f
.AncestorOrSelf(GetCurrentNode())), MatchPattern(fromPattern, i));
1929
F =
_f
.Filter(i =
_f
.For(fromMatches),
_f
.Eq(
_f
.PositionOf(i),
_f
.Int32(1)));
1930
AF =
_f
.Loop(i =
_f
.For(F),
_f
.Filter(j =
_f
.For(A),
_f
.Before(i, j)));
1933
return
_f
.Loop(j =
_f
.For(AF),
1934
_f
.Add(
_f
.Int32(1),
_f
.Length(
_f
.Filter(i =
_f
.For(
_f
.PrecedingSibling(j)), MatchCountPattern(countPattern2, i))))
1966
range =
_f
.NodeRange(
_f
.Root(GetCurrentNode()), GetCurrentNode());
1967
AF =
_f
.Filter(i =
_f
.For(range), MatchCountPattern(countPattern, i));
1971
fromMatches =
_f
.Filter(i =
_f
.For(
_f
.Preceding(GetCurrentNode())), MatchPattern(fromPattern, i));
1972
F =
_f
.Filter(i =
_f
.For(fromMatches),
_f
.Eq(
_f
.PositionOf(i),
_f
.Int32(1)));
1973
AF =
_f
.Loop(i =
_f
.For(F),
1974
_f
.Filter(j =
_f
.For(
_f
.Filter(k =
_f
.For(
_f
.NodeRange(i, GetCurrentNode())), MatchCountPattern(countPattern, k))),
1975
_f
.Not(
_f
.Is(i, j))
1980
return
_f
.Loop(k =
_f
.Let(
_f
.Length(AF)),
1981
_f
.Conditional(
_f
.Eq(k,
_f
.Int32(0)),
_f
.Sequence(),
2010
return
_f
.String(Default);
2017
QilIterator i =
_f
.Let(result);
2018
return
_f
.Loop(i,
2019
_f
.Conditional(
2020
_f
.Or(
_f
.Eq(i,
_f
.String(Alphabetic)),
_f
.Eq(i,
_f
.String(Traditional))),
2022
fwdCompat ?
_f
.String(Default) :
2023
_f
.Error(_lastScope!.SourceLine, SR.Xslt_BistateAttribute, "letter-value", Alphabetic, Traditional)
2027
return
_f
.String(Default);
2037
result =
_f
.String(string.Empty);
2049
result =
_f
.String(string.Empty);
2054
QilIterator i =
_f
.Let(result);
2055
result =
_f
.Loop(i,
2056
_f
.Conditional(
_f
.Eq(
_f
.StrLength(i),
_f
.Int32(1)), i,
2057
fwdCompat ?
_f
.String(string.Empty) :
2058
_f
.Error(_lastScope!.SourceLine, SR.Xslt_CharAttribute, "grouping-separator")
2070
return
_f
.Double(0);
2081
return
_f
.Double(dblGroupingSize);
2084
return
_f
.Double(0);
2089
QilIterator i =
_f
.Let(
_f
.ConvertToNumber(result));
2090
return
_f
.Loop(i,
2091
_f
.Conditional(
_f
.And(
_f
.Lt(
_f
.Double(0), i),
_f
.Lt(i,
_f
.Double(int.MaxValue))),
2093
_f
.Double(0)
2107
value =
_f
.ConvertToNumber(CompileXPathExpression(num.Value));
2126
return
_f
.TextCtor(
_f
.InvokeNumberFormat(
2181
QilParameter context =
_f
.Parameter(T.NodeNotRtf);
2183
QilIterator values =
_f
.For(
_f
.OptimizeBarrier(CompileKeyMatch(key.Match)));
2185
QilIterator keys =
_f
.For(CompileKeyUse(key));
2186
keys =
_f
.For(
_f
.OptimizeBarrier(
_f
.Loop(keys,
_f
.ConvertToString(keys))));
2188
QilParameter value =
_f
.Parameter(T.StringX);
2190
QilFunction func =
_f
.Function(
_f
.FormalParameterList(context, value),
2191
_f
.Filter(values,
2192
_f
.Not(
_f
.IsEmpty(
_f
.Filter(keys,
_f
.Eq(keys, value))))
2194
_f
.False()
2228
it =
_f
.Let(
_f
.Unknown(xt));
2232
it =
_f
.Parameter(null, varPar.Name, xt);
2284
return
_f
.TypeAssert(
_f
.Sequence(), T.ItemS);
2289
return
_f
.TypeAssert(
_f
.Sequence(), T.NodeNotRtfS);
2318
result =
_f
.Error(
_f
.String(e.Message));
2323
result =
_f
.Nop(result);
2330
QilNode? result =
_f
.TryEnsureNodeSet(CompileXPathExpression(expr));
2339
result =
_f
.Error(
_f
.String(e.Message));
2363
result =
_f
.Error(
_f
.String(e.Message));
2368
result =
_f
.Nop(result);
2391
result =
_f
.Loop(
_f
.For(_ptrnBuilder.FixupNode),
2392
_f
.Error(
_f
.String(e.Message))
2417
result =
_f
.Error(
_f
.String(e.Message));
2446
result =
_f
.Error(
_f
.String(e.Message));
2461
result =
_f
.Error(
_f
.String(XslLoadException.CreateMessage(key.SourceLine, SR.Xslt_MissingAttribute, "use")));
2476
result =
_f
.Error(
_f
.String(e.Message));
2481
result =
_f
.Nop(result);
2489
QilList nsDecls =
_f
.BaseFactory.Sequence();
2492
nsDecls.Add(
_f
.NamespaceDecl(
_f
.String(string.Empty),
_f
.String(string.Empty)));
2505
nsDecls.Add(
_f
.NamespaceDecl(
_f
.String(recPrefix),
_f
.String(recNsUri!)));
2508
return
_f
.StrParseQName(qilName, nsDecls);
2522
return
_f
.Sequence();
2634
QilList invokeArgs =
_f
.ActualParameterList();
2659
QilList formalArgs =
_f
.FormalParameterList();
2670
QilParameter formalArg =
_f
.Parameter(i == 0 ? T.NodeNotRtf : withParam.Value!.XmlType!);
2679
applyFunction =
_f
.Function(formalArgs,
2680
_f
.Boolean((flags & XslFlags.SideEffects) != 0),
2696
QilIterator iChild =
_f
.For(
_f
.Content(current));
2697
QilNode filter =
_f
.Filter(iChild,
_f
.IsType(iChild, T.Content));
2701
_curLoop.SetFocus(
_f
.For(filter));
2714
body =
_f
.Sequence(InvokeOnCurrentNodeChanged(), body);
2721
QilTernary builtinTemplates =
_f
.BaseFactory.Conditional(
_f
.IsType(current, _elementOrDocumentType),
2723
_f
.Conditional(
_f
.IsType(current, _textOrAttributeType),
2724
_f
.TextCtor(
_f
.XPathNodeValue(current)),
2725
_f
.Sequence()
2733
return
_f
.Invoke(applyFunction, invokeArgs);
2814
QilIterator var =
_f
.Let(value);
2816
return
_f
.Loop(var, content);
2828
nsVar =
_f
.TypeAssert(nsVar, T.NamespaceS);
2848
return (QilName)name.ShallowClone(
_f
.BaseFactory);
System\Xml\Xsl\Xslt\QilGeneratorEnv.cs (137)
57
XPathQilFactory IXPathEnvironment.Factory { get { return
_f
; } }
91
var =
_f
.TypeAssert(var, XmlQueryTypeFactory.NodeSDod);
109
func.CastArguments(args, name,
_f
);
157
return
_f
.InvokeMsStringCompare(
158
/*x: */
_f
.ConvertToString(args[0]),
159
/*y: */
_f
.ConvertToString(args[1]),
160
/*lang: */2 < args.Count ?
_f
.ConvertToString(args[2]) :
_f
.String(string.Empty),
161
/*options:*/3 < args.Count ?
_f
.ConvertToString(args[3]) :
_f
.String(string.Empty)
167
return
_f
.InvokeMsUtc(/*datetime:*/
_f
.ConvertToString(args[0]));
172
return
_f
.InvokeMsFormatDateTime(
173
/*datetime:*/
_f
.ConvertToString(args[0]),
174
/*format: */1 < args.Count ?
_f
.ConvertToString(args[1]) :
_f
.String(string.Empty),
175
/*lang: */2 < args.Count ?
_f
.ConvertToString(args[2]) :
_f
.String(string.Empty),
176
/*isDate: */
_f
.Boolean(name == "format-date")
182
return
_f
.InvokeMsLocalName(
_f
.ConvertToString(args[0]));
187
return
_f
.InvokeMsNamespaceUri(
_f
.ConvertToString(args[0]), env.GetCurrent()!);
192
return
_f
.InvokeMsNumber(args[0]);
214
args[i] =
_f
.SafeDocOrderDistinct(args[i]);
221
return GenerateScriptCall(
_f
.QName(name, ns, prefix), scrFunc, args);
229
return
_f
.Error(_lastScope!.SourceLine, SR.Xslt_ScriptsProhibited);
233
return
_f
.XsltInvokeLateBound(
_f
.QName(name, ns, prefix), args);
246
case XmlTypeCode.Boolean: args[i] =
_f
.ConvertToBoolean(args[i]); break;
247
case XmlTypeCode.Double: args[i] =
_f
.ConvertToNumber(args[i]); break;
248
case XmlTypeCode.String: args[i] =
_f
.ConvertToString(args[i]); break;
249
case XmlTypeCode.Node: args[i] = xmlTypeFormalArg.IsSingleton ?
_f
.ConvertToNode(args[i]) :
_f
.ConvertToNodeSet(args[i]); break;
255
return
_f
.XsltInvokeEarlyBound(name, scrFunc.Method!, scrFunc.XmlReturnType!, args);
384
result = CompileSingleKey(name,
_f
.ConvertToString(keys), env);
388
result =
_f
.Loop(i =
_f
.For(keys), CompileSingleKey(name,
_f
.ConvertToString(i), env));
393
result = CompileSingleKey(name,
_f
.ConvertToString(keys), env);
397
result =
_f
.Loop(n =
_f
.Let(name),
_f
.Loop(k =
_f
.Let(keys),
398
_f
.Conditional(
_f
.Not(
_f
.IsType(k, T.AnyAtomicType)),
399
_f
.Loop(i =
_f
.For(
_f
.TypeAssert(k, T.NodeS)), CompileSingleKey(n,
_f
.ConvertToString(i), env)),
400
CompileSingleKey(n,
_f
.XsltConvert(k, T.StringX), env)
404
return
_f
.DocOrderDistinct(result);
418
QilName qname =
_f
.QName(local, nsUri, prefix);
429
QilIterator i =
_f
.Let(name);
431
result =
_f
.Invoke(_generalKey,
_f
.ActualParameterList(i, resolvedName, key, env.GetCurrent()!));
432
result =
_f
.Loop(i, result);
442
return
_f
.Invoke(defList[0].Function!,
_f
.ActualParameterList(env.GetCurrent()!, key));
445
QilIterator i =
_f
.Let(key);
446
QilNode result =
_f
.Sequence();
449
result.Add(
_f
.Invoke(keyDef.Function!,
_f
.ActualParameterList(env.GetCurrent()!, i)));
451
return
_f
.Loop(i, result);
457
QilList result =
_f
.BaseFactory.Sequence();
462
keyRef =
_f
.Invoke(keyDef.Function!,
_f
.ActualParameterList(context, key));
470
QilIterator name =
_f
.Parameter(T.StringX);
471
QilIterator resolvedName =
_f
.Parameter(T.QNameX);
472
QilIterator key =
_f
.Parameter(T.StringX);
473
QilIterator context =
_f
.Parameter(T.NodeNotRtf);
475
QilNode fdef =
_f
.Error(SR.Xslt_UndefinedKey, name);
478
fdef =
_f
.Conditional(
_f
.Eq(resolvedName, _compiler.Keys[idx][0].Name!.DeepClone(
_f
.BaseFactory)),
484
QilFunction result =
_f
.Function(
_f
.FormalParameterList(name, resolvedName, key, context), fdef,
_f
.False());
499
return
_f
.Error(_lastScope!.SourceLine, SR.Xslt_DocumentFuncProhibited);
503
result =
_f
.DocOrderDistinct(
_f
.Loop(i =
_f
.For(uris),
504
CompileSingleDocument(
_f
.ConvertToString(i), baseNode ?? i)
509
result = CompileSingleDocument(
_f
.ConvertToString(uris), baseNode);
513
u =
_f
.Let(uris);
514
j = (baseNode != null) ?
_f
.Let(baseNode) : null;
515
result =
_f
.Conditional(
_f
.Not(
_f
.IsType(u, T.AnyAtomicType)),
516
_f
.DocOrderDistinct(
_f
.Loop(i =
_f
.For(
_f
.TypeAssert(u, T.NodeS)),
517
CompileSingleDocument(
_f
.ConvertToString(i), j ?? i)
519
CompileSingleDocument(
_f
.XsltConvert(u, T.StringX), j)
521
result = (baseNode != null) ?
_f
.Loop(j!, result) : result;
522
result =
_f
.Loop(u, result);
534
baseUri =
_f
.String(_lastScope!.SourceLine!.Uri);
541
baseUri =
_f
.InvokeBaseUri(baseNode);
549
baseUri =
_f
.StrConcat(
_f
.Loop(i =
_f
.FirstNode(baseNode),
_f
.InvokeBaseUri(i)));
554
return
_f
.DataSource(uri, baseUri);
567
formatName =
_f
.String(string.Empty);
604
QilIterator fmtIdx =
_f
.Let(
_f
.InvokeRegisterDecimalFormatter(formatPicture, format));
605
fmtIdx.DebugName =
_f
.QName($"formatter{_formatterCnt++}", XmlReservedNs.NsXslDebug).ToString();
607
return
_f
.InvokeFormatNumberStatic(value, fmtIdx);
611
QilNode name =
_f
.QName(resolvedName.Name, resolvedName.Namespace);
612
return
_f
.InvokeFormatNumberDynamic(value, formatPicture, name, formatName);
617
QilIterator i =
_f
.Let(formatName);
619
return
_f
.Loop(i,
_f
.InvokeFormatNumberDynamic(value, formatPicture, name, i));
626
return
_f
.Error(_lastScope!.SourceLine, SR.Xslt_UnsupportedXsltFunction, "unparsed-entity-uri");
634
return
_f
.XsltGenerateId(n);
639
return
_f
.StrConcat(
_f
.Loop(i =
_f
.FirstNode(n),
_f
.XsltGenerateId(i)));
663
return
_f
.String(propValue.Value);
668
return
_f
.Double((double)propValue.ValueAsDouble);
671
name =
_f
.QName(qname.Name, qname.Namespace);
677
return
_f
.InvokeSystemProperty(name);
688
return
_f
.Boolean(IsElementAvailable(qname));
690
name =
_f
.QName(qname.Name, qname.Namespace);
696
return
_f
.InvokeElementAvailable(name);
710
return
_f
.Boolean(QilGenerator.IsFunctionAvailable(qname.Name, qname.Namespace));
714
name =
_f
.QName(qname.Name, qname.Namespace);
720
return
_f
.InvokeFunctionAvailable(name);
730
return
_f
.XsltConvert(n, T.NodeSDod);
743
case XmlTypeCode.Boolean: return
_f
.String("boolean");
744
case XmlTypeCode.Double: return
_f
.String("number");
745
case XmlTypeCode.String: return
_f
.String("string");
749
return
_f
.String("node-set");
754
return
_f
.InvokeEXslObjectType(n);