C# Class Microsoft.Scripting.Actions.ConditionalBuilder

Builds up a series of conditionals when the False clause isn't yet known. We can keep appending conditions and if true's. Each subsequent true branch becomes the false branch of the previous condition and body. Finally a non-conditional terminating branch must be added.
显示文件 Open project: jschementi/iron

Public Methods

Method Description
AddCondition ( Expression condition, Expression body ) : void

Adds a new conditional and body. The first call this becomes the top-level conditional, subsequent calls will have it added as false statement of the previous conditional.

AddVariable ( System.Linq.Expressions.ParameterExpression var ) : void

Adds a variable which will be scoped at the level of the final expression.

FinishCondition ( DynamicMetaObject body ) : void
FinishCondition ( Expression body ) : void

Adds the non-conditional terminating node.

FinishError ( DynamicMetaObject body ) : void
FinishError ( Expression body ) : void

Adds the non-conditional terminating node.

GetMetaObject ( ) : DynamicMetaObject

Gets the resulting meta object for the full body. FinishCondition must have been called.

Method Details

AddCondition() public method

Adds a new conditional and body. The first call this becomes the top-level conditional, subsequent calls will have it added as false statement of the previous conditional.
public AddCondition ( Expression condition, Expression body ) : void
condition System.Linq.Expressions.Expression
body System.Linq.Expressions.Expression
return void

AddVariable() public method

Adds a variable which will be scoped at the level of the final expression.
public AddVariable ( System.Linq.Expressions.ParameterExpression var ) : void
var System.Linq.Expressions.ParameterExpression
return void

FinishCondition() public method

public FinishCondition ( DynamicMetaObject body ) : void
body DynamicMetaObject
return void

FinishCondition() public method

Adds the non-conditional terminating node.
public FinishCondition ( Expression body ) : void
body System.Linq.Expressions.Expression
return void

FinishError() public method

public FinishError ( DynamicMetaObject body ) : void
body DynamicMetaObject
return void

FinishError() public method

Adds the non-conditional terminating node.
public FinishError ( Expression body ) : void
body System.Linq.Expressions.Expression
return void

GetMetaObject() public method

Gets the resulting meta object for the full body. FinishCondition must have been called.
public GetMetaObject ( ) : DynamicMetaObject
return DynamicMetaObject