protected BinaryOperation ExtractOperator(ref string formula) { Console.WriteLine(formula); foreach (var op in BinaryOperation.ListOps()) { if (formula.StartsWith(op.id)) { formula = formula.Substring(op.id.Length).TrimStart(); if (op.priority > this.maxPriority) { this.maxPriority = op.priority; } return(op); } } throw new ArgumentException("Unknow operation"); }