/// <summary> /// Creates a functional evaluation method /// </summary> /// <param name="argument">the string representing the method argument</param> /// <param name="resultType">the method result type</param> /// <param name="code">the source code of the method body</param> /// <returns>the create functional evaluation method delegate</returns> private static FunctionEvaluation CreateFunctional(string argument, Type resultType, string code) { CompilationResults compilationResults; FunctionEvaluation function = FunctionalBasis.CompileFunction <FunctionEvaluation>(code, argument, resultType, out compilationResults); if (compilationResults.HasErrors) { throw new InvalidProgramException( $"Addition terminal evaluation failes: Error: {compilationResults.ErrorsExplanation}"); } return(function); }
/// <summary> /// Creates a terminal evaluation method /// </summary> /// <param name="arguments">the string[] representing the method arguments</param> /// <param name="resultType">the method result type</param> /// <param name="code">the source code of the method body</param> /// <returns>the created terminal evaluation method delegate</returns> private static TerminalEvaluation CreateTerminal(string[] arguments, Type resultType, string code) { CompilationResults compilationResults; TerminalEvaluation variable = FunctionalBasis.CompileTerminal <TerminalEvaluation>(code, arguments, resultType, out compilationResults); if (compilationResults.HasErrors) { throw new InvalidProgramException( $"Variable terminal evaluation creation failes: Error: {compilationResults.ErrorsExplanation}"); } return(variable); }