2 Lexikalische Analyse - Westfälische Wilhelms-Universität Münster
2 Lexikalische Analyse - Westfälische Wilhelms-Universität Münster
2 Lexikalische Analyse - Westfälische Wilhelms-Universität Münster
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Kapitel 2: <strong>Lexikalische</strong> <strong>Analyse</strong><br />
Tokenklasse definiert wurden und ersetzt diese durch den Tokennamen. Nach dem<br />
Prozess der lexikalischen <strong>Analyse</strong> würde der nachstehende deutsche Satz beispielsweise<br />
wie folgt umgewandelt:<br />
Ein Mann steigt in sein blaues Auto .<br />
artikel nomen verb präposition fürwort adjektiv nomen punkt<br />
Diese Folge von Token übergibt der Lexer dann zur weiteren Verarbeitung an den<br />
Parser.<br />
2.2.2 Token<br />
Token sind syntaktische Elementarbausteine [WH09, S. 58], die in verschiedene<br />
Klassen eingeteilt werden können. Sie bestehen aus einem Namen sowie einem<br />
optionalen Attributwert. Der Name ist ein selbstbestimmtes Symbol, das vom Parser<br />
weiterverarbeitet wird. Der Attributwert kann, wie z. B. bei Operatoren, die bereits<br />
durch ihren Namen, z. B. mult_op, eindeutig definiert sind, leer sein oder, wie bei<br />
Bezeichnern (ID), einen Zeiger enthalten, der auf einen entsprechenden Eintrag in der<br />
Symboltabelle verweist. Diese Einträge sind wichtig, da ansonsten der Compiler in<br />
späteren Phasen beispielsweise nicht entscheiden kann, ob es sich bei dem Token op um<br />
ein „+“ oder ein „-“ handelt.<br />
Tokenklassen können beliebig definiert werden und folgen keiner eindeutigen<br />
Vorschrift. Ein Großteil der Programmiersprachen jedoch umfasst die in Tabelle 1<br />
gezeigten Klassen [ALSU08, S. 137].<br />
Token Beispiel Beschreibung<br />
id abcd, Dipl.-Ing., E150d Buchstabe, auf den Buchstaben/Ziffern folgen<br />
num 3, 26.587, 0 alle Zahlen<br />
comp , =, !=, = alle Vergleichssymbole<br />
op +, -, /, * die Grundoperatoren<br />
saz (, ), ;, ,, … andere Satzzeichen (Klammern, Semikolon etc.)<br />
if if das Wort if<br />
else else das Wort else<br />
literal „ Ausgabe“ alles, was in Anführungszeichen steht<br />
Tabelle 1: Typische Tokenklassen<br />
Neben diesen Klassen existiert außerdem für jedes Schlüsselwort, z. B. begin oder<br />
end ein eigenes Token. Hierbei sind das Muster und der Tokenname gleich.<br />
6