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:httpoderhttps{ ... }markiert einen Teil, der beliebig oft wiederholt werden darf.h{t}psheißt:hps,htpsoder 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>
