Итогом работы парсера является дерево разбора (parse tree), включающее в себя части грамматики, не имеющие практически никакого значения для последующих этапов компиляции - различного рода скобки, токены для начала/конца массивов и так далее.
Если я правильно понимаю, дальнейшая работа компилятора основывается на абстрактном синтаксическом дереве (abstract syntax tree), в котором значительное число вспомогательных конструкций отсутствует и само представление кода сильно упрощено.
В тех книгах которые я читал рассматриваются различные алгоритмы разбора (LL, LR, LALR и т.д.), позволяющие получить дерево разбора и внутреннее представление (абстрактное синтаксическое дерево) но не рассматриваются алгоритмы по переводу одного в другое.
Не могли бы вы порекомендовать литературу по алгоритмам, нацеленным на "переписывание" одного дерева в другое. Я скорее всего смогу реализовать что-то свое, все же задача не настолько сложная, но возможно есть какие-то книги/статьи где уже это рассмотрено.