C# 클래스 Pchp.CodeAnalysis.Emit.PEModuleBuilder

상속: CommonPEModuleBuilder, Microsoft.Cci.IModule, ITokenDeferral
파일 보기 프로젝트 열기: iolevel/peachpie 1 사용 예제들

보호된 프로퍼티들

프로퍼티 타입 설명
AssemblyOrModuleSymbolToModuleRefMap Cci.IModuleReference>.ConcurrentDictionary

Private Properties

프로퍼티 타입 설명
AddTopLevelType void
Cci Microsoft.Cci.IAssemblyReference
CompilationFinished void
CreateConstant Microsoft.CodeAnalysis.CodeGen.MetadataConstant
CreateEntryPoint void
CreateEnumerateConstantsSymbol void
CreateEnumerateReferencedFunctions void
CreateEnumerateScriptsSymbol void
CreateMainMethodWrapper void
EncTranslateType Microsoft.Cci.ITypeReference
GetAnonymousTypes ImmutableArray
GetCorLibraryReferencesToEmit IEnumerable
GetMethodBody Microsoft.Cci.IMethodBody
GetOrAddDebugDocument Microsoft.Cci.DebugSourceDocument
GetPrivateImplClass Microsoft.CodeAnalysis.CodeGen.PrivateImplementationDetails
GetSpecialType Microsoft.Cci.INamedTypeReference
GetSynthesizedMembers ImmutableArray>.ImmutableDictionary
GetTopLevelTypesCore IEnumerable
IsSourceDefinition bool
NormalizeDebugDocumentPath string
SetDebugEntryPoint void
SetPEEntryPoint void
Translate Microsoft.Cci.IArrayTypeReference
Translate Microsoft.Cci.IAssemblyReference
Translate Microsoft.Cci.IGenericParameterReference
Translate Microsoft.Cci.IMethodReference
Translate Microsoft.Cci.IMethodReference
Translate Microsoft.Cci.ITypeReference
Translate Microsoft.Cci.ITypeReference
Translate ImmutableArray
TranslateOverriddenMethodReference Microsoft.Cci.IMethodReference
ValidateReferencedAssembly void
VisitTopLevelType void

공개 메소드들

메소드 설명
AsDefinition ( Microsoft.CodeAnalysis.Emit.EmitContext context ) : Microsoft.Cci.IDefinition
Dispatch ( Microsoft.Cci visitor ) : void
GetAssemblyReferenceAliases ( Microsoft.CodeAnalysis.Emit.EmitContext context ) : ImmutableArray
GetAssemblyReferences ( Microsoft.CodeAnalysis.Emit.EmitContext context ) : IEnumerable
GetAttributes ( Microsoft.CodeAnalysis.Emit.EmitContext context ) : IEnumerable
GetContainingAssembly ( Microsoft.CodeAnalysis.Emit.EmitContext context ) : Microsoft.Cci.IAssembly
GetCorLibrary ( Microsoft.CodeAnalysis.Emit.EmitContext context ) : Microsoft.Cci.IAssemblyReference
GetExportedTypes ( Microsoft.CodeAnalysis.Emit.EmitContext context ) : IEnumerable
GetFakeStringTokenForIL ( string value ) : uint
GetFakeSymbolTokenForIL ( Microsoft.Cci symbol, Microsoft.CodeAnalysis.SyntaxNode syntaxNode, DiagnosticBag diagnostics ) : uint
GetFieldForData ( ImmutableArray data, Microsoft.CodeAnalysis.SyntaxNode syntaxNode, DiagnosticBag diagnostics ) : Microsoft.Cci.IFieldReference
GetImports ( ) : ImmutableArray
GetInitArrayHelper ( ) : Microsoft.Cci.IMethodReference
GetPlatformType ( Microsoft.Cci t, Microsoft.CodeAnalysis.Emit.EmitContext context ) : Microsoft.Cci.ITypeReference
GetReferenceFromToken ( uint token ) : Microsoft.Cci.IReference
GetResources ( Microsoft.CodeAnalysis.Emit.EmitContext context ) : IEnumerable
GetStaticCtorBuilder ( NamedTypeSymbol container ) : ILBuilder

Gets IL builder for lazy static constructor.

GetStringFromToken ( uint token ) : string
GetStrings ( ) : IEnumerable
GetSymbolToLocationMap ( ) : Cci.DefinitionWithLocation>.MultiDictionary
GetSynthesizedFields ( TypeSymbol container ) : IEnumerable

Gets enumeration of synthesized fields for container.

GetSynthesizedMethods ( TypeSymbol container ) : IEnumerable

Gets enumeration of synthesized methods for container.

GetSynthesizedTypes ( TypeSymbol container ) : IEnumerable

Gets enumeration of synthesized nested types for container.

