C# 클래스 Jurassic.Compiler.ILGenerator

Represents a generator of CIL bytes.
파일 보기 프로젝트 열기: paulbartrum/jurassic 1 사용 예제들

공개 메소드들

메소드 설명
Add ( ) : void

Pops two values from the stack, adds them together, then pushes the result to the stack.

BeginCatchBlock ( Type exceptionType ) : void

Begins a catch block. BeginExceptionBlock() must have already been called.

BeginExceptionBlock ( ) : void

Begins a try-catch-finally block. After issuing this instruction any following instructions are conceptually within the try block.

BeginFaultBlock ( ) : void

Begins a fault block. BeginExceptionBlock() must have already been called.

BeginFilterBlock ( ) : void

Begins a filter block. BeginExceptionBlock() must have already been called.

BeginFinallyBlock ( ) : void

Begins a finally block. BeginExceptionBlock() must have already been called.

BitwiseAnd ( ) : void

Pops two values from the stack, ANDs them together, then pushes the result to the stack.

BitwiseNot ( ) : void

Pops a value from the stack, inverts it, then pushes the result to the stack.

BitwiseOr ( ) : void

Pops two values from the stack, ORs them together, then pushes the result to the stack.

BitwiseXor ( ) : void

Pops two values from the stack, XORs them together, then pushes the result to the stack.

Box ( PrimitiveType type ) : void

Pops a value from the stack, converts it to an object reference, then pushes it back onto the stack.

Box ( Type type ) : void

Pops a value from the stack, converts it to an object reference, then pushes it back onto the stack.

Branch ( ILLabel label ) : void

Unconditionally branches to the given label.

BranchIfEqual ( ILLabel label ) : void

Branches to the given label if the two values on the top of the stack are equal.

BranchIfFalse ( ILLabel label ) : void

Branches to the given label if the value on the top of the stack is zero, false or null.

BranchIfGreaterThan ( ILLabel label ) : void

Branches to the given label if the first value on the stack is greater than the second value on the stack.

BranchIfGreaterThanOrEqual ( ILLabel label ) : void

Branches to the given label if the first value on the stack is greater than or equal to the second value on the stack.

BranchIfGreaterThanOrEqualUnsigned ( ILLabel label ) : void

Branches to the given label if the first value on the stack is greater than or equal to the second value on the stack. If the operands are integers then they are treated as if they are unsigned. If the operands are floating point numbers then a NaN value will trigger a branch.

BranchIfGreaterThanUnsigned ( ILLabel label ) : void

Branches to the given label if the first value on the stack is greater than the second value on the stack. If the operands are integers then they are treated as if they are unsigned. If the operands are floating point numbers then a NaN value will trigger a branch.

BranchIfLessThan ( ILLabel label ) : void

Branches to the given label if the first value on the stack is less than the second value on the stack.

BranchIfLessThanOrEqual ( ILLabel label ) : void

Branches to the given label if the first value on the stack is less than or equal to the second value on the stack.

BranchIfLessThanOrEqualUnsigned ( ILLabel label ) : void

Branches to the given label if the first value on the stack is less than or equal to the second value on the stack. If the operands are integers then they are treated as if they are unsigned. If the operands are floating point numbers then a NaN value will trigger a branch.

BranchIfLessThanUnsigned ( ILLabel label ) : void

Branches to the given label if the first value on the stack is less than the second value on the stack. If the operands are integers then they are treated as if they are unsigned. If the operands are floating point numbers then a NaN value will trigger a branch.

BranchIfNotEqual ( ILLabel label ) : void

Branches to the given label if the two values on the top of the stack are not equal.

BranchIfNotNull ( ILLabel label ) : void

Branches to the given label if the value on the top of the stack is non-zero, true or non-null.

BranchIfNotZero ( ILLabel label ) : void

Branches to the given label if the value on the top of the stack is non-zero, true or non-null.

BranchIfNull ( ILLabel label ) : void

Branches to the given label if the value on the top of the stack is zero, false or null.

BranchIfTrue ( ILLabel label ) : void

Branches to the given label if the value on the top of the stack is non-zero, true or non-null.

BranchIfZero ( ILLabel label ) : void

Branches to the given label if the value on the top of the stack is zero, false or null.

Breakpoint ( ) : void

Triggers a breakpoint in an attached debugger.

Call ( System method ) : void

Pops the method arguments off the stack, calls the given method, then pushes the result to the stack (if there was one). Identical to CallStatic() if the method is a static method (or is declared on a value type) or CallVirtual() otherwise.

CallStatic ( System method ) : void

Pops the method arguments off the stack, calls the given method, then pushes the result to the stack (if there was one). This operation can be used to call instance methods, but virtual overrides will not be called and a null check will not be performed at the callsite.

CallVirtual ( System method ) : void

Pops the method arguments off the stack, calls the given method, then pushes the result to the stack (if there was one). This operation cannot be used to call static methods. Virtual overrides are obeyed and a null check is performed.

CastClass ( Type type ) : void

