C# Class Microsoft.Cci.CodeModelToILConverter

An object with a method that converts a given block of statements to a list of IL operations, exception information and possibly some private helper types.
Inheritance: Microsoft.Cci.CodeTraverser, ISourceToILConverter
显示文件 Open project: visualmutator/visualmutator

Protected Properties

Property Type Description
host IMetadataHost
sourceLocationProvider ISourceLocationProvider

Private Properties

Property Type Description
EmitConstant void
EmitSequencePoint void
EmitSourceLocation void
GenerateDownLevelLockStatement void
GenerateSwitchInstruction void
GetLocalIndex ushort
GetMaxCaseExpressionValueAsUInt uint
GetParameterIndex ushort
KeepUnsignedButInvertUnordered bool
LabelIsOutsideCurrentExceptionBlock bool
LoadAddressOf void
LoadAddressOf void
LoadField void
LoadIndirect void
LoadLocal void
LoadParameter void
LoadVectorElement void
StoreIndirect void
StoreInitializers void
StoreVectorElement void
TraverseAdditionRightOperandAndDoOperation void
TraverseBitwiseAndRightOperandAndDoOperation void
TraverseBitwiseOrRightOperandAndDoOperation void
TraverseDivisionRightOperandAndDoOperation void
TraverseExclusiveOrRightOperandAndDoOperation void
TraverseLeftShiftRightOperandAndDoOperation void
TraverseModulusRightOperandAndDoOperation void
TraverseMultiplicationRightOperandAndDoOperation void
TraverseRightShiftRightOperandAndDoOperation void
TraverseSubtractionRightOperandAndDoOperation void
VisitAssignment void
VisitAssignmentTo void
VisitAssignmentTo void
VisitBranchIfFalse void
VisitBranchIfTrue void
VisitCheckedConversion void
VisitUncheckedConversion void

Public Methods

Method Description
CodeModelToILConverter ( IMetadataHost host, IMethodDefinition method, ISourceLocationProvider sourceLocationProvider ) : System

Initializes an object with a method that converts a given block of statements to a list of IL operations, exception information and possibly some private helper types.

CodeModelToILConverter ( IMetadataHost host, IMethodDefinition method, ISourceLocationProvider sourceLocationProvider, IMethodDefinition asyncMethod, uint>.IDictionary iteratorLocalCount ) : System

Initializes an object with a method that converts a given block of statements to a list of IL operations, exception information and possibly some private helper types.

ConvertToIL ( IBlockStatement body ) : void

Traverses the given block of statements in the context of the given method to produce a list of IL operations, exception information blocks (the locations of handlers, filters and finallies) and any private helper types (for example closure classes) that represent the semantics of the given block of statements. The results of the traversal can be retrieved via the GetOperations, GetOperationExceptionInformation and GetPrivateHelperTypes methods.

GetBodySize ( ) : uint

Returns the size in bytes of the serialized method body generated by this converter.

GetIteratorScopes ( ) : IEnumerable

Returns a local scope for each local variable in the iterator that generated the MoveNext method body that was converted to IL by this converter. The scopes may be duplicated and occur in the same order as the local variable declarations occur in the iterator. If this converter did not convert a MoveNext method, the result is null.

GetLocalScopes ( ) : IEnumerable

Returns zero or more local (block) scopes into which the CLR IL operations of this converted Code Model block is organized.

GetLocalVariables ( ) : IEnumerable

Returns all of the local variables (including compiler generated temporary variables) that are local to the block of statements translated by this converter.

GetNamespaceScopes ( ) : IEnumerable

Returns zero or more namespace scopes into which the namespace type containing the given method body has been nested. These scopes determine how simple names are looked up inside the method body. There is a separate scope for each dotted component in the namespace type name. For istance namespace type x.y.z will have two namespace scopes, the first is for the x and the second is for the y.

GetOperationExceptionInformation ( ) : IEnumerable

Returns zero or more exception exception information blocks (information about handlers, filters and finally blocks) that correspond to try-catch-finally constructs that appear in the statements that have been converted to IL by this converter.

GetOperations ( ) : IEnumerable

Returns the IL operations that correspond to the statements that have been converted to IL by this converter.

GetPrivateHelperTypes ( ) : IEnumerable

Returns zero or more types that are used to keep track of information needed to implement the statements that have been converted to IL by this converter. For example, any closure classes needed to compile anonymous delegate expressions (lambdas) will be returned by this method.

GetSynchronizationInformation ( ) : ISynchronizationInformation

Returns an object that describes where synchronization points occur in the IL operations of the "MoveNext" method of the state class of an asynchronous method. This returns null unless the generator has been supplied with an non null value for asyncMethodDefinition parameter during construction.

TraverseChildren ( IAddition addition ) : void

Generates IL for the specified addition.

TraverseChildren ( IAddressDereference addressDereference ) : void

Generates IL for the specified address dereference.

TraverseChildren ( IAddressOf addressOf ) : void

Generates IL for the specified address of.

TraverseChildren ( IAddressableExpression addressableExpression ) : void

Generates IL for the specified addressable expression.

