C# Класс System.Xml.Xsl.IlGen.XmlILVisitor

Creates Msil code for an entire QilExpression graph. Code is generated in one of two modes: push or pull. In push mode, code is generated to push the values in an iterator to the XmlWriter interface. In pull mode, the values in an iterator are stored in a physical location such as the stack or a local variable by an iterator. The iterator is passive, and will just wait for a caller to pull the data and/or instruct the iterator to enumerate the next value.
Наследование: System.Xml.Xsl.Qil.QilVisitor
Показать файл Открыть проект Примеры использования класса

Открытые методы

Метод Описание
StartLetBinding ( QilIterator ndLet ) : void

Bind values in the "ndLet" expression to a non-stack location that can later be referenced.

Visit ( QilExpression qil, GenerateHelper helper, MethodInfo methRoot ) : void

Visits the specified QilExpression graph and generates MSIL code.

Защищенные методы

Метод Описание
Visit ( QilNode nd ) : QilNode

Generate a query plan for the QilExpression subgraph.

VisitAdd ( QilBinary ndPlus ) : QilNode

Generate code for QilNodeType.Add.

VisitAfter ( QilBinary ndAfter ) : QilNode

Generate code for QilNodeType.VisitAfter.

VisitAncestor ( QilUnary ndAnc ) : QilNode

Find physical query plan for QilNodeType.Ancestor.

VisitAncestorOrSelf ( QilUnary ndAnc ) : QilNode

Find physical query plan for QilNodeType.AncestorOrSelf.

VisitAnd ( QilBinary ndAnd ) : QilNode

Generate code for QilNodeType.And.

BranchingContext.OnFalse context: (expr1) and (expr2) ==> if (!expr1) goto LabelParent; if (!expr2) goto LabelParent; BranchingContext.OnTrue context: (expr1) and (expr2) ==> if (!expr1) goto LabelTemp; if (expr1) goto LabelParent; LabelTemp: BranchingContext.None context: (expr1) and (expr2) ==> if (!expr1) goto LabelTemp; if (!expr1) goto LabelTemp; push true(); goto LabelSkip; LabelTemp: push false(); LabelSkip:

VisitAttribute ( QilBinary ndAttr ) : QilNode

Generate code for for QilNodeType.Attribute.

VisitAttributeCtor ( QilBinary ndAttr ) : QilNode

Generate code for QilNodeType.AttributeCtor.

VisitAverage ( QilUnary ndAvg ) : QilNode

Generate code for QilNodeType.Average.

VisitBefore ( QilBinary ndBefore ) : QilNode

Generate code for QilNodeType.VisitBefore.

VisitChildren ( QilNode parent ) : QilNode

VisitChildren should never be called.

VisitChoice ( QilChoice ndChoice ) : QilNode

Generate code for QilNodeType.Choice.

VisitCommentCtor ( QilUnary ndComment ) : QilNode

Generate code for QilNodeType.CommentCtor.

VisitConditional ( QilTernary ndCond ) : QilNode

Generate code for QilNodeType.Conditional.

VisitContent ( QilUnary ndContent ) : QilNode

Generate code for for QilNodeType.Content.

VisitDataSource ( QilDataSource ndSrc ) : QilNode

Generate code for QilNodeType.DataSource.

Generates code to retrieve a document using the XmlResolver.

VisitDeref ( QilBinary ndDeref ) : QilNode

Generate code for for QilNodeType.Deref.

VisitDescendant ( QilUnary ndDesc ) : QilNode

Find physical query plan for QilNodeType.Descendant.

VisitDescendantOrSelf ( QilUnary ndDesc ) : QilNode

Generate code for for QilNodeType.DescendantOrSelf.

VisitDifference ( QilBinary ndDiff ) : QilNode

Generate code for QilNodeType.Difference.

VisitDivide ( QilBinary ndDiv ) : QilNode

Generate code for QilNodeType.Divide.

VisitDocOrderDistinct ( QilUnary ndDod ) : QilNode

Generate code for for QilNodeType.DocOrderDistinct.

VisitDocumentCtor ( QilUnary ndDoc ) : QilNode

Generate code for QilNodeType.DocumentCtor.

VisitElementCtor ( QilBinary ndElem ) : QilNode

Generate code for QilNodeType.ElementCtor.

VisitEq ( QilBinary ndEq ) : QilNode

Generate code for QilNodeType.Eq.

VisitError ( QilUnary ndErr ) : QilNode

Generate code for QilNodeType.Error.

VisitFalse ( QilNode ndFalse ) : QilNode

Generate code for QilNodeType.False.

BranchingContext.OnFalse context: goto LabelParent; BranchingContext.OnTrue context: [nothing] BranchingContext.None context: push false();

VisitFilter ( QilLoop ndFilter ) : QilNode

Generate code for a QilNodeType.Filter.

VisitFollowingSibling ( QilUnary ndFollSib ) : QilNode

Find physical query plan for QilNodeType.FollowingSibling.

VisitFor ( QilIterator ndFor ) : QilNode

Generate code for a QilNodeType.For.

VisitGe ( QilBinary ndGe ) : QilNode

Generate code for QilNodeType.Ne.

VisitGt ( QilBinary ndGt ) : QilNode

Generate code for QilNodeType.Gt.

VisitIntersection ( QilBinary ndInter ) : QilNode

Generate code for QilNodeType.Intersection.

VisitInvoke ( QilInvoke ndInvoke ) : QilNode

Generate code for for QilNodeType.Invoke.

VisitIs ( QilBinary ndIs ) : QilNode

Generate code for QilNodeType.VisitIs.

VisitIsEmpty ( QilUnary ndIsEmpty ) : QilNode

Generate code for QilNodeType.IsEmpty.

BranchingContext.OnFalse context: is-empty(expr) ==> foreach (item in expr) goto LabelBranch; BranchingContext.OnTrue context: is-empty(expr) ==> foreach (item in expr) break; ... LabelOnEnd: (called if foreach is empty) goto LabelBranch; BranchingContext.None context: is-empty(expr) ==> foreach (item in expr) break; push true(); ... LabelOnEnd: (called if foreach is empty) push false();

VisitIsType ( QilTargetType ndIsType ) : QilNode

Generate code for QilNodeType.IsType.

VisitLe ( QilBinary ndLe ) : QilNode

Generate code for QilNodeType.Le.

VisitLength ( QilUnary ndSetLen ) : QilNode

Generate code for QilNodeType.Length.

int length = 0; foreach (item in expr) length++;

VisitLet ( QilIterator ndLet ) : QilNode

Generate code for a QilNodeType.Let.

