2012-04-01 4 views
1

Мне нужно обработать АСТ языка, и посетитель на дереве просто решает это хорошо. однако некоторые функции потребуют, чтобы я сохранил какой-то стек (стек известных переменных) в постоянном контексте посетителей, который расширяется и уменьшается по мере продвижения по ходу посещения. Разрывает ли он шаблон посетителя?Состояние штабеля у посетителя нарушает шаблон посетителя?

ответ

2

Посетители могут собирать информацию во время своих посещений - фактически реализация Visit - это состояние добавления, которое может потребоваться при сложных операциях (например, когда узлы дерева выражений находятся далеко друг от друга и все еще должны знать друг о друге) ... Таким образом, можно с уверенностью сказать, что вы можете хранить состояние (даже в виде стека) в Visitor, пока вы не храните какую-либо информацию непосредственно на обработанных/посещенных узлах.

Смежные вопросы