C# 클래스 IronPython.Compiler.Ast.FunctionDefinition

상속: ScopeStatement
파일 보기 프로젝트 열기: jschementi/iron 1 사용 예제들

보호된 프로퍼티들

프로퍼티 타입 설명
_body Statement

Private Properties

프로퍼티 타입 설명
AddDefaultReturn System.Linq.Expressions.Expression
AddReturnTarget System.Linq.Expressions.Expression
Bind void
BindReference PythonVariable
CompileAssignment void
CreateFunctionInstructions void
CreateFunctionLambda Microsoft.Scripting.Ast.LightLambdaExpression
CreateFunctionVariables void
CreateParameters System.Linq.Expressions.ParameterExpression[]
EmitDebugFunction bool
EnsureFunctionLambda Microsoft.Scripting.Ast.LightLambdaExpression
ExposesLocalVariable bool
FinishBind void
FunctionDefinition System
FunctionDefinition System
GetDelegateType System.Type
GetLambda Microsoft.Scripting.Ast.LightLambdaExpression
GetParentClosureTuple System.Linq.Expressions.Expression
GetVarNames IList
InitializeParameters void
MakeFunctionExpression System.Linq.Expressions.Expression
RewriteBody void
TryBindOuter bool
Verify void

공개 메소드들

메소드 설명
FunctionDefinition ( string name, Parameter parameters ) : System
FunctionDefinition ( string name, Parameter parameters, Statement body ) : System
Reduce ( ) : Expression
Walk ( IronPython.Compiler.Ast.PythonWalker walker ) : void

보호된 메소드들

메소드 설명
IInstructionProvider ( LightCompiler compiler ) : void

비공개 메소드들

메소드 설명
AddDefaultReturn ( System.Linq.Expressions body, Type returnType ) : Expression
AddReturnTarget ( System.Linq.Expressions expression ) : Expression
Bind ( PythonNameBinder binder ) : void
BindReference ( PythonNameBinder binder, PythonReference reference ) : PythonVariable
CompileAssignment ( LightCompiler compiler, System.Linq.Expressions variable, Action compileValue ) : void
CreateFunctionInstructions ( LightCompiler compiler ) : void
CreateFunctionLambda ( ) : Microsoft.Scripting.Ast.LightLambdaExpression

Creates the LambdaExpression which implements the body of the function. The functions signature is either "object Function(PythonFunction, ...)" where there is one object parameter for each user defined parameter or object Function(PythonFunction, object[]) for functions which take more than PythonCallTargets.MaxArgs arguments.

CreateFunctionVariables ( ReadOnlyCollectionBuilder locals, List init ) : void
CreateParameters ( bool needsWrapperMethod, ReadOnlyCollectionBuilder locals ) : System.Linq.Expressions.ParameterExpression[]
EmitDebugFunction ( ) : bool
EnsureFunctionLambda ( ) : Microsoft.Scripting.Ast.LightLambdaExpression

Creates the LambdaExpression which is the actual function body.

ExposesLocalVariable ( PythonVariable variable ) : bool
FinishBind ( PythonNameBinder binder ) : void
FunctionDefinition ( string name, Parameter parameters, SourceUnit sourceUnit ) : System
FunctionDefinition ( string name, Parameter parameters, Statement body, SourceUnit sourceUnit ) : System
GetDelegateType ( Parameter parameters, bool wrapper, Delegate &originalTarget ) : Type

Determines delegate type for the Python function

GetLambda ( ) : Microsoft.Scripting.Ast.LightLambdaExpression
GetParentClosureTuple ( ) : Expression

Pulls the closure tuple from our function/generator which is flowed into each function call.

GetVarNames ( ) : IList
InitializeParameters ( List init, bool needsWrapperMethod, System.Linq.Expressions parameters ) : void
MakeFunctionExpression ( ) : Expression

Returns an expression which creates the function object.

RewriteBody ( IronPython.Compiler.Ast.PythonAst visitor ) : void
TryBindOuter ( ScopeStatement from, PythonReference reference, PythonVariable &variable ) : bool
Verify ( PythonNameBinder binder ) : void

메소드 상세

FunctionDefinition() 공개 메소드

public FunctionDefinition ( string name, Parameter parameters ) : System
name string
parameters Parameter
리턴 System

FunctionDefinition() 공개 메소드

public FunctionDefinition ( string name, Parameter parameters, Statement body ) : System
name string
parameters Parameter
body Statement
리턴 System

IInstructionProvider() 보호된 메소드

protected IInstructionProvider ( LightCompiler compiler ) : void
compiler LightCompiler
리턴 void

Reduce() 공개 메소드

public Reduce ( ) : Expression
리턴 System.Linq.Expressions.Expression

Walk() 공개 메소드

public Walk ( IronPython.Compiler.Ast.PythonWalker walker ) : void
walker IronPython.Compiler.Ast.PythonWalker
리턴 void

프로퍼티 상세

_body 보호되어 있는 프로퍼티

protected Statement,IronPython.Compiler.Ast _body
리턴 Statement