EBNF: Unterschied zwischen den Versionen
Aus KGS-Wiki
Sn (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Sn (Diskussion | Beiträge) (Grammatik für römische Zahlen ergänzt) |
||
Zeile 10: | Zeile 10: | ||
<ZifferAusserNull> ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | <ZifferAusserNull> ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ||
<Ziffer> ::= 0 | <ZifferAusserNull> | <Ziffer> ::= 0 | <ZifferAusserNull> | ||
</syntaxhighlight>Die Grammatik für römische Zahlen aus dem Artikel [[Formale Grammatik]] kann in EBNF verkürzt werden zu:<syntaxhighlight lang="ebnf" line="1"> | |||
<RoemischeZahl> ::= {M} (CD|CM|[D][C][C][C]) (XL|XC|[L][X][X][X]) (IV|IX|[V][I][I][I]) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
[[Kategorie:Sprache]] | [[Kategorie:Sprache]] | ||
[[Kategorie:Theoretische Informatik]] | [[Kategorie:Theoretische Informatik]] |
Version vom 7. September 2023, 09:15 Uhr
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 Teilhttp[s]
heißt:http
oderhttps
- Geschweifte Klammern
{ ... }
markieren einen Teil, der beliebig oft wiederholt werden darf.h{t}ps
heißt:hps
,htps
oder auchhtttttttttttttttttps
Beispiel
Die folgende Grammatik definiert Telefonnummern in EBNF:
<Telefonnummer> ::= 0 <ZifferAusserNull> {<Ziffer>} / <ZifferAusserNull> {<Ziffer>}
<ZifferAusserNull> ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<Ziffer> ::= 0 | <ZifferAusserNull>
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])