Pops an object off the stack, checks that the object inherits from or implements the given type, and pushes the object onto the stack if the check was successful or throws an InvalidCastException if the check failed.

CompareEqual ( ) : void

Pops two values from the stack, compares, then pushes 1 if the first argument is equal to the second, or 0 otherwise. Produces 0 if one or both of the arguments are NaN.

CompareGreaterThan ( ) : void

Pops two values from the stack, compares, then pushes 1 if the first argument is greater than the second, or 0 otherwise. Produces 0 if one or both of the arguments are NaN.

CompareGreaterThanUnsigned ( ) : void

Pops two values from the stack, compares, then pushes 1 if the first argument is greater than the second, or 0 otherwise. Produces 1 if one or both of the arguments are NaN. Integers are considered to be unsigned.

CompareLessThan ( ) : void

Pops two values from the stack, compares, then pushes 1 if the first argument is less than the second, or 0 otherwise. Produces 0 if one or both of the arguments are NaN.

CompareLessThanUnsigned ( ) : void

Pops two values from the stack, compares, then pushes 1 if the first argument is less than the second, or 0 otherwise. Produces 1 if one or both of the arguments are NaN. Integers are considered to be unsigned.

Complete ( ) : void

Gets or sets a value which indicates whether diagnostics are enabled. Better error messages are provided in some cases if this property is set to true, however performance and memory usage are negatively impacted.

Emits a return statement and finalizes the generated code. Do not emit any more instructions after calling this method.

ConvertToDouble ( ) : void

Pops a value from the stack, converts it to a double, then pushes it back onto the stack.

ConvertToInt64 ( ) : void

Pops a value from the stack, converts it to a signed 64-bit integer, then pushes it back onto the stack.

ConvertToInteger ( ) : void

Pops a value from the stack, converts it to a signed integer, then pushes it back onto the stack.

ConvertToUnsignedInt64 ( ) : void

Pops a value from the stack, converts it to an unsigned 64-bit integer, then pushes it back onto the stack.

ConvertToUnsignedInteger ( ) : void

Pops a value from the stack, converts it to an unsigned integer, then pushes it back onto the stack.

ConvertUnsignedToDouble ( ) : void

Pops an unsigned integer from the stack, converts it to a double, then pushes it back onto the stack.

CreateLabel ( ) : ILLabel

Creates a label without setting its position.

CreateTemporaryVariable ( PrimitiveType type ) : ILLocalVariable

Retrieves a temporary variable with the given type, reusing a previous variable if possible.

CreateTemporaryVariable ( Type type ) : ILLocalVariable

Retrieves a temporary variable with the given type, reusing a previous variable if possible.

DeclareVariable ( PrimitiveType type, string name = null ) : ILLocalVariable

Declares a new local variable.

DeclareVariable ( Type type, string name = null ) : ILLocalVariable

Declares a new local variable.

DefineLabelPosition ( ) : ILLabel

Creates a label and sets its position.

DefineLabelPosition ( ILLabel label ) : void

Defines the position of the given label.

Divide ( ) : void

Pops two values from the stack, divides the first by the second, then pushes the result to the stack.

Duplicate ( ) : void

Duplicates the value on the top of the stack.

EndExceptionBlock ( ) : void

Ends a try-catch-finally block.

EndFault ( ) : void

This instruction can be used from within a fault block to resume the exception handling process. It is the only valid way of leaving a fault block.

EndFilter ( ) : void

This instruction can be used from within a filter block to indicate whether the exception will be handled. It pops an integer from the stack which should be 0 to continue searching for an exception handler or 1 to use the handler associated with the filter. EndFilter() must be called at the end of a filter block.

EndFinally ( ) : void

This instruction can be used from within a finally block to resume the exception handling process. It is the only valid way of leaving a finally block.

InitObject ( Type type ) : void

Pops a managed or native pointer off the stack and initializes the referenced type with zeros.

IsInstance ( Type type ) : void

Pops an object off the stack, checks that the object inherits from or implements the given type, and pushes either the object (if the check was successful) or null (if the check failed) onto the stack.

Leave ( ILLabel label ) : void

Unconditionally branches to the given label. Unlike the regular branch instruction, this instruction can exit out of try, filter and catch blocks.

LoadAddressOfVariable ( ILLocalVariable variable ) : void

Pushes the address of the given variable onto the stack.

LoadArgument ( int argumentIndex ) : void

Pushes the value of the method argument with the given index onto the stack.

LoadArrayElement ( PrimitiveType type ) : void

Pops the array and index off the stack and pushes the element value onto the stack.

LoadArrayElement ( Type type ) : void

Pops the array and index off the stack and pushes the element value onto the stack.

LoadArrayLength ( ) : void

Pops an array off the stack and pushes the length of the array onto the stack.

LoadBoolean ( bool value ) : void

Pushes a constant value onto the stack.

LoadDouble ( double value ) : void

Pushes a constant value onto the stack.

LoadField ( System field ) : void

Pushes the value of the given field onto the stack.

LoadInt32 ( int value ) : void

Pushes a constant value onto the stack.

