C# 클래스 Mono.CSharp.EmitContext

An Emit Context is created for each body of code (from methods, properties bodies, indexer bodies or constructor bodies)
상속: BuilderContext
파일 보기 프로젝트 열기: kumpera/mono 1 사용 예제들

공개 프로퍼티들

프로퍼티 타입 설명
CurrentAnonymousMethod AnonymousExpression
DefaultTarget System.Reflection.Emit.Label
HasReturnLabel bool
LoopBegin System.Reflection.Emit.Label
MemberContext IMemberContext
ReturnLabel System.Reflection.Emit.Label
Switch Switch
ig System.Reflection.Emit.ILGenerator
return_value System.Reflection.Emit.LocalBuilder

Private Properties

프로퍼티 타입 설명

공개 메소드들

메소드 설명
BeginCatchBlock ( System.TypeSpec type ) : void
BeginExceptionBlock ( ) : void
BeginFinallyBlock ( ) : void
BeginScope ( ) : void
CreateDynamicSite ( ) : DynamicSiteClass
DeclareLocal ( System.TypeSpec type, bool pinned ) : LocalBuilder
DefineLabel ( ) : Label
DefineLocalVariable ( string name, LocalBuilder builder ) : void
Emit ( OpCode opcode ) : void
Emit ( OpCode opcode, FieldSpec field ) : void
Emit ( OpCode opcode, Label label ) : void
Emit ( OpCode opcode, LocalBuilder local ) : void
Emit ( OpCode opcode, MethodInfo method ) : void
Emit ( OpCode opcode, MethodSpec method ) : void
Emit ( OpCode opcode, MethodSpec method, Type vargs ) : void
Emit ( OpCode opcode, System.TypeSpec type ) : void
Emit ( OpCode opcode, byte arg ) : void
Emit ( OpCode opcode, double arg ) : void
Emit ( OpCode opcode, float arg ) : void
Emit ( OpCode opcode, int arg ) : void
Emit ( OpCode opcode, string arg ) : void
EmitArrayAddress ( ArrayContainer ac ) : void
EmitArrayLoad ( ArrayContainer ac ) : void
EmitArrayNew ( ArrayContainer ac ) : void
EmitArrayStore ( ArrayContainer ac ) : void
EmitContext ( IMemberContext rc, ILGenerator ig, System.TypeSpec return_type ) : System
EmitInt ( int i ) : void
EmitLoadFromPtr ( System.TypeSpec t ) : void
EmitLong ( long l ) : void
EmitStoreFromPtr ( System.TypeSpec type ) : void
EndExceptionBlock ( ) : void
EndScope ( ) : void
FreeTemporaryLocal ( LocalBuilder b, System.TypeSpec t ) : void
GetTemporaryLocal ( System.TypeSpec t ) : LocalBuilder

Returns a temporary storage for a variable of type t as a local variable in the current body.

Mark ( Mono.CSharp.Location loc ) : void

This is called immediately before emitting an IL opcode to tell the symbol writer to which source line this opcode belongs.

MarkLabel ( Label label ) : void
TemporaryReturn ( ) : LocalBuilder

ReturnValue creates on demand the LocalBuilder for the return value from the function. By default this is not used. This is only required when returns are found inside Try or Catch statements. This method is typically invoked from the Emit phase, so we allow the creation of a return label if it was not requested during the resolution phase. Could be cleaned up, but it would replicate a lot of logic in the Emit phase of the code that uses it.

메소드 상세

BeginCatchBlock() 공개 메소드

public BeginCatchBlock ( System.TypeSpec type ) : void
type System.TypeSpec
리턴 void

BeginExceptionBlock() 공개 메소드

public BeginExceptionBlock ( ) : void
리턴 void

BeginFinallyBlock() 공개 메소드

public BeginFinallyBlock ( ) : void
리턴 void

BeginScope() 공개 메소드

public BeginScope ( ) : void
리턴 void

CreateDynamicSite() 공개 메소드

public CreateDynamicSite ( ) : DynamicSiteClass
리턴 DynamicSiteClass

DeclareLocal() 공개 메소드

public DeclareLocal ( System.TypeSpec type, bool pinned ) : LocalBuilder
type System.TypeSpec
pinned bool
리턴 System.Reflection.Emit.LocalBuilder

DefineLabel() 공개 메소드

public DefineLabel ( ) : Label
리턴 System.Reflection.Emit.Label

DefineLocalVariable() 공개 메소드

public DefineLocalVariable ( string name, LocalBuilder builder ) : void
name string
builder System.Reflection.Emit.LocalBuilder
리턴 void

Emit() 공개 메소드

public Emit ( OpCode opcode ) : void
opcode OpCode
리턴 void

Emit() 공개 메소드

public Emit ( OpCode opcode, FieldSpec field ) : void
opcode OpCode
field FieldSpec
리턴 void

Emit() 공개 메소드

public Emit ( OpCode opcode, Label label ) : void
opcode OpCode
label System.Reflection.Emit.Label
리턴 void

Emit() 공개 메소드

public Emit ( OpCode opcode, LocalBuilder local ) : void
opcode OpCode
local System.Reflection.Emit.LocalBuilder
리턴 void

Emit() 공개 메소드

public Emit ( OpCode opcode, MethodInfo method ) : void
opcode OpCode
method MethodInfo
리턴 void

Emit() 공개 메소드

public Emit ( OpCode opcode, MethodSpec method ) : void
opcode OpCode
method MethodSpec
리턴 void

