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.