Я собираюсь использовать ANTLR 4.5.3 для перевода одной нотации на другую. Я уже разработал описание грамматики, используя плагин в IntelliJ IDEA.Как получить AltNumber в ANTLR?
В моей грамматике одно правило имеет несколько альтернатив.
Когда я смотрю результаты в «Дерево парсов», каждый узел состоит из «имени правила»: «номер строки».
Как получить эту информацию с помощью API? Если я это четко понимаю, номер строки можно получить из getAltNumber(), но это поле пуст.
http://www.antlr.org/api/Java/org/antlr/v4/runtime/RuleContext.html#getAltNumber()
В документации сказано, что реализация по умолчанию не вычисляет и не хранить этот альт Num.
Как получить эту информацию?
Использование «альтернативной маркировки» (TDAR pg 117, 261) было бы лучшим подходом. В противном случае подкласс, предложенный документом '# getAltNumber' - FWIW, никогда не нуждался в этом. – GRosenberg
Вы уверены, что номер строки означает номер альт? Мне кажется, что это будет номер строки в исходном коде. Но тогда я не знаю вывод IntelliJ для грамматик ANTLR. Если вам нужен номер строки, ну, вызовите getLine() :-) –