VisitLiteralDecimal ( QilLiteral ndDec ) : QilNode

Generate code for QilNodeType.LiteralDecimal.

VisitLiteralDouble ( QilLiteral ndDbl ) : QilNode

Generate code for QilNodeType.LiteralDouble.

VisitLiteralInt32 ( QilLiteral ndInt ) : QilNode

Generate code for QilNodeType.LiteralInt32.

VisitLiteralInt64 ( QilLiteral ndLong ) : QilNode

Generate code for QilNodeType.LiteralInt64.

VisitLiteralQName ( QilName ndQName ) : QilNode

Generate code for QilNodeType.LiteralQName.

VisitLiteralString ( QilLiteral ndStr ) : QilNode

Generate code for QilNodeType.LiteralString.

VisitLocalNameOf ( QilUnary ndName ) : QilNode

Generate code for QilNodeType.LocalNameOf.

VisitLoop ( QilLoop ndLoop ) : QilNode

Generate code for a QilNodeType.Loop.

VisitLt ( QilBinary ndLt ) : QilNode

Generate code for QilNodeType.Lt.

VisitMaximum ( QilUnary ndMax ) : QilNode

Generate code for QilNodeType.Maximum.

VisitMinimum ( QilUnary ndMin ) : QilNode

Generate code for QilNodeType.Minimum.

VisitModulo ( QilBinary ndMod ) : QilNode

Generate code for QilNodeType.Modulo.

VisitMultiply ( QilBinary ndMul ) : QilNode

Generate code for QilNodeType.Multiply.

VisitNameOf ( QilUnary ndName ) : QilNode

Generate code for QilNodeType.NameOf.

VisitNamespaceDecl ( QilBinary ndNmsp ) : QilNode

Generate code for QilNodeType.NamespaceDecl.

VisitNamespaceUriOf ( QilUnary ndName ) : QilNode

Generate code for QilNodeType.NamespaceUriOf.

VisitNe ( QilBinary ndNe ) : QilNode

Generate code for QilNodeType.Ne.

VisitNegate ( QilUnary ndNeg ) : QilNode

Generate code for QilNodeType.Negate.

VisitNodeRange ( QilBinary ndRange ) : QilNode

Find physical query plan for QilNodeType.NodeRange.

VisitNop ( QilUnary ndNop ) : QilNode

Generate code for QilNodeType.Nop.

VisitNot ( QilUnary ndNot ) : QilNode

Generate code for QilNodeType.Not.

BranchingContext.OnFalse context: not(expr1) ==> if (expr1) goto LabelParent; BranchingContext.OnTrue context: not(expr1) ==> if (!expr1) goto LabelParent; BranchingContext.None context: not(expr1) ==> if (expr1) goto LabelTemp; push false(); goto LabelSkip; LabelTemp: push true(); LabelSkip:

VisitOptimizeBarrier ( QilUnary ndBarrier ) : QilNode

Generate code for QilNodeType.OptimizeBarrier.

VisitOr ( QilBinary ndOr ) : QilNode

Generate code for QilNodeType.Or.

BranchingContext.OnFalse context: (expr1) or (expr2) ==> if (expr1) goto LabelTemp; if (!expr2) goto LabelParent; LabelTemp: BranchingContext.OnTrue context: (expr1) or (expr2) ==> if (expr1) goto LabelParent; if (expr1) goto LabelParent; BranchingContext.None context: (expr1) or (expr2) ==> if (expr1) goto LabelTemp; if (expr1) goto LabelTemp; push false(); goto LabelSkip; LabelTemp: push true(); LabelSkip:

VisitPICtor ( QilBinary ndPI ) : QilNode

Generate code for QilNodeType.PICtor.

VisitParameter ( QilParameter ndParameter ) : QilNode

Generate code for a QilNodeType.Parameter.

VisitParent ( QilUnary ndParent ) : QilNode

Generate code for for QilNodeType.Parent.

VisitPositionOf ( QilUnary ndPos ) : QilNode

Generate code for QilNodeType.PositionOf.

VisitPreceding ( QilUnary ndPrec ) : QilNode

Find physical query plan for QilNodeType.Preceding.

VisitPrecedingSibling ( QilUnary ndPreSib ) : QilNode

Find physical query plan for QilNodeType.PrecedingSibling.

VisitPrefixOf ( QilUnary ndName ) : QilNode

Generate code for QilNodeType.PrefixOf.

VisitRawTextCtor ( QilUnary ndText ) : QilNode

Generate code for QilNodeType.RawTextCtor.

VisitRoot ( QilUnary ndRoot ) : QilNode

Generate code for for QilNodeType.Root.

VisitRtfCtor ( QilBinary ndRtf ) : QilNode

Generate code for for QilNodeType.RtfCtor.

VisitSequence ( QilList ndSeq ) : QilNode

Find physical query plan for QilNodeType.Sequence.

VisitSort ( QilLoop ndSort ) : QilNode

Generate code for QilNodeType.Sort.

VisitStrConcat ( QilStrConcat ndStrConcat ) : QilNode

Generate code for QilNodeType.StrConcat.

VisitStrLength ( QilUnary ndLen ) : QilNode

Generate code for QilNodeType.StrLength.

VisitStrParseQName ( QilBinary ndParsedTagName ) : QilNode

Generate code for QilNodeType.StrParseQName.

VisitSubtract ( QilBinary ndMinus ) : QilNode

Generate code for QilNodeType.Subtract.

VisitSum ( QilUnary ndSum ) : QilNode

Generate code for QilNodeType.Sum.

VisitTextCtor ( QilUnary ndText ) : QilNode

Generate code for QilNodeType.TextCtor.

VisitTrue ( QilNode ndTrue ) : QilNode

Generate code for QilNodeType.True.

BranchingContext.OnFalse context: [nothing] BranchingContext.OnTrue context: goto LabelParent; BranchingContext.None context: push true();

VisitTypeAssert ( QilTargetType ndTypeAssert ) : QilNode

Find physical query plan for QilNodeType.TypeAssert.

VisitUnion ( QilBinary ndUnion ) : QilNode

Generate code for QilNodeType.Union.

VisitWarning ( QilUnary ndWarning ) : QilNode

Generate code for QilNodeType.Warning.

VisitXPathFollowing ( QilUnary ndFoll ) : QilNode

Find physical query plan for QilNodeType.XPathFollowing.

VisitXPathNamespace ( QilUnary ndNmsp ) : QilNode

Find physical query plan for QilNodeType.XPathNamespace.

VisitXPathNodeValue ( QilUnary ndVal ) : QilNode

