///<summary>Вызвать посетителя для обхода всего дерева ///в указаном режиме order(VisitorMode:: PRE,POST IN)</summary> public void Visit(VisitorMode order, Action <Node <T> > act) { switch (order) { case VisitorMode.PRE: _visitor.PreOrder(this, act); break; case VisitorMode.POST: _visitor.PostOrder(this, act); break; case VisitorMode.IN: _visitor.InOrder(this, act); break; default: break; } }
protected AstVisitorBase(VisitorMode intitialMode) { this.PushMode(intitialMode); }
protected void PushMode(VisitorMode mode) { _modeStack.Push(mode); }
protected ScopedAstVisitorBase(VisitorMode intitialMode) : base(intitialMode) { }