Parser
Aufgabe des Parsers
Ein Parser analysiert, ob eine Tokenfolge zu einem Programmquelltext vorgegebene Grammatikregeln befolgt.
Wir betrachten wieder den folgenden Quelltext:
Ein Scanner erzeugt mit Hilfe vorgegebener Tokenmuster aus diesem Quelltext eine Tokenfolge:
(VAR,'x') (ZUW,'=') (ZAHL,'2') (VAR,'y') (ZUW,'=') (ZAHL,'3') (VAR,'p') (ZUW,'=') (ZAHL,'0') (WHILE,'while') (VAR,'y') (UG,'!=') (NULL,'0') (DP,':') ...
Der Parser muss jetzt u.a. überprüfen, ob eine Wiederholung aus Token der Gestalt WHILE "Bedingung" : "Anweisungsfolge" END
besteht. Damit das möglich ist, wird die Grammatik der Sprache MiniPython präzise festgelegt (siehe Entwicklung eines Compilers - MiniPython).
Ein Parser hat nicht nur die Aufgabe, die Syntax zu überprüfen, ein Parser erzeugt zusätzlich auch eine strukturierte Darstellung des vorgegebenen Programms für die weitere Verarbeitung , sofern das Programm syntaktisch korrekt ist.
Für das oben gezeigte Beispielprogramm könnte die strukturierte Darstellung z.B. so aussehen:
Die Abbildung zeigt noch einmal das Verhalten des Parsers.
Aufgabe 1
Benutze das Simulationsprogramm, um MiniPython-Quelltexte zu parsen.
Quellen
- [1]: Parser - Urheber: KB - Lizenz: inf-schule.de
- [2]: Demoprogramm - Urheber: KB - Lizenz: inf-schule.de