На enter
у вас не будет готового для анализа всего (под) дерева разбора. Вместо этого используйте вариант exit
или (еще лучше) выполнить этап после анализа (часто называемый фазой semanti c), чтобы извлечь информацию такого рода.
Как только у вас будет полное (под) дерево Вы можете получить доступ к члену ID
в контексте identifier
, который является массивом, если может появиться более одного вхождения указанного правила или токена c. Повторите это, чтобы получить отдельные дочерние элементы.
Чтобы получить информацию о столбце для ID
, используйте тот факт, что для лексерных токенов вызов getChild()
возвращает экземпляр TerminalNode
(вы должны привести результат к этому). Оттуда вызовите getSymbol()
, который даст вам экземпляр Token
, который, в свою очередь, содержит всю информацию для указанного c токена, такого как текст, канал, столбец, строка, тип et c.