/// <summary> /// Evaluate a string expression to a boolean "True" or "False" (if possible). /// An alternative to Evaluate that behaves nicely with the TextWindow. /// </summary> /// <param name="expression">The expression to evaluate to a boolean, e.g. "21.3 > 16".</param> /// <returns>The evaluated result ("True" or "False").</returns> public static Primitive Evaluate3(Primitive expression) { try { ParameterExpression pe = Expression.Parameter(typeof(string), "IntegerAsReal"); ExpressionParser parser = new ExpressionParser(new ParameterExpression[] { pe }, expression, null); LambdaExpression expr = Expression.Lambda(parser.Parse(typeof(bool)), null); var del = (Func<bool>)expr.Compile(); return del(); } catch (Exception ex) { Utilities.OnError(Utilities.GetCurrentMethod(), ex); return ""; } }
public static LambdaExpression ParseLambda(ParameterExpression[] parameters, Type resultType, string expression, params object[] values) { ExpressionParser parser = new ExpressionParser(parameters, expression, values); return(Expression.Lambda(parser.Parse(resultType), parameters)); }
public static LambdaExpression ParseLambda(IDynamicLinkCustomTypeProvider provider, ParameterExpression[] parameters, Type resultType, string expression, params object[] values) { ExpressionParser parser = new ExpressionParser(provider, parameters, expression, values); return(Expression.Lambda(parser.Parse(resultType), parameters)); }
public static Expression Parse(Type resultType, string expression, params object[] values) { var parser = new ExpressionParser(null, expression, values); return(parser.Parse(resultType)); }
public static LambdaExpression ParseLambda(ParameterExpression[] parameters, Type resultType, string expression, params object[] values) { ExpressionParser parser = new ExpressionParser(parameters, expression, values); return Expression.Lambda(parser.Parse(resultType), parameters); }
public static Expression Parse(Type resultType, string expression, ICollection <Type> additionalAllowedTypes = null, params object[] values) { var parser = new ExpressionParser(null, expression, values, additionalAllowedTypes); return(parser.Parse(resultType)); }
public static LambdaExpression ParseLambda(ParameterExpression[] parameters, Type resultType, string expression, ICollection <Type> additionalAllowedTypes = null, params object[] values) { var parser = new ExpressionParser(parameters, expression, values, additionalAllowedTypes); return(Expression.Lambda(parser.Parse(resultType), parameters)); }
public static LambdaExpression ParseLambda(ParameterExpression[] parameters, Type resultType, string expression, QueryResolver queryResolver) { ExpressionParser parser = new ExpressionParser(parameters, expression, queryResolver); return Lambda(parser.Parse(resultType), parameters); }