TraverseChildren ( IAnonymousDelegate anonymousDelegate ) : void

Generates IL for the specified anonymous delegate.

TraverseChildren ( IArrayIndexer arrayIndexer ) : void

Generates IL for the specified array indexer.

TraverseChildren ( IAssertStatement assertStatement ) : void

Throws an exception when executed: IAssertStatement nodes must be replaced before converting the Code Model to IL.

TraverseChildren ( IAssignment assignment ) : void

Generates IL for the specified assignment.

TraverseChildren ( IAssumeStatement assumeStatement ) : void

Throws an exception when executed: IAssumeStatement nodes must be replaced before converting the Code Model to IL.

TraverseChildren ( IBitwiseAnd bitwiseAnd ) : void

Generates IL for the specified bitwise and.

TraverseChildren ( IBitwiseOr bitwiseOr ) : void

Generates IL for the specified bitwise or.

TraverseChildren ( IBlockExpression blockExpression ) : void

Generates IL for the specified block expression.

TraverseChildren ( IBlockStatement block ) : void

Generates IL for the specified block.

TraverseChildren ( IBoundExpression boundExpression ) : void

Performs some computation with the given bound expression.

TraverseChildren ( IBreakStatement breakStatement ) : void

Generates IL for the specified break statement.

TraverseChildren ( ICastIfPossible castIfPossible ) : void

Generates IL for the specified cast if possible.

TraverseChildren ( ICatchClause catchClause ) : void

Generates IL for the specified catch clause.

TraverseChildren ( ICheckIfInstance checkIfInstance ) : void

Generates IL for the specified check if instance.

TraverseChildren ( ICompileTimeConstant constant ) : void

Generates IL for the specified constant.

TraverseChildren ( IConditional conditional ) : void

Generates IL for the specified conditional.

TraverseChildren ( IConditionalStatement conditionalStatement ) : void

Generates IL for the specified conditional statement.

TraverseChildren ( IContinueStatement continueStatement ) : void

Generates IL for the specified continue statement.

TraverseChildren ( IConversion conversion ) : void

Generates IL for the specified conversion.

TraverseChildren ( ICopyMemoryStatement copyMemoryStatement ) : void

Generates IL for the specified copy memory statement.

TraverseChildren ( ICreateArray createArray ) : void

Generates IL for the specified create array.

TraverseChildren ( ICreateDelegateInstance createDelegateInstance ) : void

Generates IL for the specified create delegate instance.

TraverseChildren ( ICreateObjectInstance createObjectInstance ) : void

Generates IL for the specified create object instance.

TraverseChildren ( IDebuggerBreakStatement debuggerBreakStatement ) : void

Generates IL for the specified debugger break statement.

TraverseChildren ( IDefaultValue defaultValue ) : void

Generates IL for the specified default value.

TraverseChildren ( IDivision division ) : void

Generates IL for the specified division.

TraverseChildren ( IDoUntilStatement doUntilStatement ) : void

Generates IL for the specified do until statement.

TraverseChildren ( IDupValue dupValue ) : void

Performs some computation with the given dup value expression.

TraverseChildren ( IEmptyStatement emptyStatement ) : void

Generates IL for the specified empty statement.

TraverseChildren ( IEquality equality ) : void

Generates IL for the specified equality.

TraverseChildren ( IExclusiveOr exclusiveOr ) : void

Generates IL for the specified exclusive or.

TraverseChildren ( IExpressionStatement expressionStatement ) : void

Generates IL for the specified expression statement.

TraverseChildren ( IFillMemoryStatement fillMemoryStatement ) : void

Generates IL for the specified fill memory statement.

TraverseChildren ( IForEachStatement forEachStatement ) : void

Generates IL for the specified for each statement.

TraverseChildren ( IForStatement forStatement ) : void

Generates IL for the specified for statement.

TraverseChildren ( IGetTypeOfTypedReference getTypeOfTypedReference ) : void

Generates IL for the specified get type of typed reference.

TraverseChildren ( IGetValueOfTypedReference getValueOfTypedReference ) : void

Generates IL for the specified get value of typed reference.

TraverseChildren ( IGotoStatement gotoStatement ) : void

Generates IL for the specified goto statement.

TraverseChildren ( IGotoSwitchCaseStatement gotoSwitchCaseStatement ) : void

Generates IL for the specified goto switch case statement.

TraverseChildren ( IGreaterThan greaterThan ) : void

Generates IL for the specified greater than.

TraverseChildren ( IGreaterThanOrEqual greaterThanOrEqual ) : void

Generates IL for the specified greater than or equal.

TraverseChildren ( ILabeledStatement labeledStatement ) : void

Generates IL for the specified labeled statement.

TraverseChildren ( ILeftShift leftShift ) : void

Generates IL for the specified left shift.

TraverseChildren ( ILessThan lessThan ) : void

Generates IL for the specified less than.

TraverseChildren ( ILessThanOrEqual lessThanOrEqual ) : void

Generates IL for the specified less than or equal.

TraverseChildren ( ILocalDeclarationStatement localDeclarationStatement ) : void

Generates IL for the specified local declaration statement.

TraverseChildren ( ILockStatement lockStatement ) : void

