/// <summary>
        /// Parse the reaper file.
        /// </summary>
        /// <returns>The top node.</returns>
        /// <param name="parent">Parent.</param>
        /// <param name="parser">The parsing ReaperParser.</param>
        private ReaperNode Parse(ReaperNode parent, ReaperParser parser)
        {
            string cl = contentLines[currentLine];

            if (cl.Contains("<"))
            {
                var newNode = new ReaperNode(cl, parent, parser); // Create a new Node
                if (currentNode != null)                          // only happens for the first line <REAPER_PROJECT
                {
                    currentNode.addChild(newNode);
                }
                currentNode = newNode;                      // Set the current node
            }
            else if (cl.Contains(">"))
            {
                currentNode = currentNode.parent != null ? currentNode.parent : currentNode;
            }
            else if (currentNode != null)
            {
                currentNode.addChild(new ReaperNode(cl, currentNode, parser));
            }

            currentLine++;

            if (currentLine < contentLines.Length)
            {
                Parse(currentNode, this);
            }

            return(currentNode);
        }