Die sogenannten Syntaxdiagramme sind in der Informatik ein beliebtes und einfaches Mittel, um zu erklären, wie eine Sprache aufgebaut ist. Formal ist ein Syntaxdiagramm nichts weiter als die graphische Repräsentation einer Grammatik - nur eben leichter zu erfassen.
Ein Syntaxdiagramm besteht nur aus wenigen graphischen Elementen:
| Ein sogenanntes Terminalsymbol ist ein tatsächlicher Bestandteil der zu beschreibenden Sprache. Dies kann ein Buchstabe oder ein ganzes Wort sein. Terminalsymbole sind an ihrer runden Form erkennbar. Im vorliegenden Fall, muß an dieser Stelle ein Minuszeichen stehen. |
| Ein sogenanntes Nonterminalsymbol ist ein Sprachbestandteil, der mittels weiterer Regeln aus der Sprachbeschreibung weiter verfeinert werden muß. Ein Nonterminalsymbol ist an seiner eckigen Form erkennbar. Im vorliegenden Fall ist eine Ziffer erwartungsgemäß als eines der Terminalsymbole '0' bis '9' zu verfeinern. |
| Eine Sequenz ist eine lineare Abfolge beliebiger Terminal- und Nonterminalsymbole. Die Symbole müssen in der angegebenen Reihenfolge stehen. Im vorliegenden Fall folgen auf das Komma noch Ziffern. |
| Eine Option ist ein optionaler Bestandteil der Sprache. Ein beliebiges Terminal- oder Nonterminalsymbol kann vorkommen, muß aber nicht. Im vorliegenden Fall kann an einer bestimmten Stelle ein Circumflex geschrieben werden, oder eben nicht. |
| Eine Auswahl ist eine Alternative zwischen zwei oder mehr Terminal- oder Nonterminalsymbolen. In jedem Fall muß eine Auswahl getroffen werden. Im vorliegenden Fall kann an einer bestimmten Stelle ein Stern oder ein Fragezeichen stehen. |
| Eine Wiederholung ist eine Art Schleife, innerhalb der eine beliebige Folge von Terminal- oder Nonterminalsymbole im Prinzip beliebig oft wiederholt werden darf. Im vorliegenden Fall dürfen Ziffern beliebig wiederholt werden, um eine Zahl darzustellen. (Meist ist die Anzahl der Wiederholungen außerhalb der Syntaxbeschreibung der Sprache doch beschränkt, zum Beispiel hier, weil nicht beliebig große Zahlen akzeptiert werden.) |
Aus diesen sechs graphischen Elementen lassen sich größere Diagramme zusammenstellen, die ein Sprachkonstrukt beschreiben.
Als Beispiel diene die Definition einer Zeichenklasse:
Das Syntaxdiagramm beschreibt in Worten gefaßt folgende Regeln:
Ein Zeichenklasse fängt mit einer öffnenden eckigen Klammer an (Terminalsymbol).
Unmittelbar hinter der Klammer kann ein Circumflex folgen (Option).
Danach muß ein Sprachkonstrukt mit dem Namen 'Literal' folgen, das in einer anderen Regel beschrieben ist (Nonterminalsymbol).
Dahinter kann (Option), mit einem Minuszeichen (Terminalsymbol) abgetrennt, erneut das Sprachkonstrukt 'Literal' folgen (Nonterminalsymbol).
Dahinter kann eine schliessende eckige Klammer (Terminalsymbol) das Sprachkonstrukt 'Zeichenklasse' beenden.
Alternativ kann aber das Sprachkonstrukt 'Literal' wiederholt werden (Wiederholung).
Unter der Annahme, daß Großbuchstaben eine gültige Repräsentation des hier nicht näher beschriebenen Sprachkonstrukts 'Literal' sind, würde dieses Diagramm folgende Ausprägungen des Sprachkonstrukts 'Zeichenklasse' zulassen: (ohne Anspruch auf Vollständigkeit)
[A]
[ABC]
[^ABC]
[A-Z]
[ABC-Z]
[A-FU-X]
Auf den nachfolgenden Seiten wird nun der Aufbau eines gültigen regulären Ausdrucks innerhalb von print2forms mit Hilfe der Syntaxdiagramme beschrieben.