Compilerbauhome Compilerbau: Motivation Prof. Dr. Uwe Schmidt FH Wedel

Motivation

weiter

weiter

Syntaxanalyse

Problem
Klammerschachtelung (Rekursion) kann nicht mit regulären Ausdrücken beschrieben werden
weiter
Lösung
mächtigeres Werkzeug für die Syntaxdefinition:
Kontextfreie Grammatiken
weiter
Terminalsymbole
Token, Ausgabe-Alphabet des Scanners
weiter
Scanner und Parser hintereinander schalten
weiter
technisches Problem
EOF Marke
Parser müssen (wie Scanner auch) nicht nur Zeichen lesen, sondern auch das Ende der Eingabe erkennen.
weiter
schlecht
immer Kombination: EOF-Test und Lesen/Testen des nächsten Zeichens
weiter
Lösung
neues Spezialsymbol für EOF
üblich: $
weiter
Grammatik erweitern
 
G = (T, N, P, S)
 
erweitern zu
 
G = (T ∪ {$}, N ∪ {S'}, P', S')
 
mit
 
P' = P ∪ { S' ::= S $ }
weiter
gut
Keine zusätzlichen Tests auf EOF.
Wenn $ im Eingabestrom auftaucht, ist das Parsen beendet.
weiter

Letzte Änderung: 14.02.2012
© Prof. Dr. Uwe Schmidt
Prof. Dr. Uwe Schmidt FH Wedel