public string Evaluate()
 {
     //if (eval != "") return eval;
     if (POSTstr.Contains("Error"))
     {
         return("Error");
     }
     if (POSTstr == "")
     {
         if (INstr != "")
         {
             POSTstr = InToPost();
         }
         else if (PREstr != "")
         {
             POSTstr = PreToPost();
         }
         else
         {
             return("Error");
         }
     }
     eval = evaPost();
     return(eval);
 }
        private string Po2I()
        {
            if (POSTstr.Contains("Error") || POSTstr == "")
            {
                return("Error");
            }

            string result = "", right = "", left = "";

            myStack = new Stack(POSTstr.Length);
            for (var pivot = 0; pivot < POSTstr.Length; pivot++)
            {
                if (isOperator(POSTstr[pivot]))
                {
                    right = myStack.pop();
                    left  = myStack.pop();
                    myStack.push("(" + left + POSTstr[pivot] + right + ")");
                }
                else if (POSTstr[pivot] == ',')
                {
                    var newstr = "";
                    var ch     = ' ';
                    while (true)
                    {
                        if (pivot < POSTstr.Length)
                        {
                            pivot++;
                        }
                        ch = POSTstr[pivot];
                        if (ch == ',')
                        {
                            break;
                        }
                        newstr += ch;
                    }
                    myStack.push(newstr);
                }
                else if (POSTstr[pivot] != ' ')
                {
                    myStack.push(POSTstr[pivot].ToString());
                }
            }
            result += myStack.pop();
            return(result);
        }
示例#3
0
        public string Evaluate()
        {
            //if (eval != "") return eval;
            if (POSTstr.Contains("Error"))
            {
                return("Error");
            }
            if (POSTstr == "")
            {
                if (INstr != "")
                {
                    POSTstr = GetPostfix();
                }

                else
                {
                    return("Error");
                }
            }
            eval = EvaPost();
            return(eval);
        }