C# Class JSIL.JavascriptAssemblyEmitter

Inheritance: IAssemblyEmitter
ファイルを表示 Open project: sq/JSIL

Public Properties

Property Type Description
Formatter JavascriptFormatter
Translator JSIL.AssemblyTranslator

Private Properties

Property Type Description
EmitFieldOrConstant void
EmitMarshalInfo void
EmitPInvokeInfo void
EmitParameterAttributes void
PickGenericParameterName string

Public Methods

Method Description
BeginEmitTypeDeclaration ( Mono.Cecil.TypeDefinition typedef ) : void
BeginEmitTypeDefinition ( IAstEmitter astEmitter, Mono.Cecil.TypeDefinition typedef, TypeInfo typeInfo, TypeReference baseClass ) : void
EmitAssemblyEntryPoint ( AssemblyDefinition assembly, Mono.Cecil.MethodDefinition entryMethod, MethodSignature signature ) : void
EmitAssemblyReferences ( string assemblyDeclarationReplacement, string>.Dictionary assemblies ) : void
EmitCachedValues ( IAstEmitter astEmitter, JSIL.Transforms.TypeExpressionCacher typeCacher, SignatureCacher signatureCacher, JSIL.Transforms.BaseMethodCacher baseMethodCacher ) : void
EmitConstant ( ICSharpCode.Decompiler.DecompilerContext context, IAstEmitter astEmitter, FieldDefinition field, JSRawOutputIdentifier dollar, JSExpression value ) : void
EmitCustomAttributes ( ICSharpCode.Decompiler.DecompilerContext context, TypeReference declaringType, ICustomAttributeProvider member, IAstEmitter astEmitter, bool standalone = true ) : void
EmitEvent ( ICSharpCode.Decompiler.DecompilerContext context, IAstEmitter astEmitter, Mono.Cecil.EventDefinition @event, JSRawOutputIdentifier dollar ) : void
EmitField ( ICSharpCode.Decompiler.DecompilerContext context, IAstEmitter astEmitter, FieldDefinition field, JSRawOutputIdentifier dollar, JSExpression defaultValue ) : void
EmitFooter ( bool iife ) : void
EmitFunctionBody ( IAstEmitter astEmitter, Mono.Cecil.MethodDefinition method, JSFunctionExpression function ) : void
EmitHeader ( bool stubbed, bool iife ) : void
EmitInterfaceDefinition ( ICSharpCode.Decompiler.DecompilerContext context, IAstEmitter astEmitter, Mono.Cecil.TypeDefinition iface ) : void
EmitInterfaceList ( TypeInfo typeInfo, IAstEmitter astEmitter, JSRawOutputIdentifier dollar ) : void
EmitMethodDefinition ( ICSharpCode.Decompiler.DecompilerContext context, MethodReference methodRef, Mono.Cecil.MethodDefinition method, IAstEmitter astEmitter, bool stubbed, JSRawOutputIdentifier dollar, MethodInfo methodInfo = null ) : void
EmitPrimitiveDefinition ( ICSharpCode.Decompiler.DecompilerContext context, Mono.Cecil.TypeDefinition typedef, bool stubbed, JSRawOutputIdentifier dollar ) : void
EmitProperty ( ICSharpCode.Decompiler.DecompilerContext context, IAstEmitter astEmitter, Mono.Cecil.PropertyDefinition property, JSRawOutputIdentifier dollar ) : void
EmitProxyComment ( string name ) : void
EmitSemicolon ( ) : void
EmitSpacer ( ) : void
EmitTypeAlias ( Mono.Cecil.TypeDefinition typedef ) : void
EmitTypeDeclarationHeader ( ICSharpCode.Decompiler.DecompilerContext context, IAstEmitter astEmitter, Mono.Cecil.TypeDefinition typedef, TypeInfo typeInfo ) : bool
EndEmitTypeDefinition ( IAstEmitter astEmitter, ICSharpCode.Decompiler.DecompilerContext context, Mono.Cecil.TypeDefinition typedef ) : void
JavascriptAssemblyEmitter ( JSIL.AssemblyTranslator assemblyTranslator, JavascriptFormatter formatter ) : System
MakeAstEmitter ( JSIL.JSILIdentifier jsil, Mono.Cecil.TypeSystem typeSystem, TypeInfoProvider typeInfoProvider, Configuration configuration ) : IAstEmitter
TranslateAttributeConstructorArgument ( Mono.Cecil.TypeSystem typeSystem, TypeReference context, CustomAttributeArgument ca ) : JSExpression
WriteGenericParameterNames ( IEnumerable parameters ) : void

