Tom: Noch mehr Träumerei für eine bessere Welt ;-)

Beitrag lesen

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

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de