Ich folgte den Anweisungen für die Fehlerbehandlung auf der Website Antlr http://www.antlr2.org/doc/err.html (es sagt Antlr2, aber ich konnte keine Alternative für Antlr4 finden) und schrieb die Ausnahmebehandlung für meine Regel wie folgt.Antlr4 Fehlerbehandlung kompiliert nicht
subStmt :
(visibility WS)? (STATIC WS)? SUB WS? ambiguousIdentifier (WS? argList)? endOfStatement
block?
END_SUB
;
exception
catch [RecognitionException ex] {
}
Aber wenn ich versuche, den Parser für die Grammatik zu erzeugen, scheitert es wie folgt: java -jar ../Downloads/antlr-4.7-complete.jar vba.g4 -package vba -o out Fehler (50): vba.g4: 500: 4: syntax error: 'catch' kam für mich völlig überraschend, während die Regelpräambel
Jede Hilfe wird sehr geschätzt.
Dieses Beispiel scheint sehr kompliziert. Mein Fall könnte sein, Fehler in einer Regel einfach zu ignorieren (ich muss eine Eingabe mit Fehlern akzeptieren). Gibt es keine antlr4-Fehlerbehandlung? –
@HughDarling Schön genug - ich habe meine Antwort ein wenig erweitert. – janm