Protected Methods

Method Description
EmitDelegate ( ICSharpCode.Decompiler.DecompilerContext context, Mono.Cecil.TypeDefinition del, TypeInfo typeInfo, IAstEmitter astEmitter ) : void
EmitEnum ( ICSharpCode.Decompiler.DecompilerContext context, Mono.Cecil.TypeDefinition enm, IAstEmitter astEmitter ) : void
EmitOverrides ( ICSharpCode.Decompiler.DecompilerContext context, TypeInfo typeInfo, Mono.Cecil.MethodDefinition method, MethodInfo methodInfo, IAstEmitter astEmitter ) : void

Private Methods

Method Description
EmitFieldOrConstant ( ICSharpCode.Decompiler.DecompilerContext context, IAstEmitter astEmitter, FieldDefinition field, JSRawOutputIdentifier dollar, JSExpression defaultValue, bool isConstant ) : void
EmitMarshalInfo ( MethodReference methodRef, Mono.Cecil.MethodDefinition method, Mono attributes, Mono.Cecil.MarshalInfo mi, IAstEmitter astEmitter ) : void
EmitPInvokeInfo ( MethodReference methodRef, Mono.Cecil.MethodDefinition method, IAstEmitter astEmitter ) : void
EmitParameterAttributes ( ICSharpCode.Decompiler.DecompilerContext context, TypeReference declaringType, Mono.Cecil.MethodDefinition method, IAstEmitter astEmitter ) : void
PickGenericParameterName ( Mono.Cecil.GenericParameter gp ) : string

Method Details

BeginEmitTypeDeclaration() public method

public BeginEmitTypeDeclaration ( Mono.Cecil.TypeDefinition typedef ) : void
typedef Mono.Cecil.TypeDefinition
return void

BeginEmitTypeDefinition() public method

public BeginEmitTypeDefinition ( IAstEmitter astEmitter, Mono.Cecil.TypeDefinition typedef, TypeInfo typeInfo, TypeReference baseClass ) : void
astEmitter IAstEmitter
typedef Mono.Cecil.TypeDefinition
typeInfo TypeInfo
baseClass Mono.Cecil.TypeReference
return void

EmitAssemblyEntryPoint() public method

public EmitAssemblyEntryPoint ( AssemblyDefinition assembly, Mono.Cecil.MethodDefinition entryMethod, MethodSignature signature ) : void
assembly Mono.Cecil.AssemblyDefinition
entryMethod Mono.Cecil.MethodDefinition
signature MethodSignature
return void

EmitAssemblyReferences() public method

public EmitAssemblyReferences ( string assemblyDeclarationReplacement, string>.Dictionary assemblies ) : void
assemblyDeclarationReplacement string
assemblies string>.Dictionary
return void

EmitCachedValues() public method

public EmitCachedValues ( IAstEmitter astEmitter, JSIL.Transforms.TypeExpressionCacher typeCacher, SignatureCacher signatureCacher, JSIL.Transforms.BaseMethodCacher baseMethodCacher ) : void
astEmitter IAstEmitter
typeCacher JSIL.Transforms.TypeExpressionCacher
signatureCacher SignatureCacher
baseMethodCacher JSIL.Transforms.BaseMethodCacher
return void

EmitConstant() public method

public EmitConstant ( ICSharpCode.Decompiler.DecompilerContext context, IAstEmitter astEmitter, FieldDefinition field, JSRawOutputIdentifier dollar, JSExpression value ) : void
context ICSharpCode.Decompiler.DecompilerContext
astEmitter IAstEmitter
field Mono.Cecil.FieldDefinition
dollar JSIL.Ast.JSRawOutputIdentifier
value JSExpression
return void