Generates IL for the specified lock statement.

TraverseChildren ( ILogicalNot logicalNot ) : void

Generates IL for the specified logical not.

TraverseChildren ( IMakeTypedReference makeTypedReference ) : void

Generates IL for the specified make typed reference.

TraverseChildren ( IMethodCall methodCall ) : void

Generates IL for the specified method call.

TraverseChildren ( IModulus modulus ) : void

Generates IL for the specified modulus.

TraverseChildren ( IMultiplication multiplication ) : void

Generates IL for the specified multiplication.

TraverseChildren ( INotEquality notEquality ) : void

Generates IL for the specified not equality.

TraverseChildren ( IOldValue oldValue ) : void

Throws an exception when executed: IOldValue nodes must be replaced before converting the Code Model to IL.

TraverseChildren ( IOnesComplement onesComplement ) : void

Generates IL for the specified ones complement.

TraverseChildren ( IOutArgument outArgument ) : void

Generates IL for the specified out argument.

TraverseChildren ( IPointerCall pointerCall ) : void

Generates IL for the specified pointer call.

TraverseChildren ( IPopValue popValue ) : void

Performs some computation with the given pop value expression.

TraverseChildren ( IPushStatement pushStatement ) : void

Performs some computation with the given push statement.

TraverseChildren ( IRefArgument refArgument ) : void

Generates IL for the specified ref argument.

TraverseChildren ( IResourceUseStatement resourceUseStatement ) : void

Generates IL for the specified resource use statement.

TraverseChildren ( IRethrowStatement rethrowStatement ) : void

Generates IL for the specified rethrow statement.

TraverseChildren ( IReturnStatement returnStatement ) : void

Generates IL for the specified return statement.

TraverseChildren ( IReturnValue returnValue ) : void

Throws an exception when executed: IReturnValue nodes must be replaced before converting the Code Model to IL.

TraverseChildren ( IRightShift rightShift ) : void

Generates IL for the specified right shift.

TraverseChildren ( IRuntimeArgumentHandleExpression runtimeArgumentHandleExpression ) : void

Generates IL for the specified runtime argument handle expression.

TraverseChildren ( ISizeOf sizeOf ) : void

Generates IL for the specified size of.

TraverseChildren ( ISourceMethodBody methodBody ) : void

Generates IL for the specified method body.

TraverseChildren ( IStackArrayCreate stackArrayCreate ) : void

Generates IL for the specified stack array create.

TraverseChildren ( ISubtraction subtraction ) : void

Generates IL for the specified subtraction.

TraverseChildren ( ISwitchCase switchCase ) : void

Generates IL for the specified switch case.

TraverseChildren ( ISwitchStatement switchStatement ) : void

Generates IL for the specified switch statement.

TraverseChildren ( ITargetExpression targetExpression ) : void

Performs some computation with the given target expression.

TraverseChildren ( IThisReference thisReference ) : void

Generates IL for the specified this reference.

TraverseChildren ( IThrowStatement throwStatement ) : void

Generates IL for the specified throw statement.

TraverseChildren ( ITokenOf tokenOf ) : void

Generates IL for the specified token of.

TraverseChildren ( ITryCatchFinallyStatement tryCatchFilterFinallyStatement ) : void

Generates IL for the specified try catch filter finally statement.

TraverseChildren ( ITypeOf typeOf ) : void

Generates IL for the specified type of.

TraverseChildren ( IUnaryNegation unaryNegation ) : void

Generates IL for the specified unary negation.

TraverseChildren ( IUnaryPlus unaryPlus ) : void

Generates IL for the specified unary plus.

TraverseChildren ( IVectorLength vectorLength ) : void

Generates IL for the specified vector length.

TraverseChildren ( IWhileDoStatement whileDoStatement ) : void

Generates IL for the specified while do statement.

TraverseChildren ( IYieldBreakStatement yieldBreakStatement ) : void

Generates IL for the specified yield break statement.

TraverseChildren ( IYieldReturnStatement yieldReturnStatement ) : void

Generates IL for the specified yield return statement.

VisitAssignment ( IAssignment assignment, bool treatAsStatement ) : void

Generates IL for the assignment.

VisitForeachArrayElement ( IForEachStatement forEachStatement, IArrayTypeReference arrayType ) : void

Generates IL code for the given for each statement for the special case where the collection is known to be vector type.

Private Methods

Method Description
EmitConstant ( IConvertible ic ) : void
EmitSequencePoint ( IEnumerable locations ) : void
EmitSourceLocation ( IExpression expression ) : void

Report the current expression to the IL generator. The source locations of the current expression will be wrapped up as an IExpressionSourceLocation object and stored in the Location property of the next IL instruction that is created by the IL generator.

GenerateDownLevelLockStatement ( ILockStatement lockStatement ) : void
GenerateSwitchInstruction ( IEnumerable switchCases, uint maxValue ) : void
GetLocalIndex ( ILocalDefinition local ) : ushort
GetMaxCaseExpressionValueAsUInt ( IEnumerable switchCases, uint &numberOfCases ) : uint
GetParameterIndex ( IParameterDefinition parameterDefinition ) : ushort