Generate code for QilNodeType.XPathNodeValue.

VisitXPathPreceding ( QilUnary ndPrec ) : QilNode

Find physical query plan for QilNodeType.XPathPreceding.

VisitXmlContext ( QilNode ndCtxt ) : QilNode

Generate code for QilNodeType.XmlContext.

Generates code to retrieve the default document using the XmlResolver.

VisitXsltConvert ( QilTargetType ndConv ) : QilNode

Generate code for QilNodeType.XsltConvert.

VisitXsltCopy ( QilBinary ndCopy ) : QilNode

Generate code for QilNodeType.XsltCopy.

VisitXsltCopyOf ( QilUnary ndCopyOf ) : QilNode

Generate code for QilNodeType.XsltCopyOf.

VisitXsltGenerateId ( QilUnary ndGenId ) : QilNode

Generate code for QilNodeType.XsltGenerateId.

VisitXsltInvokeEarlyBound ( QilInvokeEarlyBound ndInvoke ) : QilNode

Generate code for for QilNodeType.XsltInvokeEarlyBound.

VisitXsltInvokeLateBound ( QilInvokeLateBound ndInvoke ) : QilNode

Generate code for for QilNodeType.XsltInvokeLateBound.

Приватные методы

Метод Описание
AfterEndChecks ( QilNode ndCtor ) : void

This method is called after calling any WriteEnd??? method. It generates code to perform runtime construction checks separately. This should only be called if the XmlQueryOutput::EndElementChk method will *not* be called.

ArithmeticOp ( QilBinary ndOp ) : QilNode

Generate code for two-argument arithmetic operations.

BeforeStartChecks ( QilNode ndCtor ) : void

This method is called before calling any WriteEnd??? method. It generates code to perform runtime construction checks separately. This should only be called if the XmlQueryOutput::StartElementChk method will *not* be called.

CachesResult ( QilNode nd ) : bool

Returns true if the specified QilExpression node type is *guaranteed* to cache its results in an XmlQuerySequence, where items in the cache are stored using the default storage type.

CheckEnumAttrs ( XmlILConstructInfo info ) : bool

Return true if a runtime check needs to be made in order to transition into the EnumAttrs state.

CheckWithinContent ( XmlILConstructInfo info ) : bool

Return true if a runtime check needs to be made in order to transition into the WithinContent state.

ClrCompare ( QilNodeType relOp, XmlTypeCode code ) : void

For QilExpression types that map directly to CLR primitive types, the built-in CLR comparison operators can be used to perform the specified relational operation.

Compare ( QilBinary ndComp ) : void

Generate code for comparison operations.

ComparePosition ( QilBinary ndComp ) : void

Generate code for QilNodeType.VisitBefore and QilNodeType.VisitAfter.

ConditionalBranch ( QilNode ndBranch, Type itemStorageType, LocalBuilder locResult ) : void

Generate code for one of the branches of QilNodeType.Conditional.

CopySequence ( QilNode nd ) : void

Iterate over items produced by the "nd" expression and copy each item to output.

CreateAggregator ( QilUnary ndAgg, string aggName, XmlILStorageMethods methods, MethodInfo methAgg, MethodInfo methResult ) : QilNode

Generate code for QilNodeType.Sum, QilNodeType.Average, QilNodeType.Minimum, and QilNodeType.Maximum.

CreateContainerIterator ( QilUnary ndDod, string iterName, Type iterType, MethodInfo methCreate, MethodInfo methNext, XmlNodeKindFlags kinds, QilName ndName, TriState orSelf ) : void

Generate boiler-plate code to create an Xml iterator that controls a nested iterator.

Iterator iter; iter.Create(filter [, orSelf]); ...nested iterator... navInput = nestedNested; goto LabelCall; LabelNext: navInput = null; LabelCall: switch (iter.MoveNext(navInput)) { case IteratorState.NoMoreNodes: goto LabelNextCtxt; case IteratorState.NextInputNode: goto LabelNextNested; }

CreateFilteredIterator ( QilNode ndCtxt, string iterName, Type iterType, MethodInfo methCreate, MethodInfo methNext, XmlNodeKindFlags kinds, QilName ndName, TriState orSelf, QilNode ndEnd ) : void

Generate boiler-plate code to create an Xml iterator that uses an XmlNavigatorFilter to filter items.

Iterator iter; iter.Create(navCtxt, filter [, orSelf] [, navEnd]); LabelNext: if (!iter.MoveNext()) goto LabelNextCtxt;

CreateSetIterator ( QilBinary ndSet, string iterName, Type iterType, MethodInfo methCreate, MethodInfo methNext ) : QilNode

Generate code to combine nodes from two nested iterators using Union, Intersection, or Difference semantics.

CreateSimpleIterator ( QilNode ndCtxt, string iterName, Type iterType, MethodInfo methCreate, MethodInfo methNext ) : void

Generate boiler-plate code to create a simple Xml iterator.

Iterator iter; iter.Create(navCtxt); LabelNext: if (!iter.MoveNext()) goto LabelNextCtxt;

ElementCachesAttributes ( XmlILConstructInfo info ) : bool

Returns true if the specified element should cache attributes.

EndBinding ( QilIterator ndIter ) : void

Mark iterator variables as out-of-scope.

EndConjunctiveTests ( BranchingContext brctxt, Label lblBranch, Label lblOnFalse ) : void

Anchor any remaining labels.

EndNestedIterator ( QilNode nd ) : void

End construction of the current iterator.

EndWriterLoop ( QilNode nd, bool hasOnEnd, Label lblOnEnd ) : void

Construction within a loop is ending. If transition from non-Any to Any state occurs, then ensure that runtime state will be set.

Function ( QilFunction ndFunc ) : void

Generate code for the specified function.

GenerateConcat ( QilNode ndStr, LocalBuilder locStringConcat ) : void

Generate code to concatenate string values returned by expression "ndStr" using the StringConcat helper class.

GenerateContainerIterator ( QilNode nd, LocalBuilder locIter, Label lblOnEndNested, MethodInfo methNext, Type itemStorageType ) : void

Generate boiler-plate code that calls MoveNext on an Xml iterator that controls a nested iterator. Iterator should have already been created by calling code.

... goto LabelCall; LabelNext: navCtxt = null; LabelCall: switch (iter.MoveNext(navCtxt)) { case IteratorState.NoMoreNodes: goto LabelNextCtxt; case IteratorState.NextInputNode: goto LabelNextNested; }

GenerateSimpleIterator ( Type itemStorageType, LocalBuilder locIter, MethodInfo methNext ) : void

