Exkurs - Eine Sprache zur Beschreibung von Syntaxdiagrammen
Eine Schreibweise für Syntaxdiagramme
Im Abschnitt Beispiel - Turtle-Programme wurde die Sprache der (einfachen) Turtle-Programme mit Hilfe von Syntaxdiagrammen präzise festgelegt.
Syntaxdiagramme legen Ersetzungsregeln fest. Diese Ersetzungsregeln kann man auch textuell darstellen. Die folgende Übersicht zeigt, wie das am Beispiel der Syntaxdiagramme für Logo-Programme.
| Syntaxdiagramm | Ersetzungsregeln | 
|---|---|
| 
 Ziffer:  
 | 
Ziffer ::= '0' | 
           '1' | 
           '2' | 
           '3' | 
           '4' | 
           '5' | 
           '6' | 
           '7' | 
           '8' | 
           '9'
 | 
| 
 Natzahl:  
 | 
Natzahl ::= Ziffer+  | 
| 
 Dezbruch:  
 | 
Dezbruch ::= Natzahl '.' Natzahl  | 
| 
 Zahl:  
 | 
Zahl ::= '-'? (Natzahl | Dezbruch)  | 
| 
 Leer:  
 | 
Leer ::= ' '  | 
| 
 WS:  
 | 
WS ::= Leer+  | 
| 
 Turtleanw:  
 | 
Turtleanw ::= 'fd' WS Zahl | 
              'bk' WS Zahl | 
              'lt' WS Zahl | 
              'rt' WS Zahl | 
              'st' WS | 
              'ht' WS
 | 
| 
 Anwfolge:  
 | 
Anwfolge ::= (Turtleanw WS?)+  | 
| 
 Turtleprogr:  
 | 
Turtleprogr ::= Anwfolge  | 
Aufgabe 1
Probiere das selbst mit dem Railroad Diagram Generatoraus.
Gib dazu im Feld [Edit Grammar] die "Grammatik" der Sprache in der unten gezeigten Form ein. Man nennt diese Form die sogenannte Backus-Naur-Form (BNF).
Ziffer ::= '0' | 
           '1' | 
           '2' | 
           '3' | 
           '4' | 
           '5' | 
           '6' | 
           '7' | 
           '8' | 
           '9'
Natzahl ::= Ziffer+
Dezbruch ::= Natzahl '.' Natzahl
Zahl ::= '-'? (Natzahl | Dezbruch)
Leer ::= ' '
WS ::= Leer+
Turtleanw ::= 'fd' WS Zahl | 
              'bk' WS Zahl | 
              'lt' WS Zahl | 
              'rt' WS Zahl | 
              'st' WS | 
              'ht' WS
Anwfolge ::= (Turtleanw WS?)+
Turtleprogr ::= Anwfolge
Aktiviere anschließend [View Diagram].
Aufgabe 2
Versuche, anhand des Beispiels (und weiterer Experimente) zu erschließen, was die Symbole "|", "+" und "?" bewirken.