ну я хз что конкретно такое АСТ, если честно. у меня несколько шагов.
1. Парсинг в дерево - пересобирание текста в в дерево токенов.
2. Поиск сигнатур, типов, добавление их в скоуп.
3. Преобразование остального дерева в новый с тайп-чеком в этот же момент.
4. (пока что нету) преобразование полученного дерева в какой-то байт-код.
чтобы на этапе 3 и 4 не бегать по скоупам в поисках объекта с нужным идентификатором, решил положить ссылку на объект рядом с идентификатором в ноде.
может делаю что-то неправильно, если да, интересно послушать.