Translates the parameter list position of the given parameter to an IL parameter index. In other words, it adds 1 to the parameterDefinition.Index value if the containing method has an implicit this parameter.

KeepUnsignedButInvertUnordered ( bool usignedOrUnordered, IBinaryOperation binOp ) : bool
LabelIsOutsideCurrentExceptionBlock ( Microsoft.Cci.ILGeneratorLabel label ) : bool
LoadAddressOf ( object container, IExpression instance ) : void
LoadAddressOf ( object container, IExpression instance, bool emitReadonlyPrefix ) : void
LoadField ( byte alignment, bool isVolatile, IExpression instance, IFieldReference field, bool fieldIsStatic ) : void
LoadIndirect ( ITypeReference targetType ) : void
LoadLocal ( ILocalDefinition local ) : void
LoadParameter ( IParameterDefinition parameter ) : void
LoadVectorElement ( ITypeReference typeReference ) : void
StoreIndirect ( ITypeReference targetType ) : void
StoreInitializers ( ICreateArray createArray, IArrayTypeReference arrayType ) : void
StoreVectorElement ( ITypeReference elementTypeReference ) : void
TraverseAdditionRightOperandAndDoOperation ( IExpression expression ) : void
TraverseBitwiseAndRightOperandAndDoOperation ( IExpression expression ) : void
TraverseBitwiseOrRightOperandAndDoOperation ( IExpression expression ) : void
TraverseDivisionRightOperandAndDoOperation ( IExpression expression ) : void
TraverseExclusiveOrRightOperandAndDoOperation ( IExpression expression ) : void
TraverseLeftShiftRightOperandAndDoOperation ( IExpression expression ) : void
TraverseModulusRightOperandAndDoOperation ( IExpression expression ) : void
TraverseMultiplicationRightOperandAndDoOperation ( IExpression expression ) : void
TraverseRightShiftRightOperandAndDoOperation ( IExpression expression ) : void
TraverseSubtractionRightOperandAndDoOperation ( IExpression expression ) : void
VisitAssignment ( ITargetExpression target, IExpression source, SourceTraverser sourceTraverser, bool treatAsStatement, bool pushTargetRValue, bool resultIsInitialTargetRValue ) : void
VisitAssignmentTo ( IAddressDereference addressDereference ) : void
VisitAssignmentTo ( ILocalDefinition local ) : void
VisitBranchIfFalse ( IExpression expression, Microsoft.Cci.ILGeneratorLabel targetLabel ) : void
VisitBranchIfTrue ( IExpression expression, Microsoft.Cci.ILGeneratorLabel targetLabel ) : void
VisitCheckedConversion ( ITypeReference sourceType, ITypeReference targetType ) : void
VisitUncheckedConversion ( ITypeReference sourceType, ITypeReference targetType ) : void

Method Details

CodeModelToILConverter() public method

Initializes an object with a method that converts a given block of statements to a list of IL operations, exception information and possibly some private helper types.
public CodeModelToILConverter ( IMetadataHost host, IMethodDefinition method, ISourceLocationProvider sourceLocationProvider ) : System
host IMetadataHost An object representing the application that is hosting the converter. It is used to obtain access to some global /// objects and services such as the shared name table and the table for interning references.
method IMethodDefinition The method that contains the block of statements that will be converted.
sourceLocationProvider ISourceLocationProvider An object that can map the ILocation objects found in the block of statements to IPrimarySourceLocation objects. May be null.
return System

CodeModelToILConverter() public method

Initializes an object with a method that converts a given block of statements to a list of IL operations, exception information and possibly some private helper types.
public CodeModelToILConverter ( IMetadataHost host, IMethodDefinition method, ISourceLocationProvider sourceLocationProvider, IMethodDefinition asyncMethod, uint>.IDictionary iteratorLocalCount ) : System
host IMetadataHost An object representing the application that is hosting the converter. It is used to obtain access to some global /// objects and services such as the shared name table and the table for interning references.
method IMethodDefinition The method that contains the block of statements that will be converted.
sourceLocationProvider ISourceLocationProvider An object that can map the ILocation objects found in the block of statements to IPrimarySourceLocation objects. May be null.
asyncMethod IMethodDefinition May be null.
iteratorLocalCount uint>.IDictionary A map that indicates how many iterator locals are present in a given block. Only useful for generated MoveNext methods. May be null.
return System

ConvertToIL() public method

Traverses the given block of statements in the context of the given method to produce a list of IL operations, exception information blocks (the locations of handlers, filters and finallies) and any private helper types (for example closure classes) that represent the semantics of the given block of statements. The results of the traversal can be retrieved via the GetOperations, GetOperationExceptionInformation and GetPrivateHelperTypes methods.
public ConvertToIL ( IBlockStatement body ) : void
body IBlockStatement A block of statements that are to be converted to IL.
return void

GetBodySize() public method

Returns the size in bytes of the serialized method body generated by this converter.
public GetBodySize ( ) : uint
return uint

GetIteratorScopes() public method

