1 write to f
System.Data.SqlXml (1)
System\Xml\Xsl\Xslt\QilGenerator.cs (1)
95f = new XsltQilFactory(new QilFactory(), debug);
547 references to f
System.Data.SqlXml (547)
System\Xml\Xsl\Xslt\QilGenerator.cs (399)
100refReplacer = new ReferenceReplacer(f.BaseFactory); 101invkGen = new InvokeGenerator(f, debug); 102matcherBuilder = new MatcherBuilder(f, refReplacer, invkGen); 103singlFocus = new SingletonFocus(f); 105curLoop = new LoopFocus(f); 106strConcat = new QilStrConcatenator(f); 107varHelper = new VariableHelper(f); 112nameCurrent = f.QName("current" , XmlReservedNs.NsXslDebug); 113namePosition = f.QName("position" , XmlReservedNs.NsXslDebug); 114nameLast = f.QName("last" , XmlReservedNs.NsXslDebug); 115nameNamespaces = f.QName("namespaces", XmlReservedNs.NsXslDebug); 116nameInit = f.QName("init" , XmlReservedNs.NsXslDebug); 131this.functions = f.FunctionList(); 132this.extPars = f.GlobalParameterList(); 133this.gloVars = f.GlobalVariableList(); 134this.nsVars = f.GlobalVariableList(); 192QilExpression qil = f.QilExpression(root, f.BaseFactory); { 210return f.Loop(i = f.Let(f.InvokeOnCurrentNodeChanged(curLoop.GetCurrent())), f.Sequence()); 226QilNode init = f.Int32(0); 232init = f.Add(init, f.InvokeRegisterDecimalFormat(format)); 236init = f.Add(init, f.InvokeRegisterDecimalFormat(DecimalFormatDecl.Default)); 242init = f.Add(init, f.InvokeCheckScriptNamespace(scriptNs)); 246QilFunction initFunction = f.Function(f.FormalParameterList(), init, /*sideEffects:*/f.True()); 250QilNode initBinding = f.Invoke(initFunction, f.ActualParameterList()); 253initBinding = f.TypeAssert(initBinding, T.ItemS); 255QilIterator initVar = f.Let(initBinding); 268return f.DocumentCtor(result); 287QilList nsDecls = f.BaseFactory.Sequence(); 289nsDecls.Add(f.NamespaceDecl(f.String(rec.ncName), f.String(rec.nsUri))); 402QilIterator newVar = f.Let(nsList); 403newVar.DebugName = f.QName("ns" + this.nsVars.Count, XmlReservedNs.NsXslDebug).ToString(); 418QilList args = f.FormalParameterList(); 471QilList paramFormal = f.FormalParameterList(); 472QilList paramActual = f.ActualParameterList(); 474QilParameter formal = f.Parameter(args[j].XmlType); { 485QilFunction paramFunc = f.Function(paramFormal, 486f.Boolean((xslPar.DefValueFlags & XslFlags.SideEffects) != 0), 491param.DefaultValue = f.Invoke(paramFunc, paramActual); 515tmpl.Function = f.Function(args, 516f.Boolean((tmpl.Flags & XslFlags.SideEffects) != 0), 549QilParameter arg = f.Parameter(xt); 587return f.BaseFactory.Sequence(); 659QilIterator var = f.Let(result); 663result = f.Loop(var, CompileInstructions(instructions, i + 1)); 680return f.Nop(f.Sequence()); 688content.Add(f.NamespaceDecl(f.String(prefix), f.String(nsUri))); 746return f.ElementCtor(qname, content); 765qname = f.QName(local, nsUri, prefix); 768qname = f.StrParseQName(qilName, qilNs); 780return f.ElementCtor(qname, content); 793return f.AttributeCtor(qname, CompileTextAvt(node.Select)); 819qname = f.QName(local, nsUri, prefix); 823qname = f.StrParseQName(qilName, qilNs); 832return f.AttributeCtor(qname, CompileInstructions(node.Content)); 861return f.Error(lastScope.SourceLine, Res.Xslt_SingleRightBraceInAvt, source); 869return i > start ? f.String(source.Substring(start, i - start)) : null; 872return f.String(unescapedText.ToString()); 877QilList result = f.BaseFactory.Sequence(); 887result.Add(f.ConvertToString(exp)); 903return f.String(avt); 905return f.StrConcat(CompileAvt(avt)); 911return f.TextCtor(f.String(avt)); 917result.Add(f.TextCtor(node)); 921return f.TextCtor(avtParts); 927return f.TextCtor(f.String(node.Select)); 929return f.RawTextCtor(f.String(node.Select)); 938return f.PICtor(qilName, CompileInstructions(node.Content)); 942return f.CommentCtor(CompileInstructions(node.Content)); 946return f.Error(f.String(node.Select)); 952return f.Sequence( 955SetLineInfo(f.Nop(f.Sequence()), after) 967QilIterator it = f.For(CompileNodeSetExpression(node.Select)); 991QilIterator select = f.Let(CompileNodeSetExpression(node.Select)); 1003QilIterator let = f.Let(val); 1004let.DebugName = f.QName("with-param " + withParam.Name.QualifiedName, XmlReservedNs.NsXslDebug).ToString(); 1013QilIterator it = f.For(select); 1049QilIterator let = f.Let(val); 1050let.DebugName = f.QName("with-param " + withParam.Name.QualifiedName, XmlReservedNs.NsXslDebug).ToString(); 1065result = f.Sequence(); 1075return f.Nop(result); 1093return f.Sequence(); 1101f.CheckNodeNotRtf(node); 1109content.Add(f.XPathNamespace(node)); 1114return f.ElementCtor(f.NameOf(node), result); 1125return f.XsltCopy(node, CompileInstructions(copy.Content)); 1143return f.XsltCopyOf(selectExpr); 1146return f.Loop(it = f.For(selectExpr), f.XsltCopyOf(it)); 1153return f.TextCtor(f.ConvertToString(selectExpr)); 1159return f.Loop( 1160it = f.For(selectExpr), 1161f.Conditional(f.IsType(it, T.Node), 1162f.XsltCopyOf(f.TypeAssert(it, T.Node)), 1163f.TextCtor(f.XsltConvert(it, T.StringX)) 1170return f.TextCtor(f.ConvertToString(CompileXPathExpression(/*select:*/valueOf.Select))); 1174return f.RawTextCtor(f.ConvertToString(CompileXPathExpression(/*select:*/valueOf.Select))); 1178return f.Conditional( 1179f.ConvertToBoolean(CompileXPathExpression(/*test:*/whenNode.Select)), 1209return f.Sequence(); 1211return IsDebug ? f.Sequence(result) : result; 1216QilNode content = f.RtfCtor(CompileInstructions(node.Content), f.String(baseUri)); 1219content = f.InvokeOuterXml(content); 1223return f.Warning(content); 1228return f.Loop(i = f.Let(content), f.Sequence(f.Warning(i), f.Error(i))); 1257varValue = f.RtfCtor(CompileInstructions(content), f.String(baseUri)); 1260varValue = f.String(string.Empty); 1264varValue = f.TypeAssert(varValue, T.ItemS); 1283QilList keyList = f.BaseFactory.SortKeyList(); 1317result = f.Loop(i = f.Let(result), 1318f.Conditional(f.Eq(f.InvokeLangToLcid(i, fwdCompat), f.Int32(XsltLibrary.InvariantCultureLcid)), 1319f.String(string.Empty), 1333return f.Double(XsltLibrary.InvariantCultureLcid); 1335return f.Double(XsltLibrary.LangToLcidInternal((string)(QilLiteral)lang, fwdCompat, (IErrorHelper)this)); 1337return f.XsltConvert(f.InvokeLangToLcid(lang, fwdCompat), T.DoubleX); 1349select = f.ConvertToNumber(select); 1373result = f.Loop(dt = f.Let(result), 1374f.Conditional(f.Eq(dt, f.String(DtNumber)), f.False(), 1375f.Conditional(f.Eq(dt, f.String(DtText)), f.True(), 1376fwdCompat ? f.True() : 1377f.Loop(qname = f.Let(ResolveQNameDynamic(/*ignoreDefaultNs:*/true, dt)), 1378f.Error(lastScope.SourceLine, 1384QilIterator text = f.Let(result); 1388select2 = select.DeepClone(f.BaseFactory); 1389select = f.Conditional(text, f.ConvertToString(select), f.String(string.Empty) ); 1390select2 = f.Conditional(text, f.Double(0), f.ConvertToNumber(select2)); 1396select = f.ConvertToString(select); 1419result = f.String("1"); 1424result = f.String("0"); 1428result = f.Loop(i = f.Let(result), 1429f.Conditional(f.Eq(i, f.String(value1)), f.String("1"), 1430fwdCompat ? f.String("0") : 1431f.Conditional(f.Eq(i, f.String(value0)), f.String("0"), 1432f.Error(lastScope.SourceLine, 1480select = f.ConvertToString(select); 1505QilSortKey result = f.SortKey(select, collation); 1510result = f.SortKey(select2, collation.DeepClone(f.BaseFactory)); 1527list = f.BaseFactory.Sequence(); 1531QilNode result = f.False(); 1535result = f.Or( 1558return f.InvokeIsSameNodeSort(testNode, current); 1563case XmlNodeKindFlags.Document : return f.IsType(testNode, T.Document); 1564case XmlNodeKindFlags.Element : result = f.IsType(testNode, T.Element); break; 1565case XmlNodeKindFlags.Attribute : result = f.IsType(testNode, T.Attribute); break; 1566case XmlNodeKindFlags.Text : return f.IsType(testNode, T.Text); 1567case XmlNodeKindFlags.Comment : return f.IsType(testNode, T.Comment); 1568case XmlNodeKindFlags.PI : return f.And(f.IsType(testNode, T.PI) , f.Eq(f.LocalNameOf(testNode), f.LocalNameOf(current))); 1569case XmlNodeKindFlags.Namespace : return f.And(f.IsType(testNode, T.Namespace), f.Eq(f.LocalNameOf(testNode), f.LocalNameOf(current))); 1572return f.False(); 1576return f.And(result, f.And( 1577f.Eq(f.LocalNameOf(testNode) , f.LocalNameOf(current)), 1578f.Eq(f.NamespaceUriOf(testNode), f.NamespaceUriOf(GetCurrentNode())) 1607countPattern2 = (countPattern != null) ? countPattern.DeepClone(f.BaseFactory) : null; 1608countMatches = f.Filter(i = f.For(f.AncestorOrSelf(GetCurrentNode())), MatchCountPattern(countPattern, i)); 1610A = f.DocOrderDistinct(countMatches); 1612A = f.Filter(i = f.For(countMatches), f.Eq(f.PositionOf(i), f.Int32(1))); 1618fromMatches = f.Filter(i = f.For(f.AncestorOrSelf(GetCurrentNode())), MatchPattern(fromPattern, i)); 1619F = f.Filter(i = f.For(fromMatches), f.Eq(f.PositionOf(i), f.Int32(1))); 1620AF = f.Loop(i = f.For(F), f.Filter(j = f.For(A), f.Before(i, j))); 1623return f.Loop(j = f.For(AF), 1624f.Add(f.Int32(1), f.Length(f.Filter(i = f.For(f.PrecedingSibling(j)), MatchCountPattern(countPattern2, i)))) 1654range = f.NodeRange(f.Root(GetCurrentNode()), GetCurrentNode()); 1655AF = f.Filter(i = f.For(range), MatchCountPattern(countPattern, i)); 1657fromMatches = f.Filter(i = f.For(f.Preceding(GetCurrentNode())), MatchPattern(fromPattern, i)); 1658F = f.Filter(i = f.For(fromMatches), f.Eq(f.PositionOf(i), f.Int32(1))); 1659AF = f.Loop(i = f.For(F), 1660f.Filter(j = f.For(f.Filter(k = f.For(f.NodeRange(i, GetCurrentNode())), MatchCountPattern(countPattern, k))), 1661f.Not(f.Is(i, j)) 1666return f.Loop(k = f.Let(f.Length(AF)), 1667f.Conditional(f.Eq(k, f.Int32(0)), f.Sequence(), 1690return f.String(Default); 1695QilIterator i = f.Let(result); 1696return f.Loop(i, 1697f.Conditional( 1698f.Or(f.Eq(i, f.String(Alphabetic)), f.Eq(i, f.String(Traditional))), 1700fwdCompat ? f.String(Default) : 1701f.Error(lastScope.SourceLine, Res.Xslt_BistateAttribute, "letter-value", Alphabetic, Traditional) 1705return f.String(Default); 1713result = f.String(string.Empty); 1721result = f.String(string.Empty); 1724QilIterator i = f.Let(result); 1725result = f.Loop(i, 1726f.Conditional(f.Eq(f.StrLength(i), f.Int32(1)), i, 1727fwdCompat ? f.String(string.Empty) : 1728f.Error(lastScope.SourceLine, Res.Xslt_CharAttribute, "grouping-separator") 1738return f.Double(0); 1746return f.Double(dblGroupingSize); 1749return f.Double(0); 1752QilIterator i = f.Let(f.ConvertToNumber(result)); 1753return f.Loop(i, 1754f.Conditional(f.And(f.Lt(f.Double(0), i), f.Lt(i, f.Double(int.MaxValue))), 1756f.Double(0) 1768value = f.ConvertToNumber(CompileXPathExpression(num.Value)); 1784return f.TextCtor(f.InvokeNumberFormat( 1828QilParameter context = f.Parameter(T.NodeNotRtf); 1830QilIterator values = f.For(f.OptimizeBarrier(CompileKeyMatch(key.Match))); 1832QilIterator keys = f.For(CompileKeyUse(key)); 1833keys = f.For(f.OptimizeBarrier(f.Loop(keys, f.ConvertToString(keys)))); 1835QilParameter value = f.Parameter(T.StringX); 1837QilFunction func = f.Function(f.FormalParameterList(context, value), 1838f.Filter(values, 1839f.Not(f.IsEmpty(f.Filter(keys, f.Eq(keys, value)))) 1841f.False() 1870it = f.Let(f.Unknown(xt)); 1872it = f.Parameter(null, varPar.Name, xt); 1918return f.TypeAssert(f.Sequence(), T.ItemS); 1922return f.TypeAssert(f.Sequence(), T.NodeNotRtfS); 1943result = f.Error(f.String(e.Message)); 1947result = f.Nop(result); 1953QilNode result = f.TryEnsureNodeSet(CompileXPathExpression(expr)); 1960result = f.Error(f.String(e.Message)); 1980result = f.Error(f.String(e.Message)); 1984result = f.Nop(result); 2002result = f.Loop(f.For(ptrnBuilder.FixupNode), 2003f.Error(f.String(e.Message)) 2023result = f.Error(f.String(e.Message)); 2046result = f.Error(f.String(e.Message)); 2059result = f.Error(f.String(XslLoadException.CreateMessage(key.SourceLine, Res.Xslt_MissingAttribute, "use"))); 2068result = f.Error(f.String(e.Message)); 2072result = f.Nop(result); 2078f.CheckString(qilName); 2079QilList nsDecls = f.BaseFactory.Sequence(); 2081nsDecls.Add(f.NamespaceDecl(f.String(string.Empty), f.String(string.Empty))); 2090nsDecls.Add(f.NamespaceDecl(f.String(recPrefix), f.String(recNsUri))); 2093return f.StrParseQName(qilName, nsDecls); 2105return f.Sequence(); 2195QilList invokeArgs = f.ActualParameterList(); 2216QilList formalArgs = f.FormalParameterList(); 2226QilParameter formalArg = f.Parameter(i == 0 ? T.NodeNotRtf : withParam.Value.XmlType); 2235applyFunction = f.Function(formalArgs, 2236f.Boolean((flags & XslFlags.SideEffects) != 0), 2251QilIterator iChild = f.For(f.Content(current)); 2252QilNode filter = f.Filter(iChild, f.IsType(iChild, T.Content)); 2256curLoop.SetFocus(f.For(filter)); 2268body = f.Sequence(InvokeOnCurrentNodeChanged(), body); 2275QilTernary builtinTemplates = f.BaseFactory.Conditional(f.IsType(current, elementOrDocumentType), 2277f.Conditional(f.IsType(current, textOrAttributeType), 2278f.TextCtor(f.XPathNodeValue(current)), 2279f.Sequence() 2287return f.Invoke(applyFunction, invokeArgs); 2349QilIterator var = f.Let(value); 2351return f.Loop(var, content); 2360nsVar = f.TypeAssert(nsVar, T.NamespaceS); 2377return (QilName)name.ShallowClone(f.BaseFactory);
System\Xml\Xsl\Xslt\QilGeneratorEnv.cs (148)
57XPathQilFactory IXPathEnvironment.Factory { get { return f; } } 86var = f.TypeAssert(var, XmlQueryTypeFactory.NodeSDod); 98func.CastArguments(args, name, f); 135return f.InvokeMsStringCompare( 136/*x: */f.ConvertToString(args[0]), 137/*y: */f.ConvertToString(args[1]), 138/*lang: */2 < args.Count ? f.ConvertToString(args[2]) : f.String(string.Empty), 139/*options:*/3 < args.Count ? f.ConvertToString(args[3]) : f.String(string.Empty) 143return f.InvokeMsUtc(/*datetime:*/f.ConvertToString(args[0])); 147return f.InvokeMsFormatDateTime( 148/*datetime:*/f.ConvertToString(args[0]), 149/*format: */1 < args.Count ? f.ConvertToString(args[1]) : f.String(string.Empty), 150/*lang: */2 < args.Count ? f.ConvertToString(args[2]) : f.String(string.Empty), 151/*isDate: */f.Boolean(name == "format-date") 155return f.InvokeMsLocalName(f.ConvertToString(args[0])); 158return f.InvokeMsNamespaceUri(f.ConvertToString(args[0]), env.GetCurrent()); 161return f.InvokeMsNumber(args[0]); 179args[i] = f.SafeDocOrderDistinct(args[i]); 184return GenerateScriptCall(f.QName(name, ns, prefix), scrFunc, args); 189return f.Error(lastScope.SourceLine, Res.Xslt_ScriptsProhibited); 193return f.XsltInvokeLateBound(f.QName(name, ns, prefix), args); 203case XmlTypeCode.Boolean: args[i] = f.ConvertToBoolean(args[i]); break; 204case XmlTypeCode.Double: args[i] = f.ConvertToNumber(args[i]); break; 205case XmlTypeCode.String: args[i] = f.ConvertToString(args[i]); break; 206case XmlTypeCode.Node: args[i] = xmlTypeFormalArg.IsSingleton ? f.ConvertToNode(args[i]) : f.ConvertToNodeSet(args[i]); break; 212return f.XsltInvokeEarlyBound(name, scrFunc.Method, scrFunc.XmlReturnType, args); 323result = CompileSingleKey(name, f.ConvertToString(keys), env); 325result = f.Loop(i = f.For(keys), CompileSingleKey(name, f.ConvertToString(i), env)); 329result = CompileSingleKey(name, f.ConvertToString(keys), env); 332result = f.Loop(n = f.Let(name), f.Loop(k = f.Let(keys), 333f.Conditional(f.Not(f.IsType(k, T.AnyAtomicType)), 334f.Loop(i = f.For(f.TypeAssert(k, T.NodeS)), CompileSingleKey(n, f.ConvertToString(i), env)), 335CompileSingleKey(n, f.XsltConvert(k, T.StringX), env) 339return f.DocOrderDistinct(result); 352QilName qname = f.QName(local, nsUri, prefix); 362QilIterator i = f.Let(name); 364result = f.Invoke(generalKey, f.ActualParameterList(i, resolvedName, key, env.GetCurrent())); 365result = f.Loop(i, result); 373return f.Invoke(defList[0].Function, f.ActualParameterList(env.GetCurrent(), key)); 376QilIterator i = f.Let(key); 377QilNode result = f.Sequence(); 379result.Add(f.Invoke(keyDef.Function, f.ActualParameterList(env.GetCurrent(), i))); 381return f.Loop(i, result); 386QilList result = f.BaseFactory.Sequence(); 390keyRef = f.Invoke(keyDef.Function, f.ActualParameterList(context, key)); 397QilIterator name = f.Parameter(T.StringX); 398QilIterator resolvedName = f.Parameter(T.QNameX); 399QilIterator key = f.Parameter(T.StringX); 400QilIterator context = f.Parameter(T.NodeNotRtf); 402QilNode fdef = f.Error(Res.Xslt_UndefinedKey, name); 404fdef = f.Conditional(f.Eq(resolvedName, compiler.Keys[idx][0].Name.DeepClone(f.BaseFactory)), 410QilFunction result = f.Function(f.FormalParameterList(name, resolvedName, key, context), fdef, f.False()); 422return f.Error(lastScope.SourceLine, Res.Xslt_DocumentFuncProhibited); 425result = f.DocOrderDistinct(f.Loop(i = f.For(uris), 426CompileSingleDocument(f.ConvertToString(i), baseNode ?? i) 429result = CompileSingleDocument(f.ConvertToString(uris), baseNode); 431u = f.Let(uris); 432j = (baseNode != null) ? f.Let(baseNode) : null; 433result = f.Conditional(f.Not(f.IsType(u, T.AnyAtomicType)), 434f.DocOrderDistinct(f.Loop(i = f.For(f.TypeAssert(u, T.NodeS)), 435CompileSingleDocument(f.ConvertToString(i), j ?? i) 437CompileSingleDocument(f.XsltConvert(u, T.StringX), j) 439result = (baseNode != null) ? f.Loop(j, result) : result; 440result = f.Loop(u, result); 446f.CheckString(uri); 450baseUri = f.String(lastScope.SourceLine.Uri); 452f.CheckNodeSet(baseNode); 454baseUri = f.InvokeBaseUri(baseNode); 460baseUri = f.StrConcat(f.Loop(i = f.FirstNode(baseNode), f.InvokeBaseUri(i))); 464f.CheckString(baseUri); 465return f.DataSource(uri, baseUri); 469f.CheckDouble(value); 470f.CheckString(formatPicture); 476formatName = f.String(string.Empty); 478f.CheckString(formatName); 502QilIterator fmtIdx = f.Let(f.InvokeRegisterDecimalFormatter(formatPicture, format)); 503fmtIdx.DebugName = f.QName("formatter" + this.formatterCnt++, XmlReservedNs.NsXslDebug).ToString(); 505return f.InvokeFormatNumberStatic(value, fmtIdx); 509QilNode name = f.QName(resolvedName.Name, resolvedName.Namespace); 510return f.InvokeFormatNumberDynamic(value, formatPicture, name, formatName); 513QilIterator i = f.Let(formatName); 515return f.Loop(i, f.InvokeFormatNumberDynamic(value, formatPicture, name, i)); 520f.CheckString(n); 521return f.Error(lastScope.SourceLine, Res.Xslt_UnsupportedXsltFunction, "unparsed-entity-uri"); 525f.CheckNodeSet(n); 527return f.XsltGenerateId(n); 530return f.StrConcat(f.Loop(i = f.FirstNode(n), f.XsltGenerateId(i))); 545f.CheckString(name); 551return f.String(propValue.Value); 554return f.Double((double)propValue.ValueAsDouble); 557name = f.QName(qname.Name, qname.Namespace); 561return f.InvokeSystemProperty(name); 565f.CheckString(name); 569return f.Boolean(IsElementAvailable(qname)); 571name = f.QName(qname.Name, qname.Namespace); 575return f.InvokeElementAvailable(name); 579f.CheckString(name); 585return f.Boolean(QilGenerator.IsFunctionAvailable(qname.Name, qname.Namespace)); 589name = f.QName(qname.Name, qname.Namespace); 593return f.InvokeFunctionAvailable(name); 601return f.XsltConvert(n, T.NodeSDod); 611case XmlTypeCode.Boolean : return f.String("boolean"); 612case XmlTypeCode.Double : return f.String("number"); 613case XmlTypeCode.String : return f.String("string"); 616return f.String("node-set"); 621return f.InvokeEXslObjectType(n);