LoadInt32 ( uint value ) : void

Pushes an unsigned constant value onto the stack.

LoadInt64 ( long value ) : void

Pushes a 64-bit constant value onto the stack.

LoadInt64 ( ulong value ) : void

Pushes an unsigned 64-bit constant value onto the stack.

LoadMethodPointer ( System method ) : void

Pushes a pointer to the native code implementing the given method onto the evaluation stack. This method is identical to LoadStaticMethodPointer() if the method is a static method (or is declared on a value type) or LoadVirtualMethodPointer() otherwise.

LoadNull ( ) : void

Pushes null onto the stack.

LoadStaticMethodPointer ( System method ) : void

Pushes a pointer to the native code implementing the given method onto the evaluation stack. The virtual qualifier will be ignored, if present.

LoadString ( string value ) : void

Pushes a constant value onto the stack.

LoadStringOrNull ( string value ) : void

Pushes a constant value onto the stack.

LoadToken ( System method ) : void

Pushes a RuntimeMethodHandle corresponding to the given method onto the evaluation stack.

LoadToken ( Type type ) : void

Pushes a RuntimeTypeHandle corresponding to the given type onto the evaluation stack.

LoadVariable ( ILLocalVariable variable ) : void

Pushes the value of the given variable onto the stack.

LoadVirtualMethodPointer ( System method ) : void

Pushes a pointer to the native code implementing the given method onto the evaluation stack. This method cannot be used to retrieve a pointer to a static method.

MarkSequencePoint ( System document, Jurassic.Compiler.SourceCodeSpan span ) : void

Marks a sequence point in the Microsoft intermediate language (MSIL) stream.

MarkSequencePoint ( System document, int startLine, int startColumn, int endLine, int endColumn ) : void

Marks a sequence point in the Microsoft intermediate language (MSIL) stream.

Multiply ( ) : void

Pops two values from the stack, multiplies them together, then pushes the result to the stack.

Negate ( ) : void

Pops a value from the stack, negates it, then pushes it back onto the stack.

NewArray ( Type type ) : void

Pops the size of the array off the stack and pushes a new array of the given type onto the stack.

NewObject ( System constructor ) : void

Pops the constructor arguments off the stack and creates a new instance of the object.

NoOperation ( ) : void

Does nothing.

Pop ( ) : void

Pops the value from the top of the stack.

ReleaseTemporaryVariable ( ILLocalVariable temporaryVariable ) : void

Indicates that the given temporary variable is no longer needed.

Remainder ( ) : void

Pops two values from the stack, divides the first by the second, then pushes the remainder to the stack.

Return ( ) : void

Returns from the current method. A value is popped from the stack and used as the return value.

ShiftLeft ( ) : void

Pops two values from the stack, shifts the first to the left, then pushes the result to the stack.

ShiftRight ( ) : void

Pops two values from the stack, shifts the first to the right, then pushes the result to the stack. The sign bit is preserved.

ShiftRightUnsigned ( ) : void

Pops two values from the stack, shifts the first to the right, then pushes the result to the stack. The sign bit is not preserved.

StoreArgument ( int argumentIndex ) : void

Pops a value from the stack and stores it in the method argument with the given index.

StoreArrayElement ( PrimitiveType type ) : void

Pops the array, index and value off the stack and stores the value in the array.

StoreArrayElement ( Type type ) : void

Pops the array, index and value off the stack and stores the value in the array.

StoreField ( System field ) : void

Pops a value off the stack and stores it in the given field.

StoreVariable ( ILLocalVariable variable ) : void

Pops the value from the top of the stack and stores it in the given local variable.

Subtract ( ) : void

Pops two values from the stack, subtracts the second from the first, then pushes the result to the stack.

Switch ( ILLabel labels ) : void

Creates a jump table. A value is popped from the stack - this value indicates the index of the label in the labels array to jump to.

Throw ( ) : void

Pops an exception object off the stack and throws the exception.

Unbox ( PrimitiveType type ) : void

Pops an object reference (representing a boxed value) from the stack, extracts the address, then pushes that address onto the stack.

Unbox ( Type type ) : void

Pops an object reference (representing a boxed value) from the stack, extracts the address, then pushes that address onto the stack.

UnboxAny ( PrimitiveType type ) : void

Pops an object reference (representing a boxed value) from the stack, extracts the value, then pushes the value onto the stack.

UnboxAny ( Type type ) : void

Pops an object reference (representing a boxed value) from the stack, extracts the value, then pushes the value onto the stack.

메소드 상세

Add() 공개 추상적인 메소드

Pops two values from the stack, adds them together, then pushes the result to the stack.
public abstract Add ( ) : void
리턴 void

BeginCatchBlock() 공개 추상적인 메소드

Begins a catch block. BeginExceptionBlock() must have already been called.
public abstract BeginCatchBlock ( Type exceptionType ) : void
exceptionType System.Type The type of exception to handle.
리턴 void

BeginExceptionBlock() 공개 추상적인 메소드

