Esempio n. 1
0
        private static void ProcessFunction(FormulaToken token, Stack operandsStack)
        {
            byte num = (token is FunctionFormulaToken) ? (token as FunctionFormulaToken).ArgumentsCount : (token as FunctionVarFormulaToken).ArgumentsCount;

            if (token is FunctionFormulaToken)
            {
                ushort code = (token as FunctionFormulaToken).Function.Code;
            }
            else
            {
                ushort num1 = (token as FunctionVarFormulaToken).Function.Code;
            }
            StringBuilder builder = new StringBuilder();

            builder.Append(token.ToString());
            builder.Append("(");
            string[] strArray = new string[num];
            for (byte i = 0; i < num; i = (byte)(i + 1))
            {
                strArray[i] = operandsStack.Pop() as string;
            }
            for (byte j = num; j > 0; j = (byte)(j - 1))
            {
                string str = strArray[j - 1];
                builder.Append(str);
                if (j != 1)
                {
                    builder.Append(",");
                }
            }
            builder.Append(")");
            operandsStack.Push(builder.ToString());
        }
Esempio n. 2
0
        private static void ProcessUnaryOperator(FormulaToken token, Stack operandsStack)
        {
            string str = operandsStack.Pop() as string;

            if (token.Code == 20)
            {
                operandsStack.Push(str + token.ToString());
            }
            else if (token.Code == 21)
            {
                operandsStack.Push("(" + str + ")");
            }
            else
            {
                operandsStack.Push(token.ToString() + str);
            }
        }
Esempio n. 3
0
 private static void ProcessOperand(FormulaToken token, Stack operandsStack)
 {
     operandsStack.Push(token.ToString());
 }
Esempio n. 4
0
 private static void ProcessBinaryOperator(FormulaToken token, Stack operandsStack)
 {
     operandsStack.Push((operandsStack.Pop() as string) + token.ToString() + (operandsStack.Pop() as string));
 }