Returns a local scope for each local variable in the iterator that generated the MoveNext method body that was converted to IL by this converter. The scopes may be duplicated and occur in the same order as the local variable declarations occur in the iterator. If this converter did not convert a MoveNext method, the result is null.
public GetIteratorScopes ( ) : IEnumerable
return IEnumerable

GetLocalScopes() public method

Returns zero or more local (block) scopes into which the CLR IL operations of this converted Code Model block is organized.
public GetLocalScopes ( ) : IEnumerable
return IEnumerable

GetLocalVariables() public method

Returns all of the local variables (including compiler generated temporary variables) that are local to the block of statements translated by this converter.
public GetLocalVariables ( ) : IEnumerable
return IEnumerable

GetNamespaceScopes() public method

Returns zero or more namespace scopes into which the namespace type containing the given method body has been nested. These scopes determine how simple names are looked up inside the method body. There is a separate scope for each dotted component in the namespace type name. For istance namespace type x.y.z will have two namespace scopes, the first is for the x and the second is for the y.
public GetNamespaceScopes ( ) : IEnumerable
return IEnumerable

GetOperationExceptionInformation() public method

Returns zero or more exception exception information blocks (information about handlers, filters and finally blocks) that correspond to try-catch-finally constructs that appear in the statements that have been converted to IL by this converter.
public GetOperationExceptionInformation ( ) : IEnumerable
return IEnumerable

GetOperations() public method

Returns the IL operations that correspond to the statements that have been converted to IL by this converter.
public GetOperations ( ) : IEnumerable
return IEnumerable

GetPrivateHelperTypes() public method

Returns zero or more types that are used to keep track of information needed to implement the statements that have been converted to IL by this converter. For example, any closure classes needed to compile anonymous delegate expressions (lambdas) will be returned by this method.
public GetPrivateHelperTypes ( ) : IEnumerable
return IEnumerable

GetSynchronizationInformation() public method

Returns an object that describes where synchronization points occur in the IL operations of the "MoveNext" method of the state class of an asynchronous method. This returns null unless the generator has been supplied with an non null value for asyncMethodDefinition parameter during construction.
public GetSynchronizationInformation ( ) : ISynchronizationInformation
return ISynchronizationInformation

TraverseChildren() public method

Generates IL for the specified addition.
public TraverseChildren ( IAddition addition ) : void
addition IAddition The addition.
return void

TraverseChildren() public method

Generates IL for the specified address dereference.
public TraverseChildren ( IAddressDereference addressDereference ) : void
addressDereference IAddressDereference The address dereference.
return void

TraverseChildren() public method

Generates IL for the specified address of.
public TraverseChildren ( IAddressOf addressOf ) : void
addressOf IAddressOf The address of.
return void

TraverseChildren() public method

Generates IL for the specified addressable expression.
public TraverseChildren ( IAddressableExpression addressableExpression ) : void
addressableExpression IAddressableExpression The addressable expression.
return void

TraverseChildren() public method

Generates IL for the specified anonymous delegate.
public TraverseChildren ( IAnonymousDelegate anonymousDelegate ) : void
anonymousDelegate IAnonymousDelegate The anonymous delegate.
return void

TraverseChildren() public method

Generates IL for the specified array indexer.
public TraverseChildren ( IArrayIndexer arrayIndexer ) : void
arrayIndexer IArrayIndexer The array indexer.
return void

TraverseChildren() public method

Throws an exception when executed: IAssertStatement nodes must be replaced before converting the Code Model to IL.
public TraverseChildren ( IAssertStatement assertStatement ) : void
assertStatement IAssertStatement
return void

TraverseChildren() public method

Generates IL for the specified assignment.
public TraverseChildren ( IAssignment assignment ) : void
assignment IAssignment The assignment.
return void

TraverseChildren() public method

Throws an exception when executed: IAssumeStatement nodes must be replaced before converting the Code Model to IL.
public TraverseChildren ( IAssumeStatement assumeStatement ) : void
assumeStatement IAssumeStatement
return void

TraverseChildren() public method

Generates IL for the specified bitwise and.
public TraverseChildren ( IBitwiseAnd bitwiseAnd ) : void
bitwiseAnd IBitwiseAnd The bitwise and.
return void

TraverseChildren() public method

Generates IL for the specified bitwise or.
public TraverseChildren ( IBitwiseOr bitwiseOr ) : void
bitwiseOr IBitwiseOr The bitwise or.
return void

TraverseChildren() public method

Generates IL for the specified block expression.
public TraverseChildren ( IBlockExpression blockExpression ) : void
blockExpression IBlockExpression The block expression.
return void

TraverseChildren() public method

Generates IL for the specified block.
public TraverseChildren ( IBlockStatement block ) : void
block IBlockStatement The block.
return void

TraverseChildren() public method

Performs some computation with the given bound expression.
public TraverseChildren ( IBoundExpression boundExpression ) : void
boundExpression IBoundExpression
return void

TraverseChildren() public method

Generates IL for the specified break statement.
public TraverseChildren ( IBreakStatement breakStatement ) : void
breakStatement IBreakStatement The break statement.
return void

TraverseChildren() public method

