class Origami::FDF::Parser

def parse(stream) #:nodoc:

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