Почему подобная грамматика antrl2 не дает предупреждения о недетерминированности?
Я пытаюсь создать antlr грамматику для разбора комментариев Javadoc. Я использую ANTLR v2.
Почему первая грамматика выдает предупреждения о недетерминированности, а вторая - нет? Я думал, что они похожи.
Первая грамматика:
class TestParser extends Parser;
options {
buildAST = true;
k = 2;
}
startRule: START TEXT END;
class TestLexer extends Lexer;
options {
k = 2;
}
START: "/**";
END: "*/";
TEXT: (
{LA(2)!='/'}? '*'
| ~('*')
)+;
Предупреждения:
warning:lexical nondeterminism between rules START and TEXT upon k==1:'/' k==2:'*' warning:lexical nondeterminism between rules END and TEXT upon k==1:'*' k==2:'/'
Вторая грамматика:
class TestParser extends Parser;
options {
buildAST = true;
k = 2;
}
startRule: "/**" TEXT "*/";
class TestLexer extends Lexer;
options {
k = 2;
}
TEXT: (
{LA(2)!='/'}? '*'
| ~('*')
)+;