====== Erweiterte Backus-Naur-Form (EBNF) ====== Neben den Metazeichen für Auswahl (|) und Gruppierung (runde Klammern), die in der BNF verwendet werden können, besitzt die **EBNF** (extended Backus-Naur-form) noch folgende: * [ A ] bedeutet, dass A an dieser Stelle 0- oder 1-mal vorkommt ("Option") * { A } bedeutet, dass A an dieser Stelle beliebig oft (auch 0-mal) hintereinander stehen kann ("Wiederholung"). ===== Beispiel 1: Längenangaben mit maximal zwei Dezimalstellen ===== R0: Länge = Ganzzahl [ "," Nachkommastellen ]; R1: Ganzzahl = "0" | ( EinsBisNeun { NullBisNeun } ); R2: Nachkommastellen = NullBisNeun [ NullBisNeun ]; R3: EinsBisNeun = "1" | "2" | ... | "9"; R4: NullBisNeun = "0" | EinsBisNeun; **Bemerkungen:** * R2 zeigt, wie sich ein Wortteil erzeugen lässt, der mindestens ein Mal vorkommt. * Es gibt leider keine allgemein anerkannte Definition von EBNF (siehe auch [[https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form|den Wikipedia-Artikel dazu]]). Daher ist auch die Operratorrangfolge (Präzendenz) nirgends wirklich eindeutig geregelt. Im Zweifelsfall (wie bei R1): Lieber Klammern setzen! ===== Beispiel 2: =====