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