Ich muss eine art Taschenrechner mit folgenden Anweisungen bilden
Die Syntax der Sprache ist wie folgt definiert:
Die Verarbeitung eines „Programms“ durch einen Interpretierer erfolgt typischerweise in mehreren Schritten:
1.Lexikalische Analyse:
Der Quelltext eines Programms wird zeichenweise eingelesen und die „Token“ gebildet. Alle in der Syntax verwendeten Operatoren und die Zahlen sind die Token von VgaA. Der Vorgang der lexikalischen Analyse heißt oft „scan“.
2.Syntaktische Analyse:
Die Tokenfolge aus der lexikalischen Analyse wird daraufhin geprüft, ob sie der Syntax der Sprache entspricht. Gegebenenfalls sind aussagekräftige Fehlermeldungen auszugeben, die dem Benutzer eine Korrektur erlauben. Für syntaktisch korrekte VgaA-Programme wird ein Syntaxbaum gebildet. Die Knoten des Baums repräsentieren die Operatoren während die Blätter den Zahlen vorbehalten sind. Der Vorgang der syntaktischen Analyse heißt oft „parse“.
3.Listen-Erzeugung:
Zur Kontrolle, ob der Syntaxbaum korrekt gebildet wurde, wird aus dem Syntax-Baum wieder ein syntaktisch korrekter Quelltext erzeugt und in eine Datei ausgegeben. Dieser Vorgang heißt oft „pretty print“
4.Interpretation:
Der durch den Syntaxbaum dargestellte arithmetische Ausdruck wird „ausgerechnet“. Das Ergebnis der Berechnung soll anschließend ausgegeben werden. Dieser Vorgang wird oft „interpret“ oder „evaluate“ genannt.
Eingabe:
Ihr Programm soll beliebig viele VgaAs verarbeiten können. Die Ausdrücke sollen über eine Datei eingegeben werden.
Ausgabe:
Fehlermeldungen, Listen, Ergebnisse der Interpretation.
Hinweis:
Überlegen Sie sich einige Beispiele für gültige VgaAs. Fertigen Sie zum Entwurf Ihrer Lösung ein UML-Klassendiagram an und beschreiben Sie Ihre Lösungsansätze für die einzelnen Schritte kurz (in wenigen Sätzen) umgangssprachlich.