# File lib/nmap/parser.rb, line 174
        def self.parseread(obj) # :yields: parser
                if not obj.respond_to?("read")
                        raise "Passed object must respond to read()"
                end

                r = obj.read

                if not r.is_a?(String)
                        raise "Passed object's read() must return a String (got #{r.class})"
                end

                new(r) { |p| yield p if block_given? }
        end