# File lib/librarian/lockfile/parser.rb, line 23
      def parse(string)
        lines = string.lines.map{|l| l.sub(/\s+\z/, '')}.reject(&:empty?)
        sources = extract_and_parse_sources(lines)
        manifests = compile(sources)
        manifests_index = Hash[manifests.map{|m| [m.name, m]}]
        raise StandardError, "Expected DEPENDENCIES topic!" unless lines.shift == "DEPENDENCIES"
        dependencies = extract_and_parse_dependencies(lines, manifests_index)
        Resolution.new(dependencies, manifests)
      end