Begins a try-catch-finally block. After issuing this instruction any following instructions are conceptually within the try block.
public abstract BeginExceptionBlock ( ) : void
리턴 void

BeginFaultBlock() 공개 추상적인 메소드

Begins a fault block. BeginExceptionBlock() must have already been called.
public abstract BeginFaultBlock ( ) : void
리턴 void

BeginFilterBlock() 공개 추상적인 메소드

Begins a filter block. BeginExceptionBlock() must have already been called.
public abstract BeginFilterBlock ( ) : void
리턴 void

BeginFinallyBlock() 공개 추상적인 메소드

Begins a finally block. BeginExceptionBlock() must have already been called.
public abstract BeginFinallyBlock ( ) : void
리턴 void

BitwiseAnd() 공개 추상적인 메소드

Pops two values from the stack, ANDs them together, then pushes the result to the stack.
public abstract BitwiseAnd ( ) : void
리턴 void

BitwiseNot() 공개 추상적인 메소드

Pops a value from the stack, inverts it, then pushes the result to the stack.
public abstract BitwiseNot ( ) : void
리턴 void

BitwiseOr() 공개 추상적인 메소드

Pops two values from the stack, ORs them together, then pushes the result to the stack.
public abstract BitwiseOr ( ) : void
리턴 void

BitwiseXor() 공개 추상적인 메소드

Pops two values from the stack, XORs them together, then pushes the result to the stack.
public abstract BitwiseXor ( ) : void
리턴 void

Box() 공개 메소드

Pops a value from the stack, converts it to an object reference, then pushes it back onto the stack.
public Box ( PrimitiveType type ) : void
type PrimitiveType The type of value to box. This should be a value type.
리턴 void

Box() 공개 추상적인 메소드

Pops a value from the stack, converts it to an object reference, then pushes it back onto the stack.
public abstract Box ( Type type ) : void
type System.Type The type of value to box. This should be a value type.
리턴 void

Branch() 공개 추상적인 메소드

Unconditionally branches to the given label.
public abstract Branch ( ILLabel label ) : void
label ILLabel The label to branch to.
리턴 void

BranchIfEqual() 공개 추상적인 메소드

Branches to the given label if the two values on the top of the stack are equal.
public abstract BranchIfEqual ( ILLabel label ) : void
label ILLabel The label to branch to.
리턴 void

BranchIfFalse() 공개 메소드

Branches to the given label if the value on the top of the stack is zero, false or null.
public BranchIfFalse ( ILLabel label ) : void
label ILLabel The label to branch to.
리턴 void

BranchIfGreaterThan() 공개 추상적인 메소드

Branches to the given label if the first value on the stack is greater than the second value on the stack.
public abstract BranchIfGreaterThan ( ILLabel label ) : void
label ILLabel The label to branch to.
리턴 void

BranchIfGreaterThanOrEqual() 공개 추상적인 메소드

Branches to the given label if the first value on the stack is greater than or equal to the second value on the stack.
public abstract BranchIfGreaterThanOrEqual ( ILLabel label ) : void
label ILLabel The label to branch to.
리턴 void

BranchIfGreaterThanOrEqualUnsigned() 공개 추상적인 메소드

Branches to the given label if the first value on the stack is greater than or equal to the second value on the stack. If the operands are integers then they are treated as if they are unsigned. If the operands are floating point numbers then a NaN value will trigger a branch.
public abstract BranchIfGreaterThanOrEqualUnsigned ( ILLabel label ) : void
label ILLabel The label to branch to.
리턴 void

BranchIfGreaterThanUnsigned() 공개 추상적인 메소드

Branches to the given label if the first value on the stack is greater than the second value on the stack. If the operands are integers then they are treated as if they are unsigned. If the operands are floating point numbers then a NaN value will trigger a branch.
public abstract BranchIfGreaterThanUnsigned ( ILLabel label ) : void
label ILLabel The label to branch to.
리턴 void

BranchIfLessThan() 공개 추상적인 메소드

Branches to the given label if the first value on the stack is less than the second value on the stack.
public abstract BranchIfLessThan ( ILLabel label ) : void
label ILLabel The label to branch to.
리턴 void

BranchIfLessThanOrEqual() 공개 추상적인 메소드

Branches to the given label if the first value on the stack is less than or equal to the second value on the stack.
public abstract BranchIfLessThanOrEqual ( ILLabel label ) : void
label ILLabel The label to branch to.
리턴 void

BranchIfLessThanOrEqualUnsigned() 공개 추상적인 메소드

Branches to the given label if the first value on the stack is less than or equal to the second value on the stack. If the operands are integers then they are treated as if they are unsigned. If the operands are floating point numbers then a NaN value will trigger a branch.
public abstract BranchIfLessThanOrEqualUnsigned ( ILLabel label ) : void
label ILLabel The label to branch to.
리턴 void

BranchIfLessThanUnsigned() 공개 추상적인 메소드

Branches to the given label if the first value on the stack is less than the second value on the stack. If the operands are integers then they are treated as if they are unsigned. If the operands are floating point numbers then a NaN value will trigger a branch.
public abstract BranchIfLessThanUnsigned ( ILLabel label ) : void
label ILLabel The label to branch to.
리턴 void

