Hello,
Welche Schwierigkeiten, außer Fakultät, sind denn noch zu erwarten, wenn nicht noch solche Dinge, wie sin(), cos(), usw. eingebaut werden?
allein das Parsen von Potenzen (von rechts nach links), Punkt vor Strichrechnung, Punkt bzw. Strichrechnung wird natürlich von links nach rechts geparst, ist schon widersprüchlich genug.
Jau, das habe ich gemerkt.
Es wurden erst die Klammern isoliert
Das war noch sehr einfach.
Nun werden die verbleibenden Ausdrücke in den Klammern aufgelöst.
Dazu müssen sie erst in Tokens aufgeteilt werden. Das geht mit Stream sehr bequem, aber ich glaube, dass es sehr teuer ist.
Di Tokens werden dann abgecannt und nach bestimmten Regeln zu Ojekten mit
grob:
- Ausdruck // zur Kontrolle
- minusflag
- Operator
- leftOperand
- rightOperand
zusammengesetzt, deren Operanden dann solange weiter zerlegt werden, bis es nicht weiter geht.
Es wird mit dem niedrigsten Operator begonnen, sodass der hächste nachher auf dem Blatt landet.
Wenn auf einem Zweig keine weitere Zerlegung mehr möglich ist, wird der Baum abgewickelt.
Ob das nun geschickt ist, weiß ich noch nicht. Aber Umbau von Infix zu Postfix sollte vorher nicht erst stattfinden.
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg