C# Class XSpect.Yacq.Expressions.MacroExpression

Represents an macro expression, which is invocable like lambdas, but they are reduced into another expression in pre-evaluate time.
Inheritance: YacqExpression
Datei anzeigen Open project: takeshik/yacq Class Usage Examples

Public Methods

Method Description
Evaluate ( ) : Expression

Evaluates this macro expression.

Evaluate ( IEnumerable arguments ) : Expression

Evaluates this macro expression.

Evaluate ( SymbolTable symbols ) : Expression

Evaluates this macro expression.

Evaluate ( SymbolTable symbols, IEnumerable arguments ) : Expression

Evaluates this macro expression.

Protected Methods

Method Description
ReduceImpl ( SymbolTable symbols, Type expectedType ) : Expression

Reduces this node to a simpler expression with additional symbol tables.

Private Methods

Method Description
MacroExpression ( SymbolTable symbols, Expression body, IList parameters ) : System

Method Details

Evaluate() public method

Evaluates this macro expression.
public Evaluate ( ) : Expression
return System.Linq.Expressions.Expression

Evaluate() public method

Evaluates this macro expression.
public Evaluate ( IEnumerable arguments ) : Expression
arguments IEnumerable The arguments of this macro expression.
return System.Linq.Expressions.Expression

Evaluate() public method

Evaluates this macro expression.
public Evaluate ( SymbolTable symbols ) : Expression
symbols XSpect.Yacq.Symbols.SymbolTable The additional symbol table for reducing.
return System.Linq.Expressions.Expression

Evaluate() public method

Evaluates this macro expression.
public Evaluate ( SymbolTable symbols, IEnumerable arguments ) : Expression
symbols XSpect.Yacq.Symbols.SymbolTable The additional symbol table for reducing.
arguments IEnumerable The arguments of this macro expression.
return System.Linq.Expressions.Expression

ReduceImpl() protected method

Reduces this node to a simpler expression with additional symbol tables.
protected ReduceImpl ( SymbolTable symbols, Type expectedType ) : Expression
symbols XSpect.Yacq.Symbols.SymbolTable The additional symbol table for reducing.
expectedType System.Type The type which is expected as the type of reduced expression.
return System.Linq.Expressions.Expression