public override Root Run(string[] input) { var superComplexAst = AntlrParser.ParseAntlrAst(input); var ast = AstSimplifier.Simplify(superComplexAst); RunStep <ImportLinker>(ref ast); RunStep <VariableAssigner>(ref ast); RunStep <AstValidator>(ref ast); return(ast); }
internal override BsonValue TranslateExpressionToAggregateExpression <TSource, TResult>( Expression <Func <TSource, TResult> > expression, IBsonSerializer <TSource> sourceSerializer, IBsonSerializerRegistry serializerRegistry, ExpressionTranslationOptions translationOptions) { expression = (Expression <Func <TSource, TResult> >)PartialEvaluator.EvaluatePartially(expression); var context = TranslationContext.Create(expression, sourceSerializer); var translation = ExpressionToAggregationExpressionTranslator.TranslateLambdaBody(context, expression, sourceSerializer, asRoot: true); var simplifiedAst = AstSimplifier.Simplify(translation.Ast); return(simplifiedAst.Render()); }
public static AstPipeline Optimize(AstPipeline pipeline) { pipeline = AstGroupPipelineOptimizer.Optimize(pipeline); pipeline = AstSimplifier.SimplifyAndConvert(pipeline); return(pipeline); }