public void Append(GenericNode node)
        {
            var head = Head;

            GenericNodeTree.AddChild(ref head, ref node);
            Size++;
        }
        private GenericNode BuildGenericTree(CSharpNode head)
        {
            GenericNode node = CreateGenericNode(head);

            _size++;

            ProcessLinking(head);

            foreach (var cSharpNode in head.Children)
            {
                GenericNode child = BuildGenericTree(cSharpNode);
                GenericNodeTree.AddChild(ref node, ref child);
                _size++;
            }
            return(node);
        }