GetTopLevelTypes ( Microsoft.CodeAnalysis.Emit.EmitContext context ) : IEnumerable
IsGenericType ( INamedTypeSymbol toCheck ) : bool
IsPlatformType ( Microsoft.Cci typeRef, Microsoft.Cci platformType ) : bool
MemberVisibility ( Symbol symbol ) : Microsoft.Cci.TypeMemberVisibility
RealizeStaticCtors ( ) : void

Any lazily emitted static constructor will be realized and its body saved to method map.

ReferencesInIL ( int &count ) : IEnumerable
SetMethodBody ( IMethodSymbol methodSymbol, Microsoft.Cci body ) : void

보호된 메소드들

메소드 설명
AddEmbeddedResourcesFromAddedModules ( ArrayBuilder builder, DiagnosticBag diagnostics ) : void
GetAssemblyReferencesFromAddedModules ( DiagnosticBag diagnostics ) : IEnumerable
PEModuleBuilder ( PhpCompilation compilation, SourceModuleSymbol sourceModule, Microsoft.Cci serializationProperties, IEnumerable manifestResources, OutputKind outputKind, EmitOptions emitOptions ) : System

비공개 메소드들

메소드 설명
AddTopLevelType ( HashSet names, Microsoft.Cci type ) : void
Cci ( Microsoft.CodeAnalysis.Emit.EmitContext context ) : Microsoft.Cci.IAssemblyReference
CompilationFinished ( ) : void
CreateConstant ( ITypeSymbol type, object value, Microsoft.CodeAnalysis.SyntaxNode syntaxNodeOpt, DiagnosticBag diagnostics ) : Microsoft.CodeAnalysis.CodeGen.MetadataConstant
CreateEntryPoint ( MethodSymbol method, DiagnosticBag diagnostic ) : void

Create real CIL entry point, where it calls given method.

CreateEnumerateConstantsSymbol ( DiagnosticBag diagnostic ) : void

Emit body of enumeration of app-wide global constants.

CreateEnumerateReferencedFunctions ( DiagnosticBag diagnostic ) : void

Emit body of enumeration of referenced functions.

CreateEnumerateScriptsSymbol ( DiagnosticBag diagnostic ) : void

Emit body of enumeration of scripts Main function.

CreateMainMethodWrapper ( MethodSymbol wrapper, MethodSymbol main, DiagnosticBag diagnostic ) : void

Emits body of scripts main wrapper converting main result to PhpValue.

EncTranslateType ( ITypeSymbol type, DiagnosticBag diagnostics ) : Microsoft.Cci.ITypeReference
GetAnonymousTypes ( ) : ImmutableArray
GetCorLibraryReferencesToEmit ( Microsoft.CodeAnalysis.Emit.EmitContext context ) : IEnumerable
GetMethodBody ( IMethodSymbol methodSymbol ) : Microsoft.Cci.IMethodBody
GetOrAddDebugDocument ( string path, string basePath, Cci.DebugSourceDocument>.Func factory ) : Microsoft.Cci.DebugSourceDocument
GetPrivateImplClass ( Microsoft.CodeAnalysis.SyntaxNode syntaxNodeOpt, DiagnosticBag diagnostics ) : Microsoft.CodeAnalysis.CodeGen.PrivateImplementationDetails
GetSpecialType ( SpecialType specialType, Microsoft.CodeAnalysis.SyntaxNode syntaxNodeOpt, DiagnosticBag diagnostics ) : Microsoft.Cci.INamedTypeReference
GetSynthesizedMembers ( ) : ImmutableArray>.ImmutableDictionary
GetTopLevelTypesCore ( Microsoft.CodeAnalysis.Emit.EmitContext context ) : IEnumerable
IsSourceDefinition ( IMethodSymbol method ) : bool
NormalizeDebugDocumentPath ( string path, string basePath ) : string
SetDebugEntryPoint ( IMethodSymbol method, DiagnosticBag diagnostics ) : void
SetPEEntryPoint ( IMethodSymbol method, DiagnosticBag diagnostics ) : void
Translate ( ArrayTypeSymbol symbol ) : Microsoft.Cci.IArrayTypeReference
Translate ( IAssemblySymbol iassembly, DiagnosticBag diagnostics ) : Microsoft.Cci.IAssemblyReference
Translate ( TypeParameterSymbol param ) : Microsoft.Cci.IGenericParameterReference
Translate ( IMethodSymbol symbol, DiagnosticBag diagnostics, bool needDeclaration ) : Microsoft.Cci.IMethodReference
Translate ( MethodSymbol methodSymbol, Microsoft.CodeAnalysis.SyntaxNode syntaxNodeOpt, DiagnosticBag diagnostics, bool needDeclaration ) : Microsoft.Cci.IMethodReference
Translate ( ITypeSymbol typeSymbol, Microsoft.CodeAnalysis.SyntaxNode syntaxNodeOpt, DiagnosticBag diagnostics ) : Microsoft.Cci.ITypeReference
Translate ( NamedTypeSymbol namedTypeSymbol, Microsoft.CodeAnalysis.SyntaxNode syntaxOpt, DiagnosticBag diagnostics, bool fromImplements = false, bool needDeclaration = false ) : Microsoft.Cci.ITypeReference
Translate ( ImmutableArray @params ) : ImmutableArray
TranslateOverriddenMethodReference ( MethodSymbol methodSymbol, Microsoft.CodeAnalysis.SyntaxNode syntaxNodeOpt, DiagnosticBag diagnostics ) : Microsoft.Cci.IMethodReference
ValidateReferencedAssembly ( AssemblySymbol assembly, AssemblyReference asmRef, DiagnosticBag diagnostics ) : void
VisitTopLevelType ( Microsoft.Cci noPiaIndexer, Microsoft.Cci type ) : void

