Я спокойный новичок в ANTLR и некоторое время оглядывался по сторонам, чтобы решить мою проблему. К сожалению, безуспешно ...
Я упростил свою грамматику для описания проблемы (в реальном примере используется токен TAG):
grammar Test;
WORD : ('a'..'z')+;
DOT : '.';
TAG : '.test';
WHITE_SPACE
: (' '|'\t'|'\n'|'\r')+ {$channel = HIDDEN;};
rule
: 'a' DOT WORD 'z';
Когда я пытаюсь разобрать слово "a .bcd z", все в порядке, но когда я пробую слово "a .tbyfa z", оно показывает мне ошибку
line 1:4 mismatched character 'b' expecting 'e'
line 1:5 missing DOT at 'yfa'
На мой взгляд, проблема в том, что строка после "." начинается с буквы "t", которая также может быть токеном ".test". Я попытался вернуться = true, но также безуспешно.
Как я могу решить эту проблему?
Заранее спасибо.