public static IAstTreeNode GetNodeThatFollows(IAstTreeNode node)
        {
            if (node == null)
            {
                return null;
            }
            else
            {
                if (!node.Children.Empty())
                {
                    var firstChildNode = node.Children[0];
                    if (!_visited.Contains(firstChildNode))
                    {
                        return firstChildNode;
                    }
                }

                return node.Sibling() ?? GetNodeThatFollows(node.Parent);
            }
        }