Esempio n. 1
0
 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;
 }
Esempio n. 2
0
        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);
        }
Esempio n. 4
0
 public FormulaFunctionInfo(ushort code, string name, FormulaTokenCode argumentCode, FormulaTokenClass returnCode) : this(code, name, argumentCode, returnCode, 255)
 {
 }
Esempio n. 5
0
        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);
        }