All pastes #18497 Raw Edit

Unnamed

public text v1 · immutable
#18497 ·published 2005-07-26 00:00 UTC
rendered paste body
using System;
using System.Collections;
using System.Text;
using System.Text.RegularExpressions;

namespace Csharpbot_tng
{
    class Calc
    {

        string[] cleanMsg;
        string[] operands;
        string[] priorities;
        ArrayList Alist = new ArrayList();

        public void parse(string msg)
        {
            try
            {

                cleanMsg = Regex.Split(msg.Substring(7), @"\D+([^,|^.])");
                operands = Regex.Split(msg.Substring(7).Trim(), @"\s?[^|+^\-/*]");
                //  priorities = Regex.Split(msg.Substring(7), @"[^\(|^\)");


                foreach (string c in cleanMsg)
                    Alist.Add(c);

                foreach (string c in operands)
{
                    switch (c)
                    {
                        case "+":

                            Alist[0] = (float.Parse(Alist[0].ToString()) + float.Parse(Alist[1].ToString())).ToString();
                            Alist.RemoveAt(1);
                            break;
                        case "-":
                            Alist[0] = (float.Parse(Alist[0].ToString()) - float.Parse(Alist[1].ToString())).ToString();
                            Alist.RemoveAt(1);
                            break;
                        case "*":
                            Alist[0] = (float.Parse(Alist[0].ToString()) * float.Parse(Alist[1].ToString())).ToString();
                            Alist.RemoveAt(1);
                            break;
                        case "/":
                            Alist[0] = (float.Parse(Alist[0].ToString()) / float.Parse(Alist[1].ToString())).ToString();
                            Alist.RemoveAt(1);
                            break;
                        case "^":
                            Alist[0] = Math.Pow(float.Parse(Alist[0].ToString()), float.Parse(Alist[1].ToString())).ToString();
                            Alist.RemoveAt(1);
                            break;

                    }
                }
                IrcLib.say(Alist[0].ToString());
            }

            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
    }
}