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()); } } } }