public static MultiVariableFunction FromString(string expression, params string[] variableNames)
        {
            var ctx  = VariableContext.FromVariableNames(variableNames);
            var root = StringTokenizer.ToExpression(expression, ctx);

            return(new MultiVariableFunction(root, variableNames));
        }
        public static SingleVariableFunction FromString(string expression, string variableName)
        {
            var ctx = VariableContext.FromVariableNames(new List <string> {
                variableName
            });
            var root = StringTokenizer.ToExpression(expression, ctx);

            return(new SingleVariableFunction(root, variableName));
        }
Пример #3
0
        public static void CanSubstituteAndEvaluateFunction()
        {
            var ctx      = VariableContext.FromVariableNames("x");
            var tree     = StringTokenizer.ToExpression(" 2 * x", ctx);
            var function = new SingleVariableFunction(tree, "x");

            Assert.AreEqual(4, function.Call(2).AsInt);
            Assert.AreEqual(10, function.Call(5).AsInt);
        }
Пример #4
0
 public VariableContext GenerateContext()
 {
     return(VariableContext.FromVariableNames(AllNames()));
 }
 public SingleVariableFunction(ISymbol root, string variableName)
     : base(root, VariableContext.FromVariableNames(new List <string> { variableName }))
 {
     VariableName = variableName;
 }
 public MultiVariableFunction(ISymbol root, params string[] variableNames)
     : base(root, VariableContext.FromVariableNames(variableNames))
 {
     VariableNames = variableNames;
 }