Generate boiler-plate code that calls MoveNext on a simple Xml iterator. Iterator should have already been created by calling code.

... LabelNext: if (!iter.MoveNext()) goto LabelNextCtxt;

GetItemStorageType ( QilNode nd ) : Type

Shortcut call to XmlILTypeHelper.GetStorageType, using an expression's prime type.

GetItemStorageType ( XmlQueryType typ ) : Type

Shortcut call to XmlILTypeHelper.GetStorageType, using the prime type.

GetStorageType ( QilNode nd ) : Type

Shortcut call to XmlILTypeHelper.GetStorageType.

GetStorageType ( XmlQueryType typ ) : Type

Shortcut call to XmlILTypeHelper.GetStorageType.

GetXsltConvertMethod ( XmlQueryType typSrc, XmlQueryType typDst, MethodInfo &meth ) : bool

Get the XsltConvert method that converts from "typSrc" to "typDst". Return false if no such method exists. This conversion matrix should match the one in XsltConvert.ExternalValueToExternalValue.

HandleDodPatterns ( QilUnary ndDod ) : bool

There are a number of path patterns that can be rooted at DocOrderDistinct nodes. Determine whether one of these patterns has been previously matched on "ndDod". If so, generate code for the pattern and return true. Otherwise, just return false.

HandleFilterPatterns ( QilLoop ndFilter ) : bool

There are a number of path patterns that can be rooted at Filter nodes. Determine whether one of these patterns has been previously matched on "ndFilter". If so, generate code for the pattern and return true. Otherwise, just return false.

IsNodeTypeUnion ( XmlNodeKindFlags xmlTypes ) : bool

Return true if more than one node type is set.

LoadNameAndType ( XPathNodeType nodeType, QilNode ndName, bool isStart, bool callChk ) : GenerateNameType

Load XmlQueryOutput, load a name (computed or literal) and load an index to an Xml schema type. Return an enumeration that specifies what kind of name was loaded.

LoadSelectFilter ( XmlNodeKindFlags xmlTypes, QilName ndName ) : void

Load an XmlNavigatorFilter that matches only the specified name and types onto the stack.

MatchesNodeKinds ( QilTargetType ndIsType, XmlQueryType typDerived, XmlQueryType typBase ) : bool

Faster code can be generated if type test is just a node kind test. If this special case is detected, then generate code and return true. Otherwise, return false, and a call to MatchesXmlType will be generated instead.

MightHaveNamespacesAfterAttributes ( XmlILConstructInfo info ) : bool

Returns true if the specified node's owner element might have local namespaces added to it after attributes have already been added.

NestedConstruction ( QilNode nd ) : void

Generate code to cache a sequence of items that are pushed to output.

NestedVisit ( QilNode nd ) : void

Calls NestedVisit(QilNode, Type, bool), storing result in the default storage type for "nd".

NestedVisit ( QilNode nd, Label lblOnEnd ) : void

Recursively generate code to iterate over the results of the "nd" expression. When the expression has been fully iterated, it will jump to "lblOnEnd".

NestedVisit ( QilNode nd, Type itemStorageType, bool isCached ) : void

Recursively generate code to iterate over the results of the "nd" expression. If "nd" is pushed to the writer, then there are no results. If "nd" is a singleton expression and isCached is false, then generate code to construct the singleton. Otherwise, cache the sequence in an XmlQuerySequence object. Ensure that all items are converted to the specified "itemStorageType".

NestedVisitEnsureCache ( QilNode nd, Type itemStorageType ) : void

Generate code for the QilExpression node and ensure that results are fully cached as an XmlQuerySequence. All results should be converted to "itemStorageType" before being added to the cache.

NestedVisitEnsureLocal ( QilNode nd, LocalBuilder loc ) : void

Call NestedVisit(QilNode) and ensure that result is stored in local variable "loc".

NestedVisitEnsureStack ( QilNode nd ) : void

Call NestedVisit(QilNode) and ensure that result is pushed onto the IL stack.

NestedVisitEnsureStack ( QilNode ndLeft, QilNode ndRight ) : void

Generate code for both QilExpression nodes and ensure that each result is pushed onto the IL stack.

NestedVisitEnsureStack ( QilNode nd, Type itemStorageType, bool isCached ) : void

Call NestedVisit(QilNode, Type, bool) and ensure that result is pushed onto the IL stack.

NestedVisitWithBranch ( QilNode nd, BranchingContext brctxt, Label lblBranch ) : void

Start a nested iterator in a branching context and recursively generate code for the specified QilExpression node.

PrepareGlobalValues ( QilList globalIterators ) : void

Create IteratorDescriptor for each global value. This pre-visit is necessary because a global early in the list may reference a global later in the list and therefore expect its IteratorDescriptor to already be initialized.

QilConstructorToNodeType ( QilNodeType typ ) : XPathNodeType

Map a QilExpression constructor type into the XPathNodeType enumeration.

QilXmlToXPathNodeType ( XmlNodeKindFlags xmlTypes ) : XPathNodeType

Map the XmlNodeKindFlags enumeration into the XPathNodeType enumeration.

Sequence ( QilList ndSeq ) : void

Generate code for QilNodeType.Sequence, when sort-merging to retain document order is not necessary.

StartBinding ( QilIterator ndIter ) : void

Generate code for a Let, For, or Parameter iterator. Bind iterated value to a variable.

StartConjunctiveTests ( BranchingContext brctxt, Label lblBranch ) : Label

Fixup branching context for all but the last test in a conjunctive (Logical And) expression. Return a temporary label which will be passed to StartLastAndBranch() and EndAndBranch().

StartForBinding ( QilIterator ndFor, OptimizerPatterns patt ) : void

Bind values produced by the "ndFor" expression to a non-stack location that can later be referenced.

StartLastConjunctiveTest ( BranchingContext brctxt, Label lblBranch, Label lblOnFalse ) : void

Fixup branching context for the last test in a conjunctive (Logical And) expression.

StartNestedIterator ( QilNode nd ) : void

Start construction of a new nested iterator. If this.iterCurr == null, then the new iterator is a top-level, or root iterator. Otherwise, the new iterator will be nested within the current iterator.

StartNestedIterator ( QilNode nd, Label lblOnEnd ) : void

Calls StartNestedIterator(nd) and also sets up the nested iterator to branch to "lblOnEnd" when iteration is complete.

StartWriterLoop ( QilNode nd, bool &hasOnEnd, Label &lblOnEnd ) : void

Construction within a loop is starting. If transition from non-Any to Any state occurs, then ensure that runtime state will be set.

