Legende lexikalische Grammatik
In der lexikalischen Grammatik werden die elementaren Sprachelemente (
Token ), also bestimmte Klassen von Zeichenfolgen wie Zahlen, Bezeichner,
Operatoren und Strings etc. definiert.
Jede Regel definiert eine Klasse
von Zeichenfolgen und hat folgenden Aufbau: <Art der Klasse> <Name
der Klasse> :: <regulärer Ausdruck>
Es gibt vier verschiedene Arten von Klassen:
-
let
Hilfsklassen, die zur Definition der eigentlichen Sprachelemente verwendet
werden
Sie tauchen in der Sprachdefinition nicht auf.
-
com
Kommentare
Sie tauchen in der Sprachdefinition nicht auf
-
tok
Sprachelemente
Sie tauchen in der Sprachdefinition auf.
-
ign
Zeichenfolgen, die vom Scanner zu ignorieren bzw. zu überlesen
sind
Sie tauchen in der Sprachdefinition nicht auf.
Der reguläre Ausdruck beschreibt
die zur Klasse zusammengefaßten Zeichenfolgen. Für die Beschreibung
stehen folgende Elemente und Operatoren zur Verfügung:
-
Teilausdruck1 Teilausdruck2 ... TeilausdruckN
Sequenz von Teilausdrücken durch Hintereinanderschreibung
-
Teilausdruck1 | Teilausdruck2 | ... | TeilausdruckN
Vereinigung mehrerer Teilausdrücke ( Alternativen )
-
Teilausdruck1 - Teilausdruck2 - ... - TeilausdruckN
Differenz mehrerer Teilausdrücke
-
[ Teilausdruck ]
optionaler Teilausdruck
-
{ Teilausdruck }
0 - N -malige Wiederholung eines Teilausdrucks
-
Teilausdruck +
1 - N -malige Wiederholung eines Teilausdrucks
-
( Teilausdruck )
Zusammenfassung eines Teilausdrucks
-
Name einer Hilfsklasse
als Abkürzung für die zugehörigen
Zeichenfolgen
-
"String"
konstanter String / Zeichenfolge
-
'Zeichen'
ein einzelnes Zeichen
Sprachelemente, bei denen keine Unterscheidung
der Groß- und Kleinschreibung erfolgt, sind mit [I]
hinter dem Namen des Elements gekennzeichnet.
Legende kontextfreie Grammatik
Die Regeln, die die Synatx der Sprache festlegen,
liegen in EBNF ( erweitere Backus-Naur-Form ) vor. Für
jeden Dateityp existiert wenigstens eine Startregel. D.h. jede Datei muß
syntaktisch einer Startregel des betreffenden Dateityps genügen.
Alle anderen Regeln sind Hilfsregeln.
Jede Regel
ist wie folgt aufgebaut: <Art der Regel: start oder let>
<Name der Regel> :: <EBNF-Ausdruck>
Jeder EBNF-Ausdruck beschreibt die
Syntax eines Teils der Sprache und besteht aus ein oder mehreren alternativen
Produktionen bzw. Teilausdrücken, die jeweils auf einer neuen Zeile
beginnen und durch das Zeichen '|' voneinander getrennt sind.
Für die Beschreibung einer Produktion stehen folgende Elemente
und Operatoren zur Verfügung:
-
Teilausdruck1 Teilausdruck2 ... TeilausdruckN
Sequenz von Teilausdrücken durch Hintereinanderschreibung
-
Teilausdruck1 | Teilausdruck2 | ... | TeilausdruckN
Vereinigung mehrerer Teilausdrücke ( Alternativen )
-
[ Teilausdruck ]
optionaler Teilausdruck
-
{ Teilausdruck }
0 - N -malige Wiederholung eines Teilausdrucks
-
Teilausdruck +
1 - N -malige Wiederholung eines Teilausdrucks
-
( Teilausdruck )
Zusammenfassung eines Teilausdrucks
-
Name eines elementaren Sprachelements
bzw. Token
aus der lexikalischen Grammatik
-
Name einer Hilfsregel
aus der kontextfreien Grammatik
-
Schlüsselwort
konstante Zeichenfolge