Eine Grammatik in erweiterter Backus-Naur-Form
Eine Schreibweise für Syntaxdiagramme
Im letzten Abschnitt wurde die Sprache der vereinfachten E-Mail-Adressen mit Hilfe von Syntaxdiagrammen präzise festgelegt.
Syntaxdiagramme legen Ersetzungsregeln fest. Diese Ersetzungsregeln kann man auch textuell darstellen. Die folgende Übersicht zeigt, wie das im vorliegenden Beispiel erfolgt. Eine solche Darstellung nennt man auch Grammatik in erweiterter Backus-Naur-Form. Mehr über solche Grammatiken findest du im Abschnitt Exkurs - Grammatik in erweiterter Backus-Naur-Form.
Syntaxdiagramm | Regel |
---|---|
Emailadresse: |
Emailadresse ::= User '@' Domain |
User: |
User ::= Name |
Domain: |
Domain ::= Subdomains Topleveldomain |
Subdomains: |
Subdomains ::= (Name '.')+ |
Topleveldomain: |
Topleveldomain ::= Name |
Name: |
Name ::= Buchstabe+ |
Buchstabe: |
Buchstabe ::= 'b' |
Du kannst das selbst mit dem Railroad Diagram Generator ausprobieren.
Aufgabe 1
Gib im Feld [Edit Grammar] die "Grammatik" der festzulegenden Sprache in der folgenden Darstellung ein.
Emailadresse ::= User '@' Domain User ::= Name Domain ::= Subdomains Topleveldomain Subdomains ::= (Name '.')+ Topleveldomain ::= Name Name ::= Buchstabe+ Buchstabe ::= 'b'
Aktiviere anschließend [View Grammar].
Aufgabe 2
Hier eine Version vereinfachter E-Mail-Adressen, die sich an die Beschreibung in der RFC 822 anlehnt. Kannst du - ohne es vorher mit dem Railroad Diagram Generator auszuprobieren - die zugehörigen Syntaxdiagramme konstruieren? Überprüfe deinen Vorschlag.
AddrSpec ::= LocalPart '@' Domain LocalPart ::= Word ("." Word)* Word ::= Atom | QuotedString Atom ::= Buchstabe+ QuotedString ::= '"' (Buchstabe | Leerzeichen)* '"' Domain ::= SubDomain ("." SubDomain)* SubDomain ::= Buchstabe+ Buchstabe ::= 'b' Leerzeichen ::= ' '