public static CLBinaryOperator LoadBinaryPlus(int priority = 0, bool valOnLeft = true, bool valOnRight = true) { BinaryPlus = CLOperators.BinaryOperators.GetOrNull("+") ?? new CLBinaryOperator("+", priority, valOnLeft, valOnRight); BinaryPlus.AddFunction(tNum, tNum, BinPlusNumbers); BinaryPlus.AddFunction(tNum, tStr, (left, right, vars, context) => BinPlusStrings(NumToString(left), right, vars, context)); BinaryPlus.AddFunction(tStr, tNum, (left, right, vars, context) => BinPlusStrings(left, NumToString(right), vars, context)); BinaryPlus.AddFunction(tStr, tStr, BinPlusStrings); BinaryPlus.AddFunction(tVal, tLst, (left, right, vars, context) => BinPlusLists(ValToList(left), right, vars, context)); BinaryPlus.AddFunction(tLst, tVal, (left, right, vars, context) => BinPlusLists(left, ValToList(right), vars, context)); BinaryPlus.AddFunction(tLst, tLst, BinPlusLists); return(BinaryPlus); }
// Subtracts one value from another. public static CalcValue BinMinus(CalcObject left, CalcObject right, CLLocalStore vars, CLContextProvider context) { return(BinaryPlus.Run(left, PrefixMinus.Run(right, vars, context), vars, context)); }