28.10.2013 Aufrufe

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

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!