Разве состояние стека в посетителе нарушает шаблон посетителя? - PullRequest
1 голос
/ 01 апреля 2012

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

1 Ответ

2 голосов
/ 20 апреля 2012

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

...