public static CompiledExpression Compile(Expression expression, NameResolver nameResolver) { var actual = expression; actual = VariadicCallRewriter.Rewrite(actual); actual = TextMatchingTransformer.Rewrite(actual); actual = LikeSyntaxTransformer.Rewrite(actual); actual = PropertiesObjectAccessorTransformer.Rewrite(actual); actual = ConstantArrayEvaluator.Evaluate(actual); actual = WildcardComprehensionTransformer.Expand(actual); return(LinqExpressionCompiler.Compile(actual, nameResolver)); }
public static Func <LogEvent, object> CompileAndExpose(FilterExpression expression) { var actual = expression; actual = PropertiesObjectAccessorTransformer.Rewrite(actual); actual = WildcardComprehensionTransformer.Expand(actual); actual = LikeOperatorTransformer.Rewrite(actual); actual = IsOperatorTransformer.Rewrite(actual); actual = FilterExpressionCostReordering.Reorder(actual); actual = TextMatchingTransformer.Rewrite(actual); var compiled = LinqExpressionCompiler.Compile(actual); return(ctx => { var result = compiled(ctx); return Representation.Expose(result); }); }