메소드 상세

AddEmbeddedResourcesFromAddedModules() 보호된 메소드

protected AddEmbeddedResourcesFromAddedModules ( ArrayBuilder builder, DiagnosticBag diagnostics ) : void
builder ArrayBuilder
diagnostics DiagnosticBag
리턴 void

AsDefinition() 공개 메소드

public AsDefinition ( Microsoft.CodeAnalysis.Emit.EmitContext context ) : Microsoft.Cci.IDefinition
context Microsoft.CodeAnalysis.Emit.EmitContext
리턴 Microsoft.Cci.IDefinition

Dispatch() 공개 메소드

public Dispatch ( Microsoft.Cci visitor ) : void
visitor Microsoft.Cci
리턴 void

GetAssemblyReferenceAliases() 공개 메소드

public GetAssemblyReferenceAliases ( Microsoft.CodeAnalysis.Emit.EmitContext context ) : ImmutableArray
context Microsoft.CodeAnalysis.Emit.EmitContext
리턴 ImmutableArray

GetAssemblyReferences() 공개 메소드

public GetAssemblyReferences ( Microsoft.CodeAnalysis.Emit.EmitContext context ) : IEnumerable
context Microsoft.CodeAnalysis.Emit.EmitContext
리턴 IEnumerable

GetAssemblyReferencesFromAddedModules() 보호된 메소드

protected GetAssemblyReferencesFromAddedModules ( DiagnosticBag diagnostics ) : IEnumerable
diagnostics DiagnosticBag
리턴 IEnumerable

GetAttributes() 공개 메소드

public GetAttributes ( Microsoft.CodeAnalysis.Emit.EmitContext context ) : IEnumerable
context Microsoft.CodeAnalysis.Emit.EmitContext
리턴 IEnumerable

GetContainingAssembly() 공개 메소드

public GetContainingAssembly ( Microsoft.CodeAnalysis.Emit.EmitContext context ) : Microsoft.Cci.IAssembly
context Microsoft.CodeAnalysis.Emit.EmitContext
리턴 Microsoft.Cci.IAssembly

GetCorLibrary() 공개 메소드

public GetCorLibrary ( Microsoft.CodeAnalysis.Emit.EmitContext context ) : Microsoft.Cci.IAssemblyReference
context Microsoft.CodeAnalysis.Emit.EmitContext
리턴 Microsoft.Cci.IAssemblyReference

GetExportedTypes() 공개 메소드

public GetExportedTypes ( Microsoft.CodeAnalysis.Emit.EmitContext context ) : IEnumerable
context Microsoft.CodeAnalysis.Emit.EmitContext
리턴 IEnumerable

GetFakeStringTokenForIL() 공개 메소드

public GetFakeStringTokenForIL ( string value ) : uint
value string
리턴 uint

GetFakeSymbolTokenForIL() 공개 메소드

public GetFakeSymbolTokenForIL ( Microsoft.Cci symbol, Microsoft.CodeAnalysis.SyntaxNode syntaxNode, DiagnosticBag diagnostics ) : uint
symbol Microsoft.Cci
syntaxNode Microsoft.CodeAnalysis.SyntaxNode
diagnostics DiagnosticBag
리턴 uint

GetFieldForData() 공개 메소드

public GetFieldForData ( ImmutableArray data, Microsoft.CodeAnalysis.SyntaxNode syntaxNode, DiagnosticBag diagnostics ) : Microsoft.Cci.IFieldReference
data ImmutableArray
syntaxNode Microsoft.CodeAnalysis.SyntaxNode
diagnostics DiagnosticBag
리턴 Microsoft.Cci.IFieldReference

GetImports() 공개 메소드

public GetImports ( ) : ImmutableArray
리턴 ImmutableArray

