//TODO Make String builder private void CleanUpExpression() { if (this.StringExpression.Equals("")) { Console.WriteLine("ERROR"); } this.StringExpression = StringExpression.Trim(); // Trim by removeing extra spaces at end and beginning this.StringExpression = this.StringExpression.Replace(" ", ""); // removes any inline spaces //Adds any let out or forgotten multiplication marks ie (A+B)(A+B) -> (A+B)*(A+B) for (int i = 0; i < this.StringExpression.Length; i++) { if (Char.IsLetter(StringExpression[i])) { if (Char.IsLower(StringExpression[i])) { StringExpression = StringExpression.Substring(0, i) + Char.ToUpper(StringExpression[i]) + StringExpression.Substring(i + 1); } //Checks to make sure there are multiplication points where vairbale AND occurs if (i != StringExpression.Length - 1) { if (Char.IsLetter(StringExpression[i + 1])) { StringExpression = StringExpression.Substring(0, i + 1) + "*" + StringExpression.Substring(i + 1); } //Make sure not out of bounds accessing else if (i != StringExpression.Length - 2 && (StringExpression[i + 1] == '\'' || StringExpression[i + 1] == ')')) { //Where the next char is a inversion or maybe a parenthesis and the AND (*) needs to go after // ie (A+B)'* if (Char.IsLetter(StringExpression[i + 2])) { StringExpression = StringExpression.Substring(0, i + 2) + "*" + StringExpression.Substring(i + 2); } } } } } }