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

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Kapitel 2: <strong>Lexikalische</strong> <strong>Analyse</strong><br />

2.2.3 Reguläre Ausdrücke<br />

Reguläre Ausdrücke bilden die Basis für die Beschreibung der zu erkennenden Muster<br />

im Eingabestrom des automatischen Scanners der lexikalischen <strong>Analyse</strong> und sind daher<br />

ein wesentlicher Bestandteil des Compilerbaus. Das folgende Beispiel zeigt den<br />

generellen Aufbau regulärer Ausdrücke:<br />

( `+` + `-`) ? (0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 ) + (, (0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 +<br />

8 + 9 ) + )?<br />

Mit Hilfe dieses regulären Ausdrucks soll die Darstellung einer Kommazahl<br />

aufgegriffen werden. Zunächst ist zu erkennen, dass zusammengehörige Abschnitte mit<br />

einer Klammer gebunden werden. Die verschiedenen Ausdruckteile werden ohne<br />

Zeichen aneinander gehängt. Somit bildet der gesamte Ausdruck die Konkatenation der<br />

einzelnen Stücke [VW06, S. 64]. Das große Pluszeichen ermöglicht eine Auswahl<br />

zwischen den Komponenten und definiert somit die vereinigte Menge der<br />

Komponenten. Ein Synonym für das „+“ bietet der senkrecht Strich „|“. Um<br />

festzulegen, wie oft ein Teil des regulären Ausdrucks wiederholt wird, d. h. wie viele<br />

Instanzen gebildet werden, gibt es die Zeichen „?“, „*“ und „ + “. Dabei steht das<br />

Fragezeichen, wie z. B. bei (+ | -) ?, für keine oder eine einzige Wiederholung. In einer<br />

Kommazahl sollen natürlich nicht beliebig viele Minuszeichen auftauchen, sondern<br />

höchstens eins zu Beginn. Eine weitere Darstellungsmöglichkeit für dieses Problem<br />

wäre die Schreibweise (+ | - | ε). Das Fragezeichen fällt in diesem Fall weg, da für<br />

„keine Wiederholung“ das leere Wort ε eingesetzt wurde. Das Pluszeichen steht für eine<br />

oder mehrere Instanzen des regulären Ausdrucks. Es soll nun also im mittleren Teil des<br />

Beispiels auf jeden Fall mindestens eine Ziffer abgebildet werden. Die dritte<br />

Möglichkeit, der Stern, bildet beliebig viele Wiederholungen ab, d. h. also auch keine<br />

ist möglich.<br />

Formal wird ein regulärer Ausdruck wie folgt definiert [VW06, S. 65]:<br />

Sei ∑ ein Alphabet, d. h. eine nicht leere, endliche Menge von Zeichen bzw.<br />

Zeichenreihen, die total geordnet ist.<br />

1. Ø ist ein regulärer Ausdruck und bezeichnet die leere Menge.<br />

2. ε ist ein regulärer Ausdruck und bezeichnet das leere Wort, d. h. die Menge {ε}.<br />

3. a ist ein regulärer Ausdruck und bezeichnet die Menge {a}.<br />

7

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!