GetInitArrayHelper() 공개 메소드

public GetInitArrayHelper ( ) : Microsoft.Cci.IMethodReference
리턴 Microsoft.Cci.IMethodReference

GetPlatformType() 공개 메소드

public GetPlatformType ( Microsoft.Cci t, Microsoft.CodeAnalysis.Emit.EmitContext context ) : Microsoft.Cci.ITypeReference
t Microsoft.Cci
context Microsoft.CodeAnalysis.Emit.EmitContext
리턴 Microsoft.Cci.ITypeReference

GetReferenceFromToken() 공개 메소드

public GetReferenceFromToken ( uint token ) : Microsoft.Cci.IReference
token uint
리턴 Microsoft.Cci.IReference

GetResources() 공개 메소드

public GetResources ( Microsoft.CodeAnalysis.Emit.EmitContext context ) : IEnumerable
context Microsoft.CodeAnalysis.Emit.EmitContext
리턴 IEnumerable

GetStaticCtorBuilder() 공개 메소드

Gets IL builder for lazy static constructor.
public GetStaticCtorBuilder ( NamedTypeSymbol container ) : ILBuilder
container Pchp.CodeAnalysis.Symbols.NamedTypeSymbol
리턴 Microsoft.CodeAnalysis.CodeGen.ILBuilder

GetStringFromToken() 공개 메소드

public GetStringFromToken ( uint token ) : string
token uint
리턴 string

GetStrings() 공개 메소드

public GetStrings ( ) : IEnumerable
리턴 IEnumerable

GetSymbolToLocationMap() 공개 메소드

public GetSymbolToLocationMap ( ) : Cci.DefinitionWithLocation>.MultiDictionary
리턴 Cci.DefinitionWithLocation>.MultiDictionary

GetSynthesizedFields() 공개 메소드

Gets enumeration of synthesized fields for container.
public GetSynthesizedFields ( TypeSymbol container ) : IEnumerable
container TypeSymbol Containing type symbol.
리턴 IEnumerable

GetSynthesizedMethods() 공개 메소드

Gets enumeration of synthesized methods for container.
public GetSynthesizedMethods ( TypeSymbol container ) : IEnumerable
container TypeSymbol Containing type symbol.
리턴 IEnumerable

GetSynthesizedTypes() 공개 메소드

Gets enumeration of synthesized nested types for container.
public GetSynthesizedTypes ( TypeSymbol container ) : IEnumerable
container TypeSymbol Containing type symbol.
리턴 IEnumerable

GetTopLevelTypes() 공개 메소드

public GetTopLevelTypes ( Microsoft.CodeAnalysis.Emit.EmitContext context ) : IEnumerable
context Microsoft.CodeAnalysis.Emit.EmitContext
리턴 IEnumerable

IsGenericType() 공개 정적인 메소드

public static IsGenericType ( INamedTypeSymbol toCheck ) : bool
toCheck INamedTypeSymbol
리턴 bool

IsPlatformType() 공개 메소드

public IsPlatformType ( Microsoft.Cci typeRef, Microsoft.Cci platformType ) : bool
typeRef Microsoft.Cci
platformType Microsoft.Cci
리턴 bool

MemberVisibility() 공개 정적인 메소드

public static MemberVisibility ( Symbol symbol ) : Microsoft.Cci.TypeMemberVisibility
symbol Symbol
리턴 Microsoft.Cci.TypeMemberVisibility

PEModuleBuilder() 보호된 메소드

protected PEModuleBuilder ( PhpCompilation compilation, SourceModuleSymbol sourceModule, Microsoft.Cci serializationProperties, IEnumerable manifestResources, OutputKind outputKind, EmitOptions emitOptions ) : System
compilation PhpCompilation
sourceModule Pchp.CodeAnalysis.Symbols.SourceModuleSymbol
serializationProperties Microsoft.Cci
manifestResources IEnumerable
outputKind OutputKind
emitOptions EmitOptions
리턴 System

RealizeStaticCtors() 공개 메소드

Any lazily emitted static constructor will be realized and its body saved to method map.
public RealizeStaticCtors ( ) : void
리턴 void

ReferencesInIL() 공개 메소드

public ReferencesInIL ( int &count ) : IEnumerable
count int
리턴 IEnumerable

SetMethodBody() 공개 메소드

public SetMethodBody ( IMethodSymbol methodSymbol, Microsoft.Cci body ) : void
methodSymbol IMethodSymbol
body Microsoft.Cci
리턴 void

프로퍼티 상세

AssemblyOrModuleSymbolToModuleRefMap 보호되어 있는 프로퍼티

protected ConcurrentDictionary AssemblyOrModuleSymbolToModuleRefMap
리턴 Cci.IModuleReference>.ConcurrentDictionary