Fachkonzept - Parser
Syntaktische Analyse
Ein Parser ist eine Programmeinheit, die analysiert, ob eine Tokenfolge zu einem Programmquelltext vorgegebene Grammatikregeln befolgt. Ist das nicht der Fall, so wird eine Fehlermeldung erzeugt. Andernfalls wird eine strukturierte Darstellung des Programmquelltextes erzeugt, die die von den Grammatikregeln verlangte syntaktische Struktur widerspiegelt.
Betrachte als Beispiel das folgende MyKa
-Programm:
links while nichtVorWand: ziegelHinlegen schritt #while
Die zugehörige Tokenfolge
(ELANW,'links') (WH,'while') (BED,'nichtVorWand') (DP,':') (ELANW,'ziegelHinlegen') (ELANW,'schritt') (WH_ENDE,'#while')
wird daraufhin überprüft, ob sie die Grammatikregeln für MyKa-Programme erfüllt (siehe ...). Zusätzlich wird ein sog. MyKaList-Programm erzeugt.
[ ['links'], ['while', ['nichtVorWand'], [ ['ziegelHinlegen'], ['schritt'] ] ] ]
Ein solches MyKaList-Programm stellt die Struktur des zugehörigen MyKa-Programms mit Hilfe geschachtelter Listen dar. Die ineinander geschachtelten Listen können als Strukturbaum betrachtet werden.
Ein Parser ist also eine Funktionseinheit, die eine Tokenfolge nach vorgegebenen Grammatikregeln analysiert und bei Erfolg einen Strukturbaum erzeugt, oder eine Fehlermeldung liefert.