Die Aufgabe
Aufgabe 4.3
Erstellen Sie eine EBNF-Beschreibung für Züge einer fiktiven Bahngesellschaft. Züge bestehen aus Lokomotiven (L), Speisewagen (S), Fahrrad/Gepäckwagen (F), Grossraumwagen (G), Steuerwagen (Z). (Daneben ist das Foto eines Steuerwagens abgebildet.)
Regeln:
- Eine oder mehrere Lokomotiven (L) führen den Zug an.
- Den Schluss bildet ein Steuerwagen (Z).
- Fahrrad&Gepäckwagen (F) werden immer paarweise eingesetzt, also FF, FFFF, …
- Es können nicht mehr als vier Grossraumwagen (G) in einer Reihe (direkt hintereinander) im Zug sein.
- Nach jeder Gruppe von Grossraumwagen (G) und nur dann folgt ein Speisewagen.
Beispiele:
- LZ – legal, kürzester Zug
- LLLFFZ – legal (aber kein Platz für Passagiere)
- LGGSFFGSFFFFZ – legal, Zug mit allen Wagentypen
- LLFF – illegal, Zug ohne Steuerwagen
- LGGGGFFZ – illegal, kein Speisewagen nach Gruppe Grossraumwagen
- LGGSFFFZ – illegal, ungerade Anzahl Fahrrad&Gepäckwagen
- LGGGGGSZ – illegal, > 4 Grossraumwagen hintereinander
Jeder Zug ist ein Wort aus den Buchstaben L, S, F, G und Z, von vorn nach hinten gelesen. Gesucht ist eine EBNF, die alle Züge nach den fünf Regeln erzeugt und keinen anderen. Die sieben Beispiele dienen als Probe: Die drei legalen müssen sich erzeugen lassen, die vier illegalen nicht.
- Das Gerüst: Loks vorn, Steuerwagen hinten, Wagen dazwischen.
- Je eine Regel für Loks, Fahrradwagen und Großraumwagen.
- Die Wagen als Alternative zusammensetzen.
- Die sieben Beispiele prüfen.