4 Stimmen

ANTLR, wie man fehlerhafte Daten am Ende der Eingabe erkennt

Wenn ich in ANTLR geschriebene Grammatiken verwende, erkennt der Parser die Daten aus einem Eingabestrom korrekt, aber wenn ich am Ende der Eingabe einen unsinnigen Text habe (der nicht von der Grammatik geparst werden soll), beschwert sich der Parser nicht.

Ich denke, dieses Verhalten ist in Ordnung (ich meine, der Parser hat seine Arbeit getan und analysiert, was ich sagte, es sollte analysieren), aber gibt es irgendeinen Trick zu erkennen, wenn es irgendwelche Daten in der Eingabe übrig ist, nachdem der Parser seine Arbeit getan hat?

Danke.

4voto

Bart Kiers Punkte 160101

Als Scott die bereits auf der ANTLR-Mailingliste beantwortet wurden:

Hallo,

Bei der Verwendung von Grammatiken, die in ANTLR geschrieben wurden, erkennt der Parser korrekt Daten aus einem Eingabestrom, aber wenn ich am Ende der Eingabe einen der Eingabe habe (welcher Mülltext nicht von der Grammatik geparst werden soll) beschwert sich der Parser nicht.

Ich denke, dieses Verhalten ist in Ordnung (ich meine, der Parser hat seine Arbeit getan und was ich gesagt habe, dass er parsen soll), aber gibt es irgendeinen Trick, um zu erkennen, wann es Daten in der Eingabe übrig sind, nachdem der Parser seine Arbeit getan hat?

Danke! Gabi.

Fügen Sie am Ende der Startregel ein EOF-Token ein

-- Scott

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X