Exkurs - Eine Sprache zur Beschreibung von Syntaxdiagrammen

Eine Schreibweise für Syntaxdiagramme

Im Abschnitt Beispiel - Logo-Programme wurde die Sprache der (einfachen) Logo-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:

Syntaxdiagramm
Ziffer ::= '0' | 
           '1' | 
           '2' | 
           '3' | 
           '4' | 
           '5' | 
           '6' | 
           '7' | 
           '8' | 
           '9'

Natzahl:

Syntaxdiagramm
Natzahl ::= Ziffer+

Dezbruch:

Syntaxdiagramm
Dezbruch ::= Natzahl '.' Natzahl

Zahl:

Syntaxdiagramm
Zahl ::= '-'? (Natzahl | Dezbruch)

Leer:

Syntaxdiagramm
Leer ::= ' '

WS:

Syntaxdiagramm
WS ::= Leer+

Turtleanw:

Syntaxdiagramm
Turtleanw ::= 'fd' WS Zahl | 
              'bk' WS Zahl | 
              'lt' WS Zahl | 
              'rt' WS Zahl | 
              'st' WS | 
              'ht' WS

Anwfolge:

Syntaxdiagramm
Anwfolge ::= (Turtleanw WS?)+

Turtleprogr:

Syntaxdiagramm
Turtleprogr ::= Anwfolge

Aufgabe 1

Probiere das selbst mit dem Railroad Diagram Generator aus.

Gib im Feld [Edit Grammar] die "Grammatik" der Sprache in der oben gezeigten Form ein.

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 Grammar].

Aufgabe 2

Versuche, anhand des Beispiels (und weiterer Experimente) zu erschließen, was die Symbole "|", "+" und "?" bewirken.

X

Fehler melden

X

Suche