1
我需要处理一种语言的AST,并且树上的访问者只是很好地解决了这个问题。但是某些功能需要我在访问者永久性上下文中保留某种堆栈(已知变量的堆栈),随着访问的进行而延长和减少。它是否打破访客模式?访客中的堆栈状态是否会破坏访客模式?
我需要处理一种语言的AST,并且树上的访问者只是很好地解决了这个问题。但是某些功能需要我在访问者永久性上下文中保留某种堆栈(已知变量的堆栈),随着访问的进行而延长和减少。它是否打破访客模式?访客中的堆栈状态是否会破坏访客模式?
访问者可以在他们的访问期间累积信息 - 事实上,访问实现是复杂操作可能需要的添加状态(例如,当表达式树节点彼此远离并且仍然需要彼此知道时) ... 因此,可以安全地说,只要您不在处理/访问的节点上存储任何类型的信息,您可以在访问者中存储一个状态(即使是堆栈的形式)