BranchIfNotEqual() 공개 추상적인 메소드

Branches to the given label if the two values on the top of the stack are not equal.
public abstract BranchIfNotEqual ( ILLabel label ) : void
label ILLabel The label to branch to.
리턴 void

BranchIfNotNull() 공개 메소드

Branches to the given label if the value on the top of the stack is non-zero, true or non-null.
public BranchIfNotNull ( ILLabel label ) : void
label ILLabel The label to branch to.
리턴 void

BranchIfNotZero() 공개 추상적인 메소드

Branches to the given label if the value on the top of the stack is non-zero, true or non-null.
public abstract BranchIfNotZero ( ILLabel label ) : void
label ILLabel The label to branch to.
리턴 void

BranchIfNull() 공개 메소드

Branches to the given label if the value on the top of the stack is zero, false or null.
public BranchIfNull ( ILLabel label ) : void
label ILLabel The label to branch to.
리턴 void

BranchIfTrue() 공개 메소드

Branches to the given label if the value on the top of the stack is non-zero, true or non-null.
public BranchIfTrue ( ILLabel label ) : void
label ILLabel The label to branch to.
리턴 void

BranchIfZero() 공개 추상적인 메소드

Branches to the given label if the value on the top of the stack is zero, false or null.
public abstract BranchIfZero ( ILLabel label ) : void
label ILLabel The label to branch to.
리턴 void

Breakpoint() 공개 추상적인 메소드

Triggers a breakpoint in an attached debugger.
public abstract Breakpoint ( ) : void
리턴 void

Call() 공개 메소드

Pops the method arguments off the stack, calls the given method, then pushes the result to the stack (if there was one). Identical to CallStatic() if the method is a static method (or is declared on a value type) or CallVirtual() otherwise.
public Call ( System method ) : void
method System The method to call.
리턴 void

CallStatic() 공개 추상적인 메소드

Pops the method arguments off the stack, calls the given method, then pushes the result to the stack (if there was one). This operation can be used to call instance methods, but virtual overrides will not be called and a null check will not be performed at the callsite.
public abstract CallStatic ( System method ) : void
method System The method to call.
리턴 void

CallVirtual() 공개 추상적인 메소드

Pops the method arguments off the stack, calls the given method, then pushes the result to the stack (if there was one). This operation cannot be used to call static methods. Virtual overrides are obeyed and a null check is performed.
The method is static.
public abstract CallVirtual ( System method ) : void
method System The method to call.
리턴 void

CastClass() 공개 추상적인 메소드

Pops an object off the stack, checks that the object inherits from or implements the given type, and pushes the object onto the stack if the check was successful or throws an InvalidCastException if the check failed.
public abstract CastClass ( Type type ) : void
type System.Type The type of the class the object inherits from or the interface the /// object implements.
리턴 void

CompareEqual() 공개 추상적인 메소드

Pops two values from the stack, compares, then pushes 1 if the first argument is equal to the second, or 0 otherwise. Produces 0 if one or both of the arguments are NaN.
public abstract CompareEqual ( ) : void
리턴 void

CompareGreaterThan() 공개 추상적인 메소드

Pops two values from the stack, compares, then pushes 1 if the first argument is greater than the second, or 0 otherwise. Produces 0 if one or both of the arguments are NaN.
public abstract CompareGreaterThan ( ) : void
리턴 void

CompareGreaterThanUnsigned() 공개 추상적인 메소드

Pops two values from the stack, compares, then pushes 1 if the first argument is greater than the second, or 0 otherwise. Produces 1 if one or both of the arguments are NaN. Integers are considered to be unsigned.
public abstract CompareGreaterThanUnsigned ( ) : void
리턴 void

CompareLessThan() 공개 추상적인 메소드

Pops two values from the stack, compares, then pushes 1 if the first argument is less than the second, or 0 otherwise. Produces 0 if one or both of the arguments are NaN.
public abstract CompareLessThan ( ) : void
리턴 void

CompareLessThanUnsigned() 공개 추상적인 메소드

Pops two values from the stack, compares, then pushes 1 if the first argument is less than the second, or 0 otherwise. Produces 1 if one or both of the arguments are NaN. Integers are considered to be unsigned.
public abstract CompareLessThanUnsigned ( ) : void
리턴 void

Complete() 공개 추상적인 메소드

Gets or sets a value which indicates whether diagnostics are enabled. Better error messages are provided in some cases if this property is set to true, however performance and memory usage are negatively impacted. Emits a return statement and finalizes the generated code. Do not emit any more instructions after calling this method.
public abstract Complete ( ) : void
리턴 void

ConvertToDouble() 공개 추상적인 메소드

Pops a value from the stack, converts it to a double, then pushes it back onto the stack.
public abstract ConvertToDouble ( ) : void
리턴 void

ConvertToInt64() 공개 추상적인 메소드