SyncToNavigator ( LocalBuilder locNav, QilNode ndCtxt ) : void

Ensure that the "locNav" navigator is positioned to the context node "ndCtxt".

TryNameCompare ( QilNodeType relOp, QilNode ndFirst, QilNode ndSecond ) : bool

If the comparison involves a qname, then perform comparison using atoms and return true. Otherwise, return false (caller will perform comparison).

TryZeroCompare ( QilNodeType relOp, QilNode ndFirst, QilNode ndSecond ) : bool

If the first argument is a constant value that evaluates to zero, then a more optimal instruction sequence can be generated that does not have to push the zero onto the stack. Instead, a Brfalse or Brtrue instruction can be used.

VisitEmpty ( QilNode nd ) : void

Generate code for the empty sequence.

VisitGlobalValues ( QilList globalIterators ) : void

Visit each global variable or parameter. Create a IteratorDescriptor for each global value. Generate code for default values.

VisitNodeProperty ( QilUnary ndProp ) : QilNode

Generate code to push the local name, namespace uri, or qname of the context navigator.

VisitSortKey ( QilSortKey ndKey, LocalBuilder locKeys ) : void

Generate code to add a (value, collation) sort key to the XmlSortKeyAccumulator.

VisitStrParseQName ( QilBinary ndParsedTagName, bool preservePrefix ) : void

Generate code for QilNodeType.StrParseQName.

VisitTextCtor ( QilUnary ndText, bool disableOutputEscaping ) : QilNode

Generate code for QilNodeType.TextCtor and QilNodeType.RawTextCtor.

ZeroCompare ( QilNodeType relOp, bool isBoolVal ) : void

Generate code to compare the top stack value to 0 by using the Brfalse or Brtrue instructions, which avoid pushing zero onto the stack. Both of these instructions test for null/zero/false.

Описание методов

StartLetBinding() публичный Метод

Bind values in the "ndLet" expression to a non-stack location that can later be referenced.
public StartLetBinding ( QilIterator ndLet ) : void
ndLet System.Xml.Xsl.Qil.QilIterator
Результат void

Visit() защищенный Метод

Generate a query plan for the QilExpression subgraph.
protected Visit ( QilNode nd ) : QilNode
nd QilNode
Результат QilNode

Visit() публичный Метод

Visits the specified QilExpression graph and generates MSIL code.
public Visit ( QilExpression qil, GenerateHelper helper, MethodInfo methRoot ) : void
qil System.Xml.Xsl.Qil.QilExpression
helper GenerateHelper
methRoot System.Reflection.MethodInfo
Результат void

VisitAdd() защищенный Метод

Generate code for QilNodeType.Add.
protected VisitAdd ( QilBinary ndPlus ) : QilNode
ndPlus System.Xml.Xsl.Qil.QilBinary
Результат QilNode

VisitAfter() защищенный Метод

Generate code for QilNodeType.VisitAfter.
protected VisitAfter ( QilBinary ndAfter ) : QilNode
ndAfter System.Xml.Xsl.Qil.QilBinary
Результат QilNode

VisitAncestor() защищенный Метод

Find physical query plan for QilNodeType.Ancestor.
protected VisitAncestor ( QilUnary ndAnc ) : QilNode
ndAnc System.Xml.Xsl.Qil.QilUnary
Результат QilNode

VisitAncestorOrSelf() защищенный Метод

Find physical query plan for QilNodeType.AncestorOrSelf.
protected VisitAncestorOrSelf ( QilUnary ndAnc ) : QilNode
ndAnc System.Xml.Xsl.Qil.QilUnary
Результат QilNode

VisitAnd() защищенный Метод

Generate code for QilNodeType.And.
BranchingContext.OnFalse context: (expr1) and (expr2) ==> if (!expr1) goto LabelParent; if (!expr2) goto LabelParent; BranchingContext.OnTrue context: (expr1) and (expr2) ==> if (!expr1) goto LabelTemp; if (expr1) goto LabelParent; LabelTemp: BranchingContext.None context: (expr1) and (expr2) ==> if (!expr1) goto LabelTemp; if (!expr1) goto LabelTemp; push true(); goto LabelSkip; LabelTemp: push false(); LabelSkip:
protected VisitAnd ( QilBinary ndAnd ) : QilNode
ndAnd System.Xml.Xsl.Qil.QilBinary
Результат QilNode

VisitAttribute() защищенный Метод

Generate code for for QilNodeType.Attribute.
protected VisitAttribute ( QilBinary ndAttr ) : QilNode
ndAttr System.Xml.Xsl.Qil.QilBinary
Результат QilNode

VisitAttributeCtor() защищенный Метод

Generate code for QilNodeType.AttributeCtor.
protected VisitAttributeCtor ( QilBinary ndAttr ) : QilNode
ndAttr System.Xml.Xsl.Qil.QilBinary
Результат QilNode

VisitAverage() защищенный Метод

Generate code for QilNodeType.Average.
protected VisitAverage ( QilUnary ndAvg ) : QilNode
ndAvg System.Xml.Xsl.Qil.QilUnary
Результат QilNode

VisitBefore() защищенный Метод

Generate code for QilNodeType.VisitBefore.
protected VisitBefore ( QilBinary ndBefore ) : QilNode
ndBefore System.Xml.Xsl.Qil.QilBinary
Результат QilNode

VisitChildren() защищенный Метод

VisitChildren should never be called.
protected VisitChildren ( QilNode parent ) : QilNode
parent QilNode
Результат QilNode

VisitChoice() защищенный Метод

Generate code for QilNodeType.Choice.
protected VisitChoice ( QilChoice ndChoice ) : QilNode
ndChoice System.Xml.Xsl.Qil.QilChoice
Результат QilNode

VisitCommentCtor() защищенный Метод

Generate code for QilNodeType.CommentCtor.
protected VisitCommentCtor ( QilUnary ndComment ) : QilNode
ndComment System.Xml.Xsl.Qil.QilUnary
Результат QilNode

VisitConditional() защищенный Метод

Generate code for QilNodeType.Conditional.
protected VisitConditional ( QilTernary ndCond ) : QilNode
ndCond System.Xml.Xsl.Qil.QilTernary
Результат QilNode

VisitContent() защищенный Метод

Generate code for for QilNodeType.Content.
protected VisitContent ( QilUnary ndContent ) : QilNode
ndContent System.Xml.Xsl.Qil.QilUnary
Результат QilNode

VisitDataSource() защищенный Метод