Generates IL for the specified cast if possible.
public TraverseChildren ( ICastIfPossible castIfPossible ) : void
castIfPossible ICastIfPossible The cast if possible.
return void

TraverseChildren() public method

Generates IL for the specified catch clause.
public TraverseChildren ( ICatchClause catchClause ) : void
catchClause ICatchClause The catch clause.
return void

TraverseChildren() public method

Generates IL for the specified check if instance.
public TraverseChildren ( ICheckIfInstance checkIfInstance ) : void
checkIfInstance ICheckIfInstance The check if instance.
return void

TraverseChildren() public method

Generates IL for the specified constant.
public TraverseChildren ( ICompileTimeConstant constant ) : void
constant ICompileTimeConstant The constant.
return void

TraverseChildren() public method

Generates IL for the specified conditional.
public TraverseChildren ( IConditional conditional ) : void
conditional IConditional The conditional.
return void

TraverseChildren() public method

Generates IL for the specified conditional statement.
public TraverseChildren ( IConditionalStatement conditionalStatement ) : void
conditionalStatement IConditionalStatement The conditional statement.
return void

TraverseChildren() public method

Generates IL for the specified continue statement.
public TraverseChildren ( IContinueStatement continueStatement ) : void
continueStatement IContinueStatement The continue statement.
return void

TraverseChildren() public method

Generates IL for the specified conversion.
public TraverseChildren ( IConversion conversion ) : void
conversion IConversion The conversion.
return void

TraverseChildren() public method

Generates IL for the specified copy memory statement.
public TraverseChildren ( ICopyMemoryStatement copyMemoryStatement ) : void
copyMemoryStatement ICopyMemoryStatement The copy memory statement.
return void

TraverseChildren() public method

Generates IL for the specified create array.
public TraverseChildren ( ICreateArray createArray ) : void
createArray ICreateArray The create array instance to visit.
return void

TraverseChildren() public method

Generates IL for the specified create delegate instance.
public TraverseChildren ( ICreateDelegateInstance createDelegateInstance ) : void
createDelegateInstance ICreateDelegateInstance The create delegate instance.
return void

TraverseChildren() public method

Generates IL for the specified create object instance.
public TraverseChildren ( ICreateObjectInstance createObjectInstance ) : void
createObjectInstance ICreateObjectInstance The create object instance.
return void

TraverseChildren() public method

Generates IL for the specified debugger break statement.
public TraverseChildren ( IDebuggerBreakStatement debuggerBreakStatement ) : void
debuggerBreakStatement IDebuggerBreakStatement The debugger break statement.
return void

TraverseChildren() public method

Generates IL for the specified default value.
public TraverseChildren ( IDefaultValue defaultValue ) : void
defaultValue IDefaultValue The default value.
return void

TraverseChildren() public method

Generates IL for the specified division.
public TraverseChildren ( IDivision division ) : void
division IDivision The division.
return void

TraverseChildren() public method

Generates IL for the specified do until statement.
public TraverseChildren ( IDoUntilStatement doUntilStatement ) : void
doUntilStatement IDoUntilStatement The do until statement.
return void

TraverseChildren() public method

Performs some computation with the given dup value expression.
public TraverseChildren ( IDupValue dupValue ) : void
dupValue IDupValue
return void

TraverseChildren() public method

Generates IL for the specified empty statement.
public TraverseChildren ( IEmptyStatement emptyStatement ) : void
emptyStatement IEmptyStatement The empty statement.
return void

TraverseChildren() public method

Generates IL for the specified equality.
public TraverseChildren ( IEquality equality ) : void
equality IEquality The equality.
return void

TraverseChildren() public method

Generates IL for the specified exclusive or.
public TraverseChildren ( IExclusiveOr exclusiveOr ) : void
exclusiveOr IExclusiveOr The exclusive or.
return void

TraverseChildren() public method

Generates IL for the specified expression statement.
public TraverseChildren ( IExpressionStatement expressionStatement ) : void
expressionStatement IExpressionStatement The expression statement.
return void

TraverseChildren() public method

Generates IL for the specified fill memory statement.
public TraverseChildren ( IFillMemoryStatement fillMemoryStatement ) : void
fillMemoryStatement IFillMemoryStatement The fill memory statement.
return void

TraverseChildren() public method

Generates IL for the specified for each statement.
public TraverseChildren ( IForEachStatement forEachStatement ) : void
forEachStatement IForEachStatement For each statement.
return void

TraverseChildren() public method

Generates IL for the specified for statement.
public TraverseChildren ( IForStatement forStatement ) : void
forStatement IForStatement For statement.
return void

TraverseChildren() public method

Generates IL for the specified get type of typed reference.
public TraverseChildren ( IGetTypeOfTypedReference getTypeOfTypedReference ) : void
getTypeOfTypedReference IGetTypeOfTypedReference The get type of typed reference.
return void

TraverseChildren() public method

Generates IL for the specified get value of typed reference.
public TraverseChildren ( IGetValueOfTypedReference getValueOfTypedReference ) : void
getValueOfTypedReference IGetValueOfTypedReference The get value of typed reference.
return void

TraverseChildren() public method

