Аз съм нов в Antlr4 и от няколко дни си разбивам мозъка за поведение, което просто не разбирам. Имам следната комбинирана граматика и очаквам да се провали и да докладва грешка, но не се случва:
grammar MWE;
parse: cell EOF;
cell: WORD;
WORD: ('a'..'z')+;
Ако го захраня с входа
a4
Очаквам да не може да го анализира, защото искам да съответства на целия входен низ, а не само на част от него, както е обозначено с EOF
. Но вместо това не съобщава за грешка (слушам за грешки с errorlistener, внедряващ интерфейса IAntlrErrorListener
) и ми дава следното дърво за анализ:
(parse (cell a) <EOF>)
Защо е това?