Pops a value from the stack, converts it to a signed 64-bit integer, then pushes it back onto the stack.
public abstract ConvertToInt64 ( ) : void
리턴 void

ConvertToInteger() 공개 추상적인 메소드

Pops a value from the stack, converts it to a signed integer, then pushes it back onto the stack.
public abstract ConvertToInteger ( ) : void
리턴 void

ConvertToUnsignedInt64() 공개 추상적인 메소드

Pops a value from the stack, converts it to an unsigned 64-bit integer, then pushes it back onto the stack.
public abstract ConvertToUnsignedInt64 ( ) : void
리턴 void

ConvertToUnsignedInteger() 공개 추상적인 메소드

Pops a value from the stack, converts it to an unsigned integer, then pushes it back onto the stack.
public abstract ConvertToUnsignedInteger ( ) : void
리턴 void

ConvertUnsignedToDouble() 공개 추상적인 메소드

Pops an unsigned integer from the stack, converts it to a double, then pushes it back onto the stack.
public abstract ConvertUnsignedToDouble ( ) : void
리턴 void

CreateLabel() 공개 추상적인 메소드

Creates a label without setting its position.
public abstract CreateLabel ( ) : ILLabel
리턴 ILLabel

CreateTemporaryVariable() 공개 메소드

Retrieves a temporary variable with the given type, reusing a previous variable if possible.
public CreateTemporaryVariable ( PrimitiveType type ) : ILLocalVariable
type PrimitiveType The type of variable to create.
리턴 ILLocalVariable

CreateTemporaryVariable() 공개 메소드

Retrieves a temporary variable with the given type, reusing a previous variable if possible.
public CreateTemporaryVariable ( Type type ) : ILLocalVariable
type System.Type The type of variable to create.
리턴 ILLocalVariable

DeclareVariable() 공개 메소드

Declares a new local variable.
public DeclareVariable ( PrimitiveType type, string name = null ) : ILLocalVariable
type PrimitiveType The type of the local variable.
name string The name of the local variable. Can be null.
리턴 ILLocalVariable

DeclareVariable() 공개 추상적인 메소드

Declares a new local variable.
public abstract DeclareVariable ( Type type, string name = null ) : ILLocalVariable
type System.Type The type of the local variable.
name string The name of the local variable. Can be null.
리턴 ILLocalVariable

DefineLabelPosition() 공개 메소드

Creates a label and sets its position.
public DefineLabelPosition ( ) : ILLabel
리턴 ILLabel

DefineLabelPosition() 공개 추상적인 메소드

Defines the position of the given label.
public abstract DefineLabelPosition ( ILLabel label ) : void
label ILLabel The label to define.
리턴 void

Divide() 공개 추상적인 메소드

Pops two values from the stack, divides the first by the second, then pushes the result to the stack.
public abstract Divide ( ) : void
리턴 void

Duplicate() 공개 추상적인 메소드

Duplicates the value on the top of the stack.
public abstract Duplicate ( ) : void
리턴 void

EndExceptionBlock() 공개 추상적인 메소드

Ends a try-catch-finally block.
public abstract EndExceptionBlock ( ) : void
리턴 void

EndFault() 공개 메소드

This instruction can be used from within a fault block to resume the exception handling process. It is the only valid way of leaving a fault block.
public EndFault ( ) : void
리턴 void

EndFilter() 공개 추상적인 메소드

This instruction can be used from within a filter block to indicate whether the exception will be handled. It pops an integer from the stack which should be 0 to continue searching for an exception handler or 1 to use the handler associated with the filter. EndFilter() must be called at the end of a filter block.
public abstract EndFilter ( ) : void
리턴 void

EndFinally() 공개 추상적인 메소드

This instruction can be used from within a finally block to resume the exception handling process. It is the only valid way of leaving a finally block.
public abstract EndFinally ( ) : void
리턴 void

InitObject() 공개 추상적인 메소드

Pops a managed or native pointer off the stack and initializes the referenced type with zeros.
public abstract InitObject ( Type type ) : void
type System.Type The type the pointer on the top of the stack is pointing to.
리턴 void

IsInstance() 공개 추상적인 메소드

Pops an object off the stack, checks that the object inherits from or implements the given type, and pushes either the object (if the check was successful) or null (if the check failed) onto the stack.
public abstract IsInstance ( Type type ) : void
type System.Type The type of the class the object inherits from or the interface the /// object implements.
리턴 void

Leave() 공개 추상적인 메소드

Unconditionally branches to the given label. Unlike the regular branch instruction, this instruction can exit out of try, filter and catch blocks.
public abstract Leave ( ILLabel label ) : void
label ILLabel The label to branch to.
리턴 void

LoadAddressOfVariable() 공개 추상적인 메소드

Pushes the address of the given variable onto the stack.
public abstract LoadAddressOfVariable ( ILLocalVariable variable ) : void
variable ILLocalVariable The variable whose address will be pushed.
리턴 void

LoadArgument() 공개 추상적인 메소드

Pushes the value of the method argument with the given index onto the stack.
public abstract LoadArgument ( int argumentIndex ) : void
argumentIndex int The index of the argument to push onto the stack.
리턴 void