Generate code for QilNodeType.DataSource.
Generates code to retrieve a document using the XmlResolver.
protected VisitDataSource ( QilDataSource ndSrc ) : QilNode
ndSrc System.Xml.Xsl.Qil.QilDataSource
Результат QilNode

VisitDeref() защищенный Метод

Generate code for for QilNodeType.Deref.
protected VisitDeref ( QilBinary ndDeref ) : QilNode
ndDeref System.Xml.Xsl.Qil.QilBinary
Результат QilNode

VisitDescendant() защищенный Метод

Find physical query plan for QilNodeType.Descendant.
protected VisitDescendant ( QilUnary ndDesc ) : QilNode
ndDesc System.Xml.Xsl.Qil.QilUnary
Результат QilNode

VisitDescendantOrSelf() защищенный Метод

Generate code for for QilNodeType.DescendantOrSelf.
protected VisitDescendantOrSelf ( QilUnary ndDesc ) : QilNode
ndDesc System.Xml.Xsl.Qil.QilUnary
Результат QilNode

VisitDifference() защищенный Метод

Generate code for QilNodeType.Difference.
protected VisitDifference ( QilBinary ndDiff ) : QilNode
ndDiff System.Xml.Xsl.Qil.QilBinary
Результат QilNode

VisitDivide() защищенный Метод

Generate code for QilNodeType.Divide.
protected VisitDivide ( QilBinary ndDiv ) : QilNode
ndDiv System.Xml.Xsl.Qil.QilBinary
Результат QilNode

VisitDocOrderDistinct() защищенный Метод

Generate code for for QilNodeType.DocOrderDistinct.
protected VisitDocOrderDistinct ( QilUnary ndDod ) : QilNode
ndDod System.Xml.Xsl.Qil.QilUnary
Результат QilNode

VisitDocumentCtor() защищенный Метод

Generate code for QilNodeType.DocumentCtor.
protected VisitDocumentCtor ( QilUnary ndDoc ) : QilNode
ndDoc System.Xml.Xsl.Qil.QilUnary
Результат QilNode

VisitElementCtor() защищенный Метод

Generate code for QilNodeType.ElementCtor.
protected VisitElementCtor ( QilBinary ndElem ) : QilNode
ndElem System.Xml.Xsl.Qil.QilBinary
Результат QilNode

VisitEq() защищенный Метод

Generate code for QilNodeType.Eq.
protected VisitEq ( QilBinary ndEq ) : QilNode
ndEq System.Xml.Xsl.Qil.QilBinary
Результат QilNode

VisitError() защищенный Метод

Generate code for QilNodeType.Error.
protected VisitError ( QilUnary ndErr ) : QilNode
ndErr System.Xml.Xsl.Qil.QilUnary
Результат QilNode

VisitFalse() защищенный Метод

Generate code for QilNodeType.False.
BranchingContext.OnFalse context: goto LabelParent; BranchingContext.OnTrue context: [nothing] BranchingContext.None context: push false();
protected VisitFalse ( QilNode ndFalse ) : QilNode
ndFalse QilNode
Результат QilNode

VisitFilter() защищенный Метод

Generate code for a QilNodeType.Filter.
protected VisitFilter ( QilLoop ndFilter ) : QilNode
ndFilter System.Xml.Xsl.Qil.QilLoop
Результат QilNode

VisitFollowingSibling() защищенный Метод

Find physical query plan for QilNodeType.FollowingSibling.
protected VisitFollowingSibling ( QilUnary ndFollSib ) : QilNode
ndFollSib System.Xml.Xsl.Qil.QilUnary
Результат QilNode

VisitFor() защищенный Метод

Generate code for a QilNodeType.For.
protected VisitFor ( QilIterator ndFor ) : QilNode
ndFor System.Xml.Xsl.Qil.QilIterator
Результат QilNode

VisitGe() защищенный Метод

Generate code for QilNodeType.Ne.
protected VisitGe ( QilBinary ndGe ) : QilNode
ndGe System.Xml.Xsl.Qil.QilBinary
Результат QilNode

VisitGt() защищенный Метод

Generate code for QilNodeType.Gt.
protected VisitGt ( QilBinary ndGt ) : QilNode
ndGt System.Xml.Xsl.Qil.QilBinary
Результат QilNode

VisitIntersection() защищенный Метод

Generate code for QilNodeType.Intersection.
protected VisitIntersection ( QilBinary ndInter ) : QilNode
ndInter System.Xml.Xsl.Qil.QilBinary
Результат QilNode

VisitInvoke() защищенный Метод

Generate code for for QilNodeType.Invoke.
protected VisitInvoke ( QilInvoke ndInvoke ) : QilNode
ndInvoke System.Xml.Xsl.Qil.QilInvoke
Результат QilNode

VisitIs() защищенный Метод

Generate code for QilNodeType.VisitIs.
protected VisitIs ( QilBinary ndIs ) : QilNode
ndIs System.Xml.Xsl.Qil.QilBinary
Результат QilNode

VisitIsEmpty() защищенный Метод

Generate code for QilNodeType.IsEmpty.
BranchingContext.OnFalse context: is-empty(expr) ==> foreach (item in expr) goto LabelBranch; BranchingContext.OnTrue context: is-empty(expr) ==> foreach (item in expr) break; ... LabelOnEnd: (called if foreach is empty) goto LabelBranch; BranchingContext.None context: is-empty(expr) ==> foreach (item in expr) break; push true(); ... LabelOnEnd: (called if foreach is empty) push false();
protected VisitIsEmpty ( QilUnary ndIsEmpty ) : QilNode
ndIsEmpty System.Xml.Xsl.Qil.QilUnary
Результат QilNode

VisitIsType() защищенный Метод

Generate code for QilNodeType.IsType.
protected VisitIsType ( QilTargetType ndIsType ) : QilNode
ndIsType System.Xml.Xsl.Qil.QilTargetType
Результат QilNode

VisitLe() защищенный Метод

Generate code for QilNodeType.Le.
protected VisitLe ( QilBinary ndLe ) : QilNode
ndLe System.Xml.Xsl.Qil.QilBinary
Результат QilNode

VisitLength() защищенный Метод

Generate code for QilNodeType.Length.
int length = 0; foreach (item in expr) length++;
protected VisitLength ( QilUnary ndSetLen ) : QilNode
ndSetLen System.Xml.Xsl.Qil.QilUnary
Результат QilNode

VisitLet() защищенный Метод

Generate code for a QilNodeType.Let.
protected VisitLet ( QilIterator ndLet ) : QilNode
ndLet System.Xml.Xsl.Qil.QilIterator
Результат QilNode

VisitLiteralDecimal() защищенный Метод