Generates IL for the specified goto statement.
public TraverseChildren ( IGotoStatement gotoStatement ) : void
gotoStatement IGotoStatement The goto statement.
return void

TraverseChildren() public method

Generates IL for the specified goto switch case statement.
public TraverseChildren ( IGotoSwitchCaseStatement gotoSwitchCaseStatement ) : void
gotoSwitchCaseStatement IGotoSwitchCaseStatement The goto switch case statement.
return void

TraverseChildren() public method

Generates IL for the specified greater than.
public TraverseChildren ( IGreaterThan greaterThan ) : void
greaterThan IGreaterThan The greater than.
return void

TraverseChildren() public method

Generates IL for the specified greater than or equal.
public TraverseChildren ( IGreaterThanOrEqual greaterThanOrEqual ) : void
greaterThanOrEqual IGreaterThanOrEqual The greater than or equal.
return void

TraverseChildren() public method

Generates IL for the specified labeled statement.
public TraverseChildren ( ILabeledStatement labeledStatement ) : void
labeledStatement ILabeledStatement The labeled statement.
return void

TraverseChildren() public method

Generates IL for the specified left shift.
public TraverseChildren ( ILeftShift leftShift ) : void
leftShift ILeftShift The left shift.
return void

TraverseChildren() public method

Generates IL for the specified less than.
public TraverseChildren ( ILessThan lessThan ) : void
lessThan ILessThan The less than.
return void

TraverseChildren() public method

Generates IL for the specified less than or equal.
public TraverseChildren ( ILessThanOrEqual lessThanOrEqual ) : void
lessThanOrEqual ILessThanOrEqual The less than or equal.
return void

TraverseChildren() public method

Generates IL for the specified local declaration statement.
public TraverseChildren ( ILocalDeclarationStatement localDeclarationStatement ) : void
localDeclarationStatement ILocalDeclarationStatement The local declaration statement.
return void

TraverseChildren() public method

Generates IL for the specified lock statement.
public TraverseChildren ( ILockStatement lockStatement ) : void
lockStatement ILockStatement The lock statement.
return void

TraverseChildren() public method

Generates IL for the specified logical not.
public TraverseChildren ( ILogicalNot logicalNot ) : void
logicalNot ILogicalNot The logical not.
return void

TraverseChildren() public method

Generates IL for the specified make typed reference.
public TraverseChildren ( IMakeTypedReference makeTypedReference ) : void
makeTypedReference IMakeTypedReference The make typed reference.
return void

TraverseChildren() public method

Generates IL for the specified method call.
public TraverseChildren ( IMethodCall methodCall ) : void
methodCall IMethodCall The method call.
return void

TraverseChildren() public method

Generates IL for the specified modulus.
public TraverseChildren ( IModulus modulus ) : void
modulus IModulus The modulus.
return void

TraverseChildren() public method

Generates IL for the specified multiplication.
public TraverseChildren ( IMultiplication multiplication ) : void
multiplication IMultiplication The multiplication.
return void

TraverseChildren() public method

Generates IL for the specified not equality.
public TraverseChildren ( INotEquality notEquality ) : void
notEquality INotEquality The not equality.
return void

TraverseChildren() public method

Throws an exception when executed: IOldValue nodes must be replaced before converting the Code Model to IL.
public TraverseChildren ( IOldValue oldValue ) : void
oldValue IOldValue
return void

TraverseChildren() public method

Generates IL for the specified ones complement.
public TraverseChildren ( IOnesComplement onesComplement ) : void
onesComplement IOnesComplement The ones complement.
return void

TraverseChildren() public method

Generates IL for the specified out argument.
public TraverseChildren ( IOutArgument outArgument ) : void
outArgument IOutArgument The out argument.
return void

TraverseChildren() public method

Generates IL for the specified pointer call.
public TraverseChildren ( IPointerCall pointerCall ) : void
pointerCall IPointerCall The pointer call.
return void

TraverseChildren() public method

Performs some computation with the given pop value expression.
public TraverseChildren ( IPopValue popValue ) : void
popValue IPopValue
return void

TraverseChildren() public method

Performs some computation with the given push statement.
public TraverseChildren ( IPushStatement pushStatement ) : void
pushStatement IPushStatement
return void

TraverseChildren() public method

Generates IL for the specified ref argument.
public TraverseChildren ( IRefArgument refArgument ) : void
refArgument IRefArgument The ref argument.
return void

TraverseChildren() public method

Generates IL for the specified resource use statement.
public TraverseChildren ( IResourceUseStatement resourceUseStatement ) : void
resourceUseStatement IResourceUseStatement The resource use statement.
return void

TraverseChildren() public method

Generates IL for the specified rethrow statement.
public TraverseChildren ( IRethrowStatement rethrowStatement ) : void
rethrowStatement IRethrowStatement The rethrow statement.
return void

TraverseChildren() public method

Generates IL for the specified return statement.
public TraverseChildren ( IReturnStatement returnStatement ) : void
returnStatement IReturnStatement The return statement.
return void

TraverseChildren() public method

