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