Generate code for QilNodeType.LiteralDecimal.
protected VisitLiteralDecimal ( QilLiteral ndDec ) : QilNode
ndDec System.Xml.Xsl.Qil.QilLiteral
Результат QilNode

VisitLiteralDouble() защищенный Метод

Generate code for QilNodeType.LiteralDouble.
protected VisitLiteralDouble ( QilLiteral ndDbl ) : QilNode
ndDbl System.Xml.Xsl.Qil.QilLiteral
Результат QilNode

VisitLiteralInt32() защищенный Метод

Generate code for QilNodeType.LiteralInt32.
protected VisitLiteralInt32 ( QilLiteral ndInt ) : QilNode
ndInt QilLiteral
Результат QilNode

VisitLiteralInt64() защищенный Метод

Generate code for QilNodeType.LiteralInt64.
protected VisitLiteralInt64 ( QilLiteral ndLong ) : QilNode
ndLong QilLiteral
Результат QilNode

VisitLiteralQName() защищенный Метод

Generate code for QilNodeType.LiteralQName.
protected VisitLiteralQName ( QilName ndQName ) : QilNode
ndQName QilName
Результат QilNode

VisitLiteralString() защищенный Метод

Generate code for QilNodeType.LiteralString.
protected VisitLiteralString ( QilLiteral ndStr ) : QilNode
ndStr QilLiteral
Результат QilNode

VisitLocalNameOf() защищенный Метод

Generate code for QilNodeType.LocalNameOf.
protected VisitLocalNameOf ( QilUnary ndName ) : QilNode
ndName QilUnary
Результат QilNode

VisitLoop() защищенный Метод

Generate code for a QilNodeType.Loop.
protected VisitLoop ( QilLoop ndLoop ) : QilNode
ndLoop QilLoop
Результат QilNode

VisitLt() защищенный Метод

Generate code for QilNodeType.Lt.
protected VisitLt ( QilBinary ndLt ) : QilNode
ndLt QilBinary
Результат QilNode

VisitMaximum() защищенный Метод

Generate code for QilNodeType.Maximum.
protected VisitMaximum ( QilUnary ndMax ) : QilNode
ndMax QilUnary
Результат QilNode

VisitMinimum() защищенный Метод

Generate code for QilNodeType.Minimum.
protected VisitMinimum ( QilUnary ndMin ) : QilNode
ndMin QilUnary
Результат QilNode

VisitModulo() защищенный Метод

Generate code for QilNodeType.Modulo.
protected VisitModulo ( QilBinary ndMod ) : QilNode
ndMod QilBinary
Результат QilNode

VisitMultiply() защищенный Метод

Generate code for QilNodeType.Multiply.
protected VisitMultiply ( QilBinary ndMul ) : QilNode
ndMul QilBinary
Результат QilNode

VisitNameOf() защищенный Метод

Generate code for QilNodeType.NameOf.
protected VisitNameOf ( QilUnary ndName ) : QilNode
ndName QilUnary
Результат QilNode

VisitNamespaceDecl() защищенный Метод

Generate code for QilNodeType.NamespaceDecl.
protected VisitNamespaceDecl ( QilBinary ndNmsp ) : QilNode
ndNmsp QilBinary
Результат QilNode

VisitNamespaceUriOf() защищенный Метод

Generate code for QilNodeType.NamespaceUriOf.
protected VisitNamespaceUriOf ( QilUnary ndName ) : QilNode
ndName QilUnary
Результат QilNode

VisitNe() защищенный Метод

Generate code for QilNodeType.Ne.
protected VisitNe ( QilBinary ndNe ) : QilNode
ndNe QilBinary
Результат QilNode

VisitNegate() защищенный Метод

Generate code for QilNodeType.Negate.
protected VisitNegate ( QilUnary ndNeg ) : QilNode
ndNeg QilUnary
Результат QilNode

VisitNodeRange() защищенный Метод

Find physical query plan for QilNodeType.NodeRange.
protected VisitNodeRange ( QilBinary ndRange ) : QilNode
ndRange QilBinary
Результат QilNode

VisitNop() защищенный Метод

Generate code for QilNodeType.Nop.
protected VisitNop ( QilUnary ndNop ) : QilNode
ndNop QilUnary
Результат QilNode

VisitNot() защищенный Метод

Generate code for QilNodeType.Not.
BranchingContext.OnFalse context: not(expr1) ==> if (expr1) goto LabelParent; BranchingContext.OnTrue context: not(expr1) ==> if (!expr1) goto LabelParent; BranchingContext.None context: not(expr1) ==> if (expr1) goto LabelTemp; push false(); goto LabelSkip; LabelTemp: push true(); LabelSkip:
protected VisitNot ( QilUnary ndNot ) : QilNode
ndNot QilUnary
Результат QilNode

VisitOptimizeBarrier() защищенный Метод

Generate code for QilNodeType.OptimizeBarrier.
protected VisitOptimizeBarrier ( QilUnary ndBarrier ) : QilNode
ndBarrier QilUnary
Результат QilNode

VisitOr() защищенный Метод

Generate code for QilNodeType.Or.
BranchingContext.OnFalse context: (expr1) or (expr2) ==> if (expr1) goto LabelTemp; if (!expr2) goto LabelParent; LabelTemp: BranchingContext.OnTrue context: (expr1) or (expr2) ==> if (expr1) goto LabelParent; if (expr1) goto LabelParent; BranchingContext.None context: (expr1) or (expr2) ==> if (expr1) goto LabelTemp; if (expr1) goto LabelTemp; push false(); goto LabelSkip; LabelTemp: push true(); LabelSkip:
protected VisitOr ( QilBinary ndOr ) : QilNode
ndOr QilBinary
Результат QilNode

VisitPICtor() защищенный Метод

Generate code for QilNodeType.PICtor.
protected VisitPICtor ( QilBinary ndPI ) : QilNode
ndPI QilBinary
Результат QilNode

VisitParameter() защищенный Метод

Generate code for a QilNodeType.Parameter.
protected VisitParameter ( QilParameter ndParameter ) : QilNode
ndParameter QilParameter
Результат QilNode

VisitParent() защищенный Метод

Generate code for for QilNodeType.Parent.
protected VisitParent ( QilUnary ndParent ) : QilNode
ndParent QilUnary
Результат QilNode

VisitPositionOf() защищенный Метод

Generate code for QilNodeType.PositionOf.
protected VisitPositionOf ( QilUnary ndPos ) : QilNode
ndPos QilUnary
Результат QilNode

VisitPreceding() защищенный Метод