EmitCustomAttributes() public method

public EmitCustomAttributes ( ICSharpCode.Decompiler.DecompilerContext context, TypeReference declaringType, ICustomAttributeProvider member, IAstEmitter astEmitter, bool standalone = true ) : void
context ICSharpCode.Decompiler.DecompilerContext
declaringType Mono.Cecil.TypeReference
member ICustomAttributeProvider
astEmitter IAstEmitter
standalone bool
return void

EmitDelegate() protected method

protected EmitDelegate ( ICSharpCode.Decompiler.DecompilerContext context, Mono.Cecil.TypeDefinition del, TypeInfo typeInfo, IAstEmitter astEmitter ) : void
context ICSharpCode.Decompiler.DecompilerContext
del Mono.Cecil.TypeDefinition
typeInfo TypeInfo
astEmitter IAstEmitter
return void

EmitEnum() protected method

protected EmitEnum ( ICSharpCode.Decompiler.DecompilerContext context, Mono.Cecil.TypeDefinition enm, IAstEmitter astEmitter ) : void
context ICSharpCode.Decompiler.DecompilerContext
enm Mono.Cecil.TypeDefinition
astEmitter IAstEmitter
return void

EmitEvent() public method

public EmitEvent ( ICSharpCode.Decompiler.DecompilerContext context, IAstEmitter astEmitter, Mono.Cecil.EventDefinition @event, JSRawOutputIdentifier dollar ) : void
context ICSharpCode.Decompiler.DecompilerContext
astEmitter IAstEmitter
@event Mono.Cecil.EventDefinition
dollar JSIL.Ast.JSRawOutputIdentifier
return void

EmitField() public method

public EmitField ( ICSharpCode.Decompiler.DecompilerContext context, IAstEmitter astEmitter, FieldDefinition field, JSRawOutputIdentifier dollar, JSExpression defaultValue ) : void
context ICSharpCode.Decompiler.DecompilerContext
astEmitter IAstEmitter
field Mono.Cecil.FieldDefinition
dollar JSIL.Ast.JSRawOutputIdentifier
defaultValue JSExpression
return void

EmitFooter() public method

public EmitFooter ( bool iife ) : void
iife bool
return void

EmitFunctionBody() public method

public EmitFunctionBody ( IAstEmitter astEmitter, Mono.Cecil.MethodDefinition method, JSFunctionExpression function ) : void
astEmitter IAstEmitter
method Mono.Cecil.MethodDefinition
function JSFunctionExpression
return void

EmitHeader() public method

public EmitHeader ( bool stubbed, bool iife ) : void
stubbed bool
iife bool
return void

EmitInterfaceDefinition() public method

public EmitInterfaceDefinition ( ICSharpCode.Decompiler.DecompilerContext context, IAstEmitter astEmitter, Mono.Cecil.TypeDefinition iface ) : void
context ICSharpCode.Decompiler.DecompilerContext
astEmitter IAstEmitter
iface Mono.Cecil.TypeDefinition
return void

EmitInterfaceList() public method

public EmitInterfaceList ( TypeInfo typeInfo, IAstEmitter astEmitter, JSRawOutputIdentifier dollar ) : void
typeInfo TypeInfo
astEmitter IAstEmitter
dollar JSIL.Ast.JSRawOutputIdentifier
return void

EmitMethodDefinition() public method

public EmitMethodDefinition ( ICSharpCode.Decompiler.DecompilerContext context, MethodReference methodRef, Mono.Cecil.MethodDefinition method, IAstEmitter astEmitter, bool stubbed, JSRawOutputIdentifier dollar, MethodInfo methodInfo = null ) : void
context ICSharpCode.Decompiler.DecompilerContext
methodRef Mono.Cecil.MethodReference
method Mono.Cecil.MethodDefinition
astEmitter IAstEmitter
stubbed bool
dollar JSIL.Ast.JSRawOutputIdentifier
methodInfo MethodInfo
return void

EmitOverrides() protected method

