public override LightLambdaExpression ReduceAst(TotemAst instance, string name) { return Utils.LightLambda<LookupCompilationDelegate>( typeof(object), Utils.Convert(instance.ReduceWorker(), typeof(object)), name, TotemAst._arrayFuncParams ); }
public override LightLambdaExpression ReduceAst(TotemAst instance, string name) { return Utils.LightLambda<Func<FunctionCode, object>>( typeof(object), Expression.Block( new[] { TotemAst._globalArray, TotemAst._globalContext }, Expression.Assign(TotemAst._globalArray, instance.GlobalArrayInstance), Expression.Assign(TotemAst._globalContext, Expression.Constant(instance.ModuleContext.GlobalContext)), Utils.Convert(instance.ReduceWorker(), typeof(object)) ), name, new[] { TotemAst._functionCode } ); }