Кажется, следующее правило не будет работать в antlr4
testSetLabel
: (flags+=( 'A' | 'B' | 'C' | 'D' ))* ;
Это даст эту ошибку:
TestSetLabelParser.java:69: error: incompatible types
((TestSetLabelContext)_localctx).flags = _input.LT(1);
^
required: List<Token>
found: Token
Если я изменю правило на это:
testSetLabel2
: ( flags+= 'A' | flags+='B' | flags+='C' | flags+='D' )* ;
Я получаю предупреждение: "Ярлык фактора не установлен"
Это ошибка или ожидаемое поведение?