Я пытаюсь понять, как применить шаблон посетителя, когда у меня есть AST, сгенерированный из грамматики ANTLR. Это другой подход, чем обход дерева?
Например, предположим, что у меня есть следующий AST (Из этого вопроса):
Если я хочу добавить идентификаторы FUNDEF ко всем его идентификаторам VARDECL, мой подход состоит в том, чтобы выполнить обход дерева, чтобы найти все VARDECL внутри BLOCK, добавить новый дочерний элемент с (FUNDEF id + old_name) и удалить старый.
Является ли это правильным подходом или как-то лучше всего сработает шаблон посетителя? Если шаблон посетителя, каким будет пример кода в этом конкретном случае?
Заранее спасибо!