class Origami::PPKLite::Parser

def parse(stream) #:nodoc:

:nodoc:
def parse(stream) #:nodoc:
    super
    address_book = PPKLite.new(self)
    address_book.header = PPKLite::Header.parse(@data)
    @options[:callback].call(address_book.header)
    loop do
        break if (object = parse_object).nil?
        address_book.insert(object)
    end
    address_book.revisions.first.xreftable = parse_xreftable
    address_book.revisions.first.trailer = parse_trailer
    if Origami::OPTIONS[:enable_type_propagation]
        trailer = address_book.revisions.first.trailer
        if trailer[:Root].is_a?(Reference)
            address_book.cast_object(trailer[:Root], PPKLite::Catalog)
        end
        propagate_types(address_book)
    end
    address_book
end