Пример #1
0
        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());
        }
Пример #3
0
 public static AstPipeline Optimize(AstPipeline pipeline)
 {
     pipeline = AstGroupPipelineOptimizer.Optimize(pipeline);
     pipeline = AstSimplifier.SimplifyAndConvert(pipeline);
     return(pipeline);
 }