Throws an exception when executed: IReturnValue nodes must be replaced before converting the Code Model to IL.
public TraverseChildren ( IReturnValue returnValue ) : void
returnValue IReturnValue
return void

TraverseChildren() public method

Generates IL for the specified right shift.
public TraverseChildren ( IRightShift rightShift ) : void
rightShift IRightShift The right shift.
return void

TraverseChildren() public method

Generates IL for the specified runtime argument handle expression.
public TraverseChildren ( IRuntimeArgumentHandleExpression runtimeArgumentHandleExpression ) : void
runtimeArgumentHandleExpression IRuntimeArgumentHandleExpression The runtime argument handle expression.
return void

TraverseChildren() public method

Generates IL for the specified size of.
public TraverseChildren ( ISizeOf sizeOf ) : void
sizeOf ISizeOf The size of.
return void

TraverseChildren() public method

Generates IL for the specified method body.
public TraverseChildren ( ISourceMethodBody methodBody ) : void
methodBody ISourceMethodBody The method body.
return void

TraverseChildren() public method

Generates IL for the specified stack array create.
public TraverseChildren ( IStackArrayCreate stackArrayCreate ) : void
stackArrayCreate IStackArrayCreate The stack array create.
return void

TraverseChildren() public method

Generates IL for the specified subtraction.
public TraverseChildren ( ISubtraction subtraction ) : void
subtraction ISubtraction The subtraction.
return void

TraverseChildren() public method

Generates IL for the specified switch case.
public TraverseChildren ( ISwitchCase switchCase ) : void
switchCase ISwitchCase The switch case.
return void

TraverseChildren() public method

Generates IL for the specified switch statement.
public TraverseChildren ( ISwitchStatement switchStatement ) : void
switchStatement ISwitchStatement The switch statement.
return void

TraverseChildren() public method

Performs some computation with the given target expression.
public TraverseChildren ( ITargetExpression targetExpression ) : void
targetExpression ITargetExpression
return void

TraverseChildren() public method

Generates IL for the specified this reference.
public TraverseChildren ( IThisReference thisReference ) : void
thisReference IThisReference The this reference.
return void

TraverseChildren() public method

Generates IL for the specified throw statement.
public TraverseChildren ( IThrowStatement throwStatement ) : void
throwStatement IThrowStatement The throw statement.
return void

TraverseChildren() public method

Generates IL for the specified token of.
public TraverseChildren ( ITokenOf tokenOf ) : void
tokenOf ITokenOf The token of.
return void

TraverseChildren() public method

Generates IL for the specified try catch filter finally statement.
public TraverseChildren ( ITryCatchFinallyStatement tryCatchFilterFinallyStatement ) : void
tryCatchFilterFinallyStatement ITryCatchFinallyStatement The try catch filter finally statement.
return void

TraverseChildren() public method

Generates IL for the specified type of.
public TraverseChildren ( ITypeOf typeOf ) : void
typeOf ITypeOf The type of.
return void

TraverseChildren() public method

Generates IL for the specified unary negation.
public TraverseChildren ( IUnaryNegation unaryNegation ) : void
unaryNegation IUnaryNegation The unary negation.
return void

TraverseChildren() public method

Generates IL for the specified unary plus.
public TraverseChildren ( IUnaryPlus unaryPlus ) : void
unaryPlus IUnaryPlus The unary plus.
return void

TraverseChildren() public method

Generates IL for the specified vector length.
public TraverseChildren ( IVectorLength vectorLength ) : void
vectorLength IVectorLength Length of the vector.
return void

TraverseChildren() public method

Generates IL for the specified while do statement.
public TraverseChildren ( IWhileDoStatement whileDoStatement ) : void
whileDoStatement IWhileDoStatement The while do statement.
return void

TraverseChildren() public method

Generates IL for the specified yield break statement.
public TraverseChildren ( IYieldBreakStatement yieldBreakStatement ) : void
yieldBreakStatement IYieldBreakStatement The yield break statement.
return void

TraverseChildren() public method

Generates IL for the specified yield return statement.
public TraverseChildren ( IYieldReturnStatement yieldReturnStatement ) : void
yieldReturnStatement IYieldReturnStatement The yield return statement.
return void

VisitAssignment() public method

Generates IL for the assignment.
public VisitAssignment ( IAssignment assignment, bool treatAsStatement ) : void
assignment IAssignment The assignment.
treatAsStatement bool if set to true [treat as statement].
return void

VisitForeachArrayElement() public method

Generates IL code for the given for each statement for the special case where the collection is known to be vector type.
public VisitForeachArrayElement ( IForEachStatement forEachStatement, IArrayTypeReference arrayType ) : void
forEachStatement IForEachStatement The foreach statement to visit.
arrayType IArrayTypeReference The vector type of the collection.
return void

Property Details

host protected_oe property

An object representing the application that is hosting the converter. It is used to obtain access to some global objects and services such as the shared name table and the table for interning references.
protected IMetadataHost host
return IMetadataHost

sourceLocationProvider protected_oe property

An object that can map the ILocation objects found in the block of statements to IPrimarySourceLocation objects.
protected ISourceLocationProvider sourceLocationProvider
return ISourceLocationProvider