Find physical query plan for QilNodeType.Preceding.
protected VisitPreceding ( QilUnary ndPrec ) : QilNode
ndPrec QilUnary
Результат QilNode

VisitPrecedingSibling() защищенный Метод

Find physical query plan for QilNodeType.PrecedingSibling.
protected VisitPrecedingSibling ( QilUnary ndPreSib ) : QilNode
ndPreSib QilUnary
Результат QilNode

VisitPrefixOf() защищенный Метод

Generate code for QilNodeType.PrefixOf.
protected VisitPrefixOf ( QilUnary ndName ) : QilNode
ndName QilUnary
Результат QilNode

VisitRawTextCtor() защищенный Метод

Generate code for QilNodeType.RawTextCtor.
protected VisitRawTextCtor ( QilUnary ndText ) : QilNode
ndText QilUnary
Результат QilNode

VisitRoot() защищенный Метод

Generate code for for QilNodeType.Root.
protected VisitRoot ( QilUnary ndRoot ) : QilNode
ndRoot QilUnary
Результат QilNode

VisitRtfCtor() защищенный Метод

Generate code for for QilNodeType.RtfCtor.
protected VisitRtfCtor ( QilBinary ndRtf ) : QilNode
ndRtf QilBinary
Результат QilNode

VisitSequence() защищенный Метод

Find physical query plan for QilNodeType.Sequence.
protected VisitSequence ( QilList ndSeq ) : QilNode
ndSeq QilList
Результат QilNode

VisitSort() защищенный Метод

Generate code for QilNodeType.Sort.
protected VisitSort ( QilLoop ndSort ) : QilNode
ndSort QilLoop
Результат QilNode

VisitStrConcat() защищенный Метод

Generate code for QilNodeType.StrConcat.
protected VisitStrConcat ( QilStrConcat ndStrConcat ) : QilNode
ndStrConcat QilStrConcat
Результат QilNode

VisitStrLength() защищенный Метод

Generate code for QilNodeType.StrLength.
protected VisitStrLength ( QilUnary ndLen ) : QilNode
ndLen QilUnary
Результат QilNode

VisitStrParseQName() защищенный Метод

Generate code for QilNodeType.StrParseQName.
protected VisitStrParseQName ( QilBinary ndParsedTagName ) : QilNode
ndParsedTagName QilBinary
Результат QilNode

VisitSubtract() защищенный Метод

Generate code for QilNodeType.Subtract.
protected VisitSubtract ( QilBinary ndMinus ) : QilNode
ndMinus QilBinary
Результат QilNode

VisitSum() защищенный Метод

Generate code for QilNodeType.Sum.
protected VisitSum ( QilUnary ndSum ) : QilNode
ndSum QilUnary
Результат QilNode

VisitTextCtor() защищенный Метод

Generate code for QilNodeType.TextCtor.
protected VisitTextCtor ( QilUnary ndText ) : QilNode
ndText QilUnary
Результат QilNode

VisitTrue() защищенный Метод

Generate code for QilNodeType.True.
BranchingContext.OnFalse context: [nothing] BranchingContext.OnTrue context: goto LabelParent; BranchingContext.None context: push true();
protected VisitTrue ( QilNode ndTrue ) : QilNode
ndTrue QilNode
Результат QilNode

VisitTypeAssert() защищенный Метод

Find physical query plan for QilNodeType.TypeAssert.
protected VisitTypeAssert ( QilTargetType ndTypeAssert ) : QilNode
ndTypeAssert QilTargetType
Результат QilNode

VisitUnion() защищенный Метод

Generate code for QilNodeType.Union.
protected VisitUnion ( QilBinary ndUnion ) : QilNode
ndUnion QilBinary
Результат QilNode

VisitWarning() защищенный Метод

Generate code for QilNodeType.Warning.
protected VisitWarning ( QilUnary ndWarning ) : QilNode
ndWarning QilUnary
Результат QilNode

VisitXPathFollowing() защищенный Метод

Find physical query plan for QilNodeType.XPathFollowing.
protected VisitXPathFollowing ( QilUnary ndFoll ) : QilNode
ndFoll QilUnary
Результат QilNode

VisitXPathNamespace() защищенный Метод

Find physical query plan for QilNodeType.XPathNamespace.
protected VisitXPathNamespace ( QilUnary ndNmsp ) : QilNode
ndNmsp QilUnary
Результат QilNode

VisitXPathNodeValue() защищенный Метод

Generate code for QilNodeType.XPathNodeValue.
protected VisitXPathNodeValue ( QilUnary ndVal ) : QilNode
ndVal QilUnary
Результат QilNode

VisitXPathPreceding() защищенный Метод

Find physical query plan for QilNodeType.XPathPreceding.
protected VisitXPathPreceding ( QilUnary ndPrec ) : QilNode
ndPrec QilUnary
Результат QilNode

VisitXmlContext() защищенный Метод

Generate code for QilNodeType.XmlContext.
Generates code to retrieve the default document using the XmlResolver.
protected VisitXmlContext ( QilNode ndCtxt ) : QilNode
ndCtxt QilNode
Результат QilNode

VisitXsltConvert() защищенный Метод

Generate code for QilNodeType.XsltConvert.
protected VisitXsltConvert ( QilTargetType ndConv ) : QilNode
ndConv QilTargetType
Результат QilNode

VisitXsltCopy() защищенный Метод

Generate code for QilNodeType.XsltCopy.
protected VisitXsltCopy ( QilBinary ndCopy ) : QilNode
ndCopy QilBinary
Результат QilNode

VisitXsltCopyOf() защищенный Метод

Generate code for QilNodeType.XsltCopyOf.
protected VisitXsltCopyOf ( QilUnary ndCopyOf ) : QilNode
ndCopyOf QilUnary
Результат QilNode

VisitXsltGenerateId() защищенный Метод

Generate code for QilNodeType.XsltGenerateId.
protected VisitXsltGenerateId ( QilUnary ndGenId ) : QilNode
ndGenId QilUnary
Результат QilNode

VisitXsltInvokeEarlyBound() защищенный Метод

Generate code for for QilNodeType.XsltInvokeEarlyBound.
protected VisitXsltInvokeEarlyBound ( QilInvokeEarlyBound ndInvoke ) : QilNode
ndInvoke QilInvokeEarlyBound
Результат QilNode

VisitXsltInvokeLateBound() защищенный Метод

Generate code for for QilNodeType.XsltInvokeLateBound.
protected VisitXsltInvokeLateBound ( QilInvokeLateBound ndInvoke ) : QilNode
ndInvoke QilInvokeLateBound
Результат QilNode