Einen Parser zu schreiben ist nicht uninteressant und auch gar nicht so schwer, wenn man die Syntax beschränkt. Solange man auf rechtsassoziative Operatoren, Kurzschlußoperatoren und dergleichen verzichtet, kommt man mit relativ wenig Aufwand aus.
Allerdings muß man sich überlegen, wie man Prioritäten der Operatoren (im einfachsten Fall: Punkt vor Strich) und Klammerungen berücksichtigt.
Aus eigener Erfahrung kann ich sagen, daß es dafür zwei geeignete Verfahren gibt:
1) Ausdrücke, die noch nicht berechnet werden können/dürfen, auf einen Stack pushen und dann "poppen"
/ausrechnen, wenn das von der Bearbeitungsreihenfolge hinkommt.
2) Die Ausdrücke gemäß Klammern/Prios in eine umgekehrt polnische Notation umsortieren, dann kann man den Ausdruck ohne Probleme ausrechnen. Man braucht dann lediglich noch einen Valuestack, auf den man Werte legt. Ist allerdings für einen einfachen Ausdruckparser IMHO etwas aufwendiger als Methode 1.
In Java gibt es theoretisch noch die Möglichkeit, den Ausdruck in eine Klasse zu schreiben und extern zu kompilieren. Selbstmodifizierender Code quasi. Derlei Methoden hat man zu C64-Zeiten angewendet in Basic, schön war das aber auch da schon nicht
Es gibt aber in der Tat mehrere freie in Java geschrieben Ausdrucksparser. U.a. JEP (
http://www.singularsys.com/jep/). Hier gibt's auch einen sehr einfachen Parser:
http://www.heinerkuecker.de/Expression.html.
Echte Männer schreiben ihre Parser aber selber