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 />

Einen zweiten Lösungsansatz bietet die Symboltabelle. Üblicherweise werden, wie in<br />

Abbildung 7, bis Index 9 die sogenannten reservierten Schlüsselwörter verwaltet<br />

[ALSU08, S. 160]. Diese Wörter sind, wie z. B. BEGIN, Wörter, die in der<br />

Programmiersprache eine bestimmte Rolle spielen und daher geschützt werden müssen.<br />

Index<br />

1<br />

2<br />

3<br />

4<br />

.<br />

.<br />

.<br />

9<br />

10<br />

11<br />

12<br />

const<br />

var<br />

begin<br />

end<br />

.<br />

.<br />

.<br />

odd<br />

abcd<br />

Dipl.-Ing.<br />

E150d<br />

Schlüsselwörter<br />

Bezeichner<br />

Abbildung 7: Symboltabelle mit reservierten Schlüsselwörtern<br />

Taucht nun das Problem der Mehrdeutigkeit auf, wird das Wort erkannt, welches als<br />

erstes in der Symboltabelle steht. Findet die lexikalische <strong>Analyse</strong> z. Β. das Muster<br />

„beginnen“, wird sie auf Grund des zweiten Lösungsansatzes das Lexem BEGIN sowie<br />

einen Bezeichner „nen“ identifizieren. Als Ergebnis werden die beiden Token BEGIN<br />

und ID ausgegeben.<br />

2.2.6 Eingabepuffer<br />

Das Einlesen der Eingabezeichen wird dadurch erschwert, dass oft über das nächste<br />

Lexem hinausgeblickt werden muss (Lookahead). Um das Muster zu identifizieren,<br />

müssen noch ein oder mehrere zusätzliche Zeichen gelesen werden. Der Eingabepuffer<br />

soll diese Problem mindern und den Einlesevorgang beschleunigen, indem nicht jedes<br />

Zeichen einzeln aufgerufen werden muss.<br />

Aufgebaut ist solch ein Eingabepuffer meist durch zwei separate Puffer der Größe N,<br />

wie ihn Abbildung 8 zeigt [ALSU08, S. 141]. Die Größe entspricht hierbei<br />

12

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!