Мой коллеж предложил мне написать шаблон посетителя для навигации по AST. Может ли кто-нибудь рассказать мне больше, как мне начать писать?
Насколько я понимаю, каждый Node в AST имел бы метод visit()
(?), который каким-то образом будет вызван (откуда?). Это говорит о моем понимании.
Чтобы упростить все, предположим, что у меня есть узлы Root
, Expression
, Number
, Op
, и дерево выглядит следующим образом:
Root
|
Op(+)
/ \
/ \
Number(5) \
Op(*)
/ \
/ \
/ \
Number(2) Number(444)
Может ли кто-нибудь подумать о том, как шаблон посетителя будет посещать это дерево для создания вывода:
5 + 2 * 444
Спасибо, Бода Сидо.