/// <summary> /// Converts the specified expression. /// </summary> /// <param name="expression">The expression.</param> /// <param name="annotations">The annotations.</param> /// <param name="metadataMapping">The metadata mapping.</param> /// <returns></returns> public static ExpressionConversionResult Convert(Expression expression, ExpressionResourceAnnotations annotations, DSPMetadata metadataMapping) { Debug.Assert(annotations != null, "annotations != null"); Debug.Assert(metadataMapping != null, "metadataMapping != null"); expression = ResourceAnnotationVisitor.Convert(expression, annotations); ExpressionConversionResult result = ConvertInnerExpression(expression, annotations, metadataMapping); expression = ExpressionSimplifier.Simplify(result.Expression); result.SetResultExpression(expression); return(result); }
/// <summary>Simplifies the specified expression.</summary> /// <param name="expr">The expression to simplify.</param> /// <returns>The simplified expression.</returns> internal static Expression Simplify(Expression expr) { ExpressionSimplifier visitor = new ExpressionSimplifier(); return(visitor.Visit(expr)); }