def roots
      @_roots ||= ::Hash.new do |h, k|
        h[k] = nil
        h[k] = parse_from(k)
      end
    end
def roots
      @_roots ||= ::Hash.new do |h, k|
        h[k] = nil
        h[k] = parse_from(k)
      end
    end
A cache for all of the root nodes.  This is a regular hash; however, upon
 attempt to access an item that isn't already in the hash, it first
 parses the file at that item, and stores the result in the hash, returning
 the root node in the file.  This is to cache files so that they do not
 get reparsed multiple times.

 @return [{::Pathname => Parser::Root}]