У меня есть такая ситуация, когда нужно рассматривать целое число как идентификатор.
Основной синтаксис языка (к сожалению) позволяет это.
Грамматический отрывок:
grammar Alang;
...
NLITERAL : [0-9]+ ;
...
IDENTIFIER : [a-zA-Z0-9_]+ ;
Пример кода, с которым нужно иметь дело:
/** declaration block **/
Method 465;
...
В приведенном выше примере кода, поскольку необходимо поместить NLITERAL
до IDENTIFIER
парсер выбирает 465
как NLITERAL
.
Какой хороший способ справиться с такими ситуациями?
(В идеале, избегая кода приложения в грамматике, чтобы сохранить его во время выполнения c)
Я нашел похожие вопросы на ТАК, не совсем полезно, хотя.