internal override void Accept(IASTVisitor visitor)
 {
     visitor.VisitEnter(this);
     foreach (var child in _children)
     {
         child.Accept(visitor);
     }
     if (HasElseBlock)
     {
         visitor.VisitElse(this);
         foreach (var ele in _elseBlock)
         {
             ele.Accept(visitor);
         }
     }
     visitor.VisitLeave(this);
 }