/* In dieser Datei wird die abstrakte Struktur von VREX spezifiziert */ LANGUAGE "VREX - Visual regular expressions": EXTENSION "vrex.vle"; RULE: ROOT ::= Find END; RULE: Find ::= PatternConcat END; RULE: PatternConcat ::= Pattern* END; /* Zeichenkette ============ */ RULE pString: Pattern ::= String END; RULE: String ::= END; SYMBOL String: persValue: VLString EDITWITH ENTRY; /* Alternative =========== */ RULE pAlternative: Pattern ::= Alternative END; RULE: Alternative ::= AlternativePattern{2} END; RULE pAltPattern: AlternativePattern ::= PatternConcat END; /* Wiederholung ============ */ RULE pRepetition: Pattern ::= Repetition END; RULE: Repetition ::= RepetitionBody RepetitionRange END; RULE: RepetitionBody ::= PatternConcat END; RULE: RepetitionRange ::= END; SYMBOL RepetitionRange: persStart: VLString EDITWITH ENTRY, persEnd: VLString EDITWITH ENTRY; /* Zeichen-Intervall ================= */ RULE pCharInterval: Pattern ::= CharInterval END; RULE: CharInterval ::= END; SYMBOL CharInterval: persLowerBoundCoding: VLInt EDITWITH OPTION ("character","octal", "decimal", "hexadecimal"), persLowerBound: VLString EDITWITH ENTRY, persUpperBoundCoding: VLInt EDITWITH OPTION ("character","octal", "decimal", "hexadecimal"), persUpperBound: VLString EDITWITH ENTRY; /* Einschraenkung ============== */ RULE pRestriction: Pattern ::= Restriction END; RULE: Restriction ::= RestrictionPositive RestrictionNegative END; RULE: RestrictionPositive ::= PatternConcat END; RULE: RestrictionNegative ::= PatternConcat END; /* Vordefinierete Muster ===================== */ RULE pAnyChar: Pattern ::= AnyChar END; RULE pNewline: Pattern ::= Newline END; RULE pTab: Pattern ::= Tab END; RULE pWordStart: Pattern ::= WordStart END; RULE pWordEnd: Pattern ::= WordEnd END; RULE pLineStart: Pattern ::= LineStart END; RULE pLineEnd: Pattern ::= LineEnd END; RULE: Tab ::= END; RULE: AnyChar ::= END; RULE: Newline ::= END; RULE: WordStart ::= END; RULE: WordEnd ::= END; RULE: LineStart ::= END; RULE: LineEnd ::= END;