LoadArrayElement() 공개 메소드

Pops the array and index off the stack and pushes the element value onto the stack.
public LoadArrayElement ( PrimitiveType type ) : void
type PrimitiveType The element type.
리턴 void

LoadArrayElement() 공개 추상적인 메소드

Pops the array and index off the stack and pushes the element value onto the stack.
public abstract LoadArrayElement ( Type type ) : void
type System.Type The element type.
리턴 void

LoadArrayLength() 공개 추상적인 메소드

Pops an array off the stack and pushes the length of the array onto the stack.
public abstract LoadArrayLength ( ) : void
리턴 void

LoadBoolean() 공개 메소드

Pushes a constant value onto the stack.
public LoadBoolean ( bool value ) : void
value bool The boolean to push onto the stack.
리턴 void

LoadDouble() 공개 추상적인 메소드

Pushes a constant value onto the stack.
public abstract LoadDouble ( double value ) : void
value double The number to push onto the stack.
리턴 void

LoadField() 공개 추상적인 메소드

Pushes the value of the given field onto the stack.
public abstract LoadField ( System field ) : void
field System The field whose value will be pushed.
리턴 void

LoadInt32() 공개 추상적인 메소드

Pushes a constant value onto the stack.
public abstract LoadInt32 ( int value ) : void
value int The integer to push onto the stack.
리턴 void

LoadInt32() 공개 메소드

Pushes an unsigned constant value onto the stack.
public LoadInt32 ( uint value ) : void
value uint The integer to push onto the stack.
리턴 void

LoadInt64() 공개 추상적인 메소드

Pushes a 64-bit constant value onto the stack.
public abstract LoadInt64 ( long value ) : void
value long The 64-bit integer to push onto the stack.
리턴 void

LoadInt64() 공개 메소드

Pushes an unsigned 64-bit constant value onto the stack.
public LoadInt64 ( ulong value ) : void
value ulong The 64-bit integer to push onto the stack.
리턴 void

LoadMethodPointer() 공개 메소드

Pushes a pointer to the native code implementing the given method onto the evaluation stack. This method is identical to LoadStaticMethodPointer() if the method is a static method (or is declared on a value type) or LoadVirtualMethodPointer() otherwise.
public LoadMethodPointer ( System method ) : void
method System The method to retrieve a pointer for.
리턴 void

LoadNull() 공개 추상적인 메소드

Pushes null onto the stack.
public abstract LoadNull ( ) : void
리턴 void

LoadStaticMethodPointer() 공개 추상적인 메소드

Pushes a pointer to the native code implementing the given method onto the evaluation stack. The virtual qualifier will be ignored, if present.
public abstract LoadStaticMethodPointer ( System method ) : void
method System The method to retrieve a pointer for.
리턴 void

LoadString() 공개 추상적인 메소드

Pushes a constant value onto the stack.
public abstract LoadString ( string value ) : void
value string The string to push onto the stack.
리턴 void

LoadStringOrNull() 공개 메소드

Pushes a constant value onto the stack.
public LoadStringOrNull ( string value ) : void
value string The string to push onto the stack. Can be null.
리턴 void

LoadToken() 공개 추상적인 메소드

Pushes a RuntimeMethodHandle corresponding to the given method onto the evaluation stack.
public abstract LoadToken ( System method ) : void
method System The method to convert to a RuntimeMethodHandle.
리턴 void

LoadToken() 공개 추상적인 메소드

Pushes a RuntimeTypeHandle corresponding to the given type onto the evaluation stack.
public abstract LoadToken ( Type type ) : void
type System.Type The type to convert to a RuntimeTypeHandle.
리턴 void

LoadVariable() 공개 추상적인 메소드

Pushes the value of the given variable onto the stack.
public abstract LoadVariable ( ILLocalVariable variable ) : void
variable ILLocalVariable The variable whose value will be pushed.
리턴 void

LoadVirtualMethodPointer() 공개 추상적인 메소드

Pushes a pointer to the native code implementing the given method onto the evaluation stack. This method cannot be used to retrieve a pointer to a static method.
The method is static.
public abstract LoadVirtualMethodPointer ( System method ) : void
method System The method to retrieve a pointer for.
리턴 void

MarkSequencePoint() 공개 메소드

Marks a sequence point in the Microsoft intermediate language (MSIL) stream.
public MarkSequencePoint ( System document, Jurassic.Compiler.SourceCodeSpan span ) : void
document System The document for which the sequence point is being defined.
span Jurassic.Compiler.SourceCodeSpan The start and end positions which define the sequence point.
리턴 void

MarkSequencePoint() 공개 추상적인 메소드

Marks a sequence point in the Microsoft intermediate language (MSIL) stream.
public abstract MarkSequencePoint ( System document, int startLine, int startColumn, int endLine, int endColumn ) : void
document System The document for which the sequence point is being defined.
startLine int The line where the sequence point begins.
startColumn int The column in the line where the sequence point begins.
endLine int The line where the sequence point ends.
endColumn int The column in the line where the sequence point ends.
리턴 void

