"Wählen Sie" "A" "für alle Bereiche." ist der String und meine Grammatikregel für String ist STRING: '\ "'. * '\"'; es ging nicht so, wie ich dachte und aufhörte, bis ich "wähle". Welche Regel kann ich schreiben, um die obige Eingabe zu akzeptieren?Antlr Grammatik für eine Zeichenfolge in einer Zeichenfolge
1
A
Antwort
1
So etwas wie dies tun würde, den Trick:
STRING
: '"' (~["] | '""')* '"'
;
Beachten Sie, dass die Regel oben auch Zeilenumbrüche in Ihrem Stringliteral akzeptieren würde. Wenn Sie das nicht möchten, geben Sie \r\n
in den negierten Satz ein:
STRING
: '"' (~["\r\n] | '""')* '"'
;