public FormulaFunctionInfo(ushort code, string name, FormulaTokenCode argumentCode, FormulaTokenClass returnCode, byte argumentsCount) { this.argumentsCount = 255; this.code = code; this.name = name; this.argumentCode = argumentCode; this.returnCode = returnCode; this.argumentsCount = argumentsCount; }
public static FormulaToken CreateFunctionFromName(string name, FormulaTokenClass tokenClass, byte argumentsCount) { FormulaToken token = null; if (FormulaFunctionsTable.Instance[name].IsFixedArgumentCount) { switch (tokenClass) { case FormulaTokenClass.Reference: token = new FunctionFormulaToken(FormulaTokenCode.Func1); break; case FormulaTokenClass.Variable: token = new FunctionFormulaToken(FormulaTokenCode.Func2); break; case FormulaTokenClass.Array: token = new FunctionFormulaToken(FormulaTokenCode.Func3); break; } } else { switch (tokenClass) { case FormulaTokenClass.Reference: token = new FunctionVarFormulaToken(FormulaTokenCode.FuncVar1); break; case FormulaTokenClass.Variable: token = new FunctionVarFormulaToken(FormulaTokenCode.FuncVar2); break; case FormulaTokenClass.Array: token = new FunctionVarFormulaToken(FormulaTokenCode.FuncVar3); break; } token.DelayInitialize(new object[] { name, argumentsCount }); return(token); } token.DelayInitialize(new object[] { name }); return(token); }
///<summary> ///Creates formula token form the name of the function. ///</summary> ///<param name="name">The name of the function.</param> ///<param name="tokenClass">The token class.</param> ///<param name="argumentsCount">The arguments count for the function.</param> ///<returns>created formula token</returns> public static FormulaToken CreateFunctionFromName(string name, FormulaTokenClass tokenClass, byte argumentsCount) { FormulaToken token1 = null; FormulaTokenClass class1; object[] objArray1; if (!FormulaFunctionsTable.Instance[name].IsFixedArgumentCount) { class1 = tokenClass; switch (class1) { case FormulaTokenClass.Reference: { token1 = new FunctionVarFormulaToken(FormulaTokenCode.FuncVar1); goto Label_008C; } case FormulaTokenClass.Variable: { token1 = new FunctionVarFormulaToken(FormulaTokenCode.FuncVar2); goto Label_008C; } case FormulaTokenClass.Array: { token1 = new FunctionVarFormulaToken(FormulaTokenCode.FuncVar3); goto Label_008C; } } } else { class1 = tokenClass; switch (class1) { case FormulaTokenClass.Reference: { token1 = new FunctionFormulaToken(FormulaTokenCode.Func1); break; } case FormulaTokenClass.Variable: { token1 = new FunctionFormulaToken(FormulaTokenCode.Func2); break; } case FormulaTokenClass.Array: { token1 = new FunctionFormulaToken(FormulaTokenCode.Func3); break; } } objArray1 = new object[] { name }; token1.DelayInitialize(objArray1); return(token1); } Label_008C: objArray1 = new object[2]; objArray1[0] = name; objArray1[1] = argumentsCount; token1.DelayInitialize(objArray1); return(token1); }
public FormulaFunctionInfo(ushort code, string name, FormulaTokenCode argumentCode, FormulaTokenClass returnCode) : this(code, name, argumentCode, returnCode, 255) { }
private void AddFunction(ushort code, string name, FormulaTokenCode argumentCode, FormulaTokenClass returnCode, byte argumentsCount) { FormulaFunctionInfo info = new FormulaFunctionInfo(code, name, argumentCode, returnCode, argumentsCount); this.codesToFunctions[code] = (info); this.namesToFunctions[name] = (info); }