protected EmitOverrides ( ICSharpCode.Decompiler.DecompilerContext context, TypeInfo typeInfo, Mono.Cecil.MethodDefinition method, MethodInfo methodInfo, IAstEmitter astEmitter ) : void
context ICSharpCode.Decompiler.DecompilerContext
typeInfo TypeInfo
method Mono.Cecil.MethodDefinition
methodInfo MethodInfo
astEmitter IAstEmitter
return void

EmitPrimitiveDefinition() public method

public EmitPrimitiveDefinition ( ICSharpCode.Decompiler.DecompilerContext context, Mono.Cecil.TypeDefinition typedef, bool stubbed, JSRawOutputIdentifier dollar ) : void
context ICSharpCode.Decompiler.DecompilerContext
typedef Mono.Cecil.TypeDefinition
stubbed bool
dollar JSIL.Ast.JSRawOutputIdentifier
return void

EmitProperty() public method

public EmitProperty ( ICSharpCode.Decompiler.DecompilerContext context, IAstEmitter astEmitter, Mono.Cecil.PropertyDefinition property, JSRawOutputIdentifier dollar ) : void
context ICSharpCode.Decompiler.DecompilerContext
astEmitter IAstEmitter
property Mono.Cecil.PropertyDefinition
dollar JSIL.Ast.JSRawOutputIdentifier
return void

EmitProxyComment() public method

public EmitProxyComment ( string name ) : void
name string
return void

EmitSemicolon() public method

public EmitSemicolon ( ) : void
return void

EmitSpacer() public method

public EmitSpacer ( ) : void
return void

EmitTypeAlias() public method

public EmitTypeAlias ( Mono.Cecil.TypeDefinition typedef ) : void
typedef Mono.Cecil.TypeDefinition
return void

EmitTypeDeclarationHeader() public method

public EmitTypeDeclarationHeader ( ICSharpCode.Decompiler.DecompilerContext context, IAstEmitter astEmitter, Mono.Cecil.TypeDefinition typedef, TypeInfo typeInfo ) : bool
context ICSharpCode.Decompiler.DecompilerContext
astEmitter IAstEmitter
typedef Mono.Cecil.TypeDefinition
typeInfo TypeInfo
return bool

EndEmitTypeDefinition() public method

public EndEmitTypeDefinition ( IAstEmitter astEmitter, ICSharpCode.Decompiler.DecompilerContext context, Mono.Cecil.TypeDefinition typedef ) : void
astEmitter IAstEmitter
context ICSharpCode.Decompiler.DecompilerContext
typedef Mono.Cecil.TypeDefinition
return void

JavascriptAssemblyEmitter() public method

public JavascriptAssemblyEmitter ( JSIL.AssemblyTranslator assemblyTranslator, JavascriptFormatter formatter ) : System
assemblyTranslator JSIL.AssemblyTranslator
formatter JavascriptFormatter
return System

MakeAstEmitter() public method

public MakeAstEmitter ( JSIL.JSILIdentifier jsil, Mono.Cecil.TypeSystem typeSystem, TypeInfoProvider typeInfoProvider, Configuration configuration ) : IAstEmitter
jsil JSIL.JSILIdentifier
typeSystem Mono.Cecil.TypeSystem
typeInfoProvider TypeInfoProvider
configuration JSIL.Translator.Configuration
return IAstEmitter

TranslateAttributeConstructorArgument() public method

public TranslateAttributeConstructorArgument ( Mono.Cecil.TypeSystem typeSystem, TypeReference context, CustomAttributeArgument ca ) : JSExpression
typeSystem Mono.Cecil.TypeSystem
context Mono.Cecil.TypeReference
ca Mono.Cecil.CustomAttributeArgument
return JSExpression

WriteGenericParameterNames() public method

public WriteGenericParameterNames ( IEnumerable parameters ) : void
parameters IEnumerable
return void

Property Details

Formatter public_oe property

public JavascriptFormatter Formatter
return JavascriptFormatter

Translator public_oe property

public AssemblyTranslator,JSIL Translator
return JSIL.AssemblyTranslator