Из vhdl.g
BASIC_IDENTIFIER
: LETTER ( '_' | LETTER | DIGIT )*
;
...
LETTER
: 'a'..'z' | 'A'..'Z'
;
LETTER, INTEGER и DIGIT все выглядят так, как будто они должны быть фрагментом, так как они никогда не вызываются правилами синтаксического анализатора.
fragment LETTER
: 'a'..'z' | 'A'..'Z'
;
РЕДАКТИРОВАТЬ: Как сказал Барт, поскольку BASIC_IDENTIFIER указан перед LETTER в грамматике и охватывает все случаи, которые выполняет LETTER, лексер никогда не будет создавать никаких токенов LETTER.Это то, что вызывает предупреждения.