public CompileResult CompileExpression(string expressionText) { var result = new CompileResult(); if (string.IsNullOrEmpty(expressionText)) { return(result); } Node ast = Parse(expressionText, result); if (result.Errors.Any()) { return(result); } var builder = new ExpressionTreeBuilder(binder); var expressionTree = builder.CreateExpression(ast, result); if (expressionTree == null || result.Errors.Any()) { return(result); } Func <double> function = evaluator.InterpretExpression(expressionTree); result.Expression = function; return(result); }
public CompileResult CompileFunction(string functionText) { var result = new CompileResult(); if (string.IsNullOrEmpty(functionText)) { return result; } Node ast = Parse(functionText, result); if (result.Errors.Any()) { return result; } var builder = new ExpressionTreeBuilder(); var expressionTree = builder.CreateFunction(ast, result); if (expressionTree == null || result.Errors.Any()) { return result; } Func<double, double> function = evaluator.InterpretFunction(expressionTree); result.Function = function; return result; }