Checkmark on Circle.png

EBNF

Aus KGS-Wiki
Version vom 2. Oktober 2023, 17:06 Uhr von Sn (Diskussion | Beiträge) (Beispiel vertieft, Link ergänzt)

Die Erweiterte Backus-Naur-Form ist eine Möglichkeit, um formale Grammatiken verkürzt aufzuschreiben. Die wesentlichen neuen Syntax-Elemente sind:

  • Runde Klammern ( ... ) funktionieren wie in der Mathematik.
  • Eckige Klammern [ ... ] markieren einen optionalen Teil http[s] heißt: http oder https
  • Geschweifte Klammern { ... } markieren einen Teil, der beliebig oft wiederholt werden darf. h{t}ps heißt: hps, htps oder auch htttttttttttttttttps

Beispiele

Telefonnummern

Die folgende Grammatik definiert Telefonnummern in EBNF:

<Telefonnummer> ::= 0 <ZifferAusserNull> {<Ziffer>} / <ZifferAusserNull> {<Ziffer>}
<Ziffer> ::= 0 | <ZifferAusserNull>
<ZifferAusserNull> ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

lies:

  1. Eine Telefonnummer besteht aus einer 0, gefolgt von einer Ziffer außer 0, beliebig vielen Ziffern ({<Ziffer>}), einem /, wieder einer Ziffer außer 0 und zuletzt noch einmal beliebig vielen Ziffern
  2. Eine Ziffer ist entweder 0 oder eine Ziffer außer 0
  3. Eine Ziffer außer 0 ist entweder 1, 2, 3, 4, 5, 6, 7, 8 oder 9

Römische Zahlen

Die Grammatik für römische Zahlen aus dem Artikel Formale Grammatik kann in EBNF verkürzt werden zu:

<RoemischeZahl> ::= {M} (CD|CM|[D][C][C][C]) (XL|XC|[L][X][X][X]) (IV|IX|[V][I][I][I])
lies
Element Erläuterung
{M} beliebig viele M
(CD|CM|...) CD, CM oder ...
... [D][C][C][C] ... C, CC, CCC, D, DC, DCC, DCCC oder nichts.
(XL|XC|...) XL, XC oder ...
... [L][X][X][X] ... X, XX, XXX, L, LX, LXX, LXXX oder nichts
(CD|CM|...) IV, IM oder ...
... [D][C][C][C] ... I, II, III, V, VI, VII, VIII oder nichts.

Weblinks