Se me ocurren tres cosas, la primera tomar en cuenta los parentesis, en segundo lugar las comas y por ultimo discriminar si son letras o numeros.
por ejemplo:
?(E=0,0,(E-1)*D)
partir por (E-1), resolverlo, ya que E representa un valor, este multiplicarlo *D, y asi sucesivamente. Ahora hay que resolverlo en codigo.
Atte
Mauricio