Я не могу понять, почему эта простая грамматика -
grammar Test; file : ID; ID : .*;
приводит к этой ошибке -
Test.g:3:6: The following alternatives can never be matched: 1
Почему это происходит?
Использование .* и .+ в конце правила лексера недопустимо в ANTLR:
.*
.+
ID : .*; // illegal ID : 'bar' .*; // illegal ID : .* 'bar'; // legal
В правилах синтаксического анализа это не так.