In dem Fall musst du sowas wie JAS wohl selbst schreiben

Es hat schon seinen Grund, dass ein Institutsleiter einer Uni 16 Jahre daran arbeitet und es trotzdem ziemlich mickrig ist, im Vergleich zu dem was zB. Mathematica kann (entwickelt seit 28 Jahren von einer Firma mit 700 Mitarbeitern, und auch das ist keineswegs perfekt).
Nur angenommen, man will das...
...
Schritt 1, Gleichungslösen
Angenommen, es soll nur Plus und Minus verstehen (was nicht sein kann, warum siehe unten).
a) Mit den BigNum-Klassen vertraut machen, damit man sich wenigstens um Overflows etc. keine Sorgen machen muss
b) Strings zu einem Tree Parsen
Dabei Klammern+Operatorprioritäten und unäres Minus beachten.
Nodetypen zB. Zahl, Variable, Plus, Minus
c) Einseitige Ausdrucksvereinfachung implementieren, Richtung "linearer"
Also für sowas wie "1+2*(3*4+5x/5a)" => "25+2x/a", nur eben ohne * und / gedacht
Beinhaltet Zusammenfassung ("1+1" => "2", "a+a" => "a+a" weil keine Multiplikation, "a-a" => 0, ggf. Reihenfolgeänderungen "4-2-4+2" => "0", Auflösen von Klammern (auch Minusumdrehung beachten), Entfernen von 0s, usw.
d) Zweiseitige (x+y=a+b) Umformungen zu einer bestimmten Variable hin (x=a+b-y)
Mit den selben Operationen wie oben.
Dabei auch beachten dass die Variable mehr als einmal vorkommen kann (x+x-y+y=a+b)
Auch beachten dass es evt. unendlich viele Lösungen gibt (x=x bzw. 0=0).
e) Auch unterstützen, nach den Umformungen für die Variablen werte einzusetzen und eine Zahl als Endergebnis zu bekommen. Idealerweise keine wirklichen Divisionen machen, sondern Brüche behalten.
(Schritt 2: Das obige System zum Rechnen verwenden und den Algo damit eben implementieren)
...
Ist schon kompliziert genug so, nur mit + und -. Und kann, wie oben gesagt, nicht funktionieren wegen Schritt d:
Was ist, wenn man zB. "x+x=2" herausbekommt? Genau, zunächst braucht man jetzt plötzlich doch Mulitplikation und Division, um "x=1" zu erhalten. Und damit eine ganze Reihe von weiteren Problemen: Beim Parsen Brüche einführen für fixe Kommazahlen (1.234 => 1234/1000), evt. gibt es keine Lösung (/0), evt. gibt es mehrere richtige ("x(x+2)=x", deswegen können Vars nicht einfach annuliert werden), wirkliche Klammerauflösungen, 0-Faktoren bei Klammern, Brüche auflösen wenn /1, Variablen und Primfaktoren von Bruchen rausannulieren wenn möglich, Polynomdivision, PD-Umkehrungen, ...
Und wenn man das alles hat geht der Wahnsinn erst richtig los: So wie "x+x=2" oben kanns ja auch "x*x=2" geben, und damit bekommt man Pow/Root. Ohne viel Details diesmal, aber kommen natürlich noch mehr Sachen dazu (virtuelle Imaginäre, Logbasen, Taylor...).
Als nächstes Level braucht man dann Exp/Ln, das wiederrum braucht Differentation, das Integrale, das...
was danach kommt braucht schon zum Kennen der Namen ein Mathematikstudium , und der SymbComp-Teil ist ein aktives Forschungsgebiet.