Zum Hauptinhalt springen

3. Operators (Operatoren)

3.1. Concatenation: Rule1 Rule2 (Verkettung)

Regeln definieren geordnete Zeichenfolgen durch Aneinanderreihung von Regelnamen.

foo    =  %x61           ; a
bar = %x62 ; b
mumble = foo bar foo ; ergibt "aba"

3.2. Alternatives: Rule1 / Rule2 (Alternativen)

Der Schrägstrich trennt Alternativen: foo / bar akzeptiert entweder foo oder bar.

3.3. Incremental Alternatives: Rule1 =/ Rule2

Ermöglicht schrittweises Hinzufügen von Alternativen zu bestehenden Regeln.

3.4. Value Range Alternatives: %c##-##

Wertebereiche werden kompakt mit Bindestrich dargestellt: DIGIT = %x30-39 entspricht den Ziffern 0-9.

3.5. Sequence Group: (Rule1 Rule2)

Klammern gruppieren Elemente: elem (foo / bar) blat entspricht (elem foo blat) oder (elem bar blat).

3.6. Variable Repetition: *Rule

Der Stern-Operator gibt Wiederholungen an: <a>*<b>element bedeutet mindestens a, höchstens b Vorkommen.

3.7. Specific Repetition: nRule

<n>element bedeutet genau n Vorkommen.

3.8. Optional Sequence: [RULE]

Eckige Klammern kennzeichnen optionale Elemente: [foo bar] entspricht *1(foo bar).

3.9. Comment: ; Comment

Semikolon leitet Kommentare ein, die bis Zeilenende reichen.

3.10. Operator Precedence (Operatorrangfolge)

Rangfolge (höchste zuerst): Regelnamen/Terminalwerte → Kommentar → Wertebereich → Wiederholung → Gruppierung → Verkettung → Alternative.