Multiply() 공개 추상적인 메소드

Pops two values from the stack, multiplies them together, then pushes the result to the stack.
public abstract Multiply ( ) : void
리턴 void

Negate() 공개 추상적인 메소드

Pops a value from the stack, negates it, then pushes it back onto the stack.
public abstract Negate ( ) : void
리턴 void

NewArray() 공개 추상적인 메소드

Pops the size of the array off the stack and pushes a new array of the given type onto the stack.
public abstract NewArray ( Type type ) : void
type System.Type The element type.
리턴 void

NewObject() 공개 추상적인 메소드

Pops the constructor arguments off the stack and creates a new instance of the object.
public abstract NewObject ( System constructor ) : void
constructor System The constructor that is used to initialize the object.
리턴 void

NoOperation() 공개 추상적인 메소드

Does nothing.
public abstract NoOperation ( ) : void
리턴 void

Pop() 공개 추상적인 메소드

Pops the value from the top of the stack.
public abstract Pop ( ) : void
리턴 void

ReleaseTemporaryVariable() 공개 메소드

Indicates that the given temporary variable is no longer needed.
public ReleaseTemporaryVariable ( ILLocalVariable temporaryVariable ) : void
temporaryVariable ILLocalVariable The temporary variable created using CreateTemporaryVariable().
리턴 void

Remainder() 공개 추상적인 메소드

Pops two values from the stack, divides the first by the second, then pushes the remainder to the stack.
public abstract Remainder ( ) : void
리턴 void

Return() 공개 추상적인 메소드

Returns from the current method. A value is popped from the stack and used as the return value.
public abstract Return ( ) : void
리턴 void

ShiftLeft() 공개 추상적인 메소드

Pops two values from the stack, shifts the first to the left, then pushes the result to the stack.
public abstract ShiftLeft ( ) : void
리턴 void

ShiftRight() 공개 추상적인 메소드

Pops two values from the stack, shifts the first to the right, then pushes the result to the stack. The sign bit is preserved.
public abstract ShiftRight ( ) : void
리턴 void

ShiftRightUnsigned() 공개 추상적인 메소드

Pops two values from the stack, shifts the first to the right, then pushes the result to the stack. The sign bit is not preserved.
public abstract ShiftRightUnsigned ( ) : void
리턴 void

StoreArgument() 공개 추상적인 메소드

Pops a value from the stack and stores it in the method argument with the given index.
public abstract StoreArgument ( int argumentIndex ) : void
argumentIndex int The index of the argument to store into.
리턴 void

StoreArrayElement() 공개 메소드

Pops the array, index and value off the stack and stores the value in the array.
public StoreArrayElement ( PrimitiveType type ) : void
type PrimitiveType The element type.
리턴 void

StoreArrayElement() 공개 추상적인 메소드

Pops the array, index and value off the stack and stores the value in the array.
public abstract StoreArrayElement ( Type type ) : void
type System.Type The element type.
리턴 void

StoreField() 공개 추상적인 메소드

Pops a value off the stack and stores it in the given field.
public abstract StoreField ( System field ) : void
field System The field to modify.
리턴 void

StoreVariable() 공개 추상적인 메소드

Pops the value from the top of the stack and stores it in the given local variable.
public abstract StoreVariable ( ILLocalVariable variable ) : void
variable ILLocalVariable The variable to store the value.
리턴 void

Subtract() 공개 추상적인 메소드

Pops two values from the stack, subtracts the second from the first, then pushes the result to the stack.
public abstract Subtract ( ) : void
리턴 void

Switch() 공개 추상적인 메소드

Creates a jump table. A value is popped from the stack - this value indicates the index of the label in the labels array to jump to.
public abstract Switch ( ILLabel labels ) : void
labels ILLabel A array of labels.
리턴 void

Throw() 공개 추상적인 메소드

Pops an exception object off the stack and throws the exception.
public abstract Throw ( ) : void
리턴 void

Unbox() 공개 메소드

Pops an object reference (representing a boxed value) from the stack, extracts the address, then pushes that address onto the stack.
public Unbox ( PrimitiveType type ) : void
type PrimitiveType The type of the boxed value. This should be a value type.
리턴 void

Unbox() 공개 추상적인 메소드

Pops an object reference (representing a boxed value) from the stack, extracts the address, then pushes that address onto the stack.
public abstract Unbox ( Type type ) : void
type System.Type The type of the boxed value. This should be a value type.
리턴 void

UnboxAny() 공개 메소드

Pops an object reference (representing a boxed value) from the stack, extracts the value, then pushes the value onto the stack.
public UnboxAny ( PrimitiveType type ) : void
type PrimitiveType The type of the boxed value. This should be a value type.
리턴 void

UnboxAny() 공개 추상적인 메소드

Pops an object reference (representing a boxed value) from the stack, extracts the value, then pushes the value onto the stack.
public abstract UnboxAny ( Type type ) : void
type System.Type The type of the boxed value. This should be a value type.
리턴 void