Emit() 공개 메소드

public Emit ( OpCode opcode, MethodSpec method, Type vargs ) : void
opcode OpCode
method MethodSpec
vargs IKVM.Reflection.Type
리턴 void

Emit() 공개 메소드

public Emit ( OpCode opcode, System.TypeSpec type ) : void
opcode OpCode
type System.TypeSpec
리턴 void

Emit() 공개 메소드

public Emit ( OpCode opcode, byte arg ) : void
opcode OpCode
arg byte
리턴 void

Emit() 공개 메소드

public Emit ( OpCode opcode, double arg ) : void
opcode OpCode
arg double
리턴 void

Emit() 공개 메소드

public Emit ( OpCode opcode, float arg ) : void
opcode OpCode
arg float
리턴 void

Emit() 공개 메소드

public Emit ( OpCode opcode, int arg ) : void
opcode OpCode
arg int
리턴 void

Emit() 공개 메소드

public Emit ( OpCode opcode, string arg ) : void
opcode OpCode
arg string
리턴 void

EmitArrayAddress() 공개 메소드

public EmitArrayAddress ( ArrayContainer ac ) : void
ac ArrayContainer
리턴 void

EmitArrayLoad() 공개 메소드

public EmitArrayLoad ( ArrayContainer ac ) : void
ac ArrayContainer
리턴 void

EmitArrayNew() 공개 메소드

public EmitArrayNew ( ArrayContainer ac ) : void
ac ArrayContainer
리턴 void

EmitArrayStore() 공개 메소드

public EmitArrayStore ( ArrayContainer ac ) : void
ac ArrayContainer
리턴 void

EmitContext() 공개 메소드

public EmitContext ( IMemberContext rc, ILGenerator ig, System.TypeSpec return_type ) : System
rc IMemberContext
ig System.Reflection.Emit.ILGenerator
return_type System.TypeSpec
리턴 System

EmitInt() 공개 메소드

public EmitInt ( int i ) : void
i int
리턴 void

EmitLoadFromPtr() 공개 메소드

public EmitLoadFromPtr ( System.TypeSpec t ) : void
t System.TypeSpec
리턴 void

EmitLong() 공개 메소드

public EmitLong ( long l ) : void
l long
리턴 void

EmitStoreFromPtr() 공개 메소드

public EmitStoreFromPtr ( System.TypeSpec type ) : void
type System.TypeSpec
리턴 void

EndExceptionBlock() 공개 메소드

public EndExceptionBlock ( ) : void
리턴 void

EndScope() 공개 메소드

public EndScope ( ) : void
리턴 void

FreeTemporaryLocal() 공개 메소드

public FreeTemporaryLocal ( LocalBuilder b, System.TypeSpec t ) : void
b System.Reflection.Emit.LocalBuilder
t System.TypeSpec
리턴 void

GetTemporaryLocal() 공개 메소드

Returns a temporary storage for a variable of type t as a local variable in the current body.
public GetTemporaryLocal ( System.TypeSpec t ) : LocalBuilder
t System.TypeSpec
리턴 System.Reflection.Emit.LocalBuilder

Mark() 공개 메소드

This is called immediately before emitting an IL opcode to tell the symbol writer to which source line this opcode belongs.
public Mark ( Mono.CSharp.Location loc ) : void
loc Mono.CSharp.Location
리턴 void

MarkLabel() 공개 메소드

public MarkLabel ( Label label ) : void
label System.Reflection.Emit.Label
리턴 void

TemporaryReturn() 공개 메소드

ReturnValue creates on demand the LocalBuilder for the return value from the function. By default this is not used. This is only required when returns are found inside Try or Catch statements. This method is typically invoked from the Emit phase, so we allow the creation of a return label if it was not requested during the resolution phase. Could be cleaned up, but it would replicate a lot of logic in the Emit phase of the code that uses it.
public TemporaryReturn ( ) : LocalBuilder
리턴 System.Reflection.Emit.LocalBuilder

프로퍼티 상세

CurrentAnonymousMethod 공개적으로 프로퍼티

Whether we are inside an anonymous method.
public AnonymousExpression,Mono.CSharp CurrentAnonymousMethod
리턴 AnonymousExpression

DefaultTarget 공개적으로 프로퍼티

Default target in a switch statement. Only valid if InSwitch is true
public Label,System.Reflection.Emit DefaultTarget
리턴 System.Reflection.Emit.Label

HasReturnLabel 공개적으로 프로퍼티

If we already defined the ReturnLabel
public bool HasReturnLabel
리턴 bool

LoopBegin 공개적으로 프로퍼티

Current loop begin and end labels.
public Label,System.Reflection.Emit LoopBegin
리턴 System.Reflection.Emit.Label

MemberContext 공개적으로 프로퍼티

public IMemberContext MemberContext
리턴 IMemberContext

ReturnLabel 공개적으로 프로퍼티

The location where return has to jump to return the value
public Label,System.Reflection.Emit ReturnLabel
리턴 System.Reflection.Emit.Label

Switch 공개적으로 프로퍼티

If this is non-null, points to the current switch statement
public Switch Switch
리턴 Switch

ig 공개적으로 프로퍼티

public ILGenerator,System.Reflection.Emit ig
리턴 System.Reflection.Emit.ILGenerator

return_value 공개적으로 프로퍼티

The location where we store the return value.
public LocalBuilder,System.Reflection.Emit return_value
리턴 System.Reflection.Emit.LocalBuilder