EBNF: Unterschied zwischen den Versionen
Aus KGS-Wiki
Sn (Diskussion | Beiträge) (Seite begonnen, da darf noch ein Beispiel) |
Sn (Diskussion | Beiträge) (Beispiel ergänzt) |
||
Zeile 3: | Zeile 3: | ||
* <code>[ ... ]</code> markiert einen optionalen Teil <code>http[s]</code> heißt: <code>http</code> oder <code>https</code> | * <code>[ ... ]</code> markiert einen optionalen Teil <code>http[s]</code> heißt: <code>http</code> oder <code>https</code> | ||
* <code>{ ... }</code> markiert einen Teil, der beliebig oft wiederholt werden darf. <code>h{t}ps</code> heißt: <code>hps</code>, <code>htps</code> oder auch <code>htttttttttttttttttps</code> | * <code>{ ... }</code> markiert einen Teil, der beliebig oft wiederholt werden darf. <code>h{t}ps</code> heißt: <code>hps</code>, <code>htps</code> oder auch <code>htttttttttttttttttps</code> | ||
== Beispiel == | |||
Die folgende Grammatik definiert Telefonnummern in EBNF:<syntaxhighlight lang="ebnf" line="1"> | |||
<Telefonnummer> ::= 0 <ZifferAusserNull> {<Ziffer>} / <ZifferAusserNull> {<Ziffer>} | |||
<ZifferAusserNull> ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |||
<Ziffer> ::= 0 | <ZifferAusserNull> | |||
</syntaxhighlight> | |||
[[Kategorie:Sprache]] | |||
[[Kategorie:Theoretische Informatik]] |
Version vom 5. September 2023, 13:46 Uhr
Die Erweiterte Backus-Naur-Form ist eine Möglichkeit, um Grammatiken verkürzt aufzuschreiben. Die wesentlichen neuen Syntax-Elemente sind:
[ ... ]
markiert einen optionalen Teilhttp[s]
heißt:http
oderhttps
{ ... }
markiert 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>