def search(text)
      nodes = parser.parse(text)
      nodes.length.times.map do |index|
        Song.new(nodes[index..-1], rule: @rule)
      end.select(&:valid?)
    end
def search(text)
      nodes = parser.parse(text)
      nodes.length.times.map do |index|
        Song.new(nodes[index..-1], rule: @rule)
      end.select(&:valid?)
    end
Search all valid songs from given text.
 @return [Array<Array>]