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