# File lib/sass/files.rb, line 19
    def tree_for(filename, options)
      default_options = Sass::Engine::DEFAULT_OPTIONS.dup
      default_options.delete(:syntax)
      options = default_options.merge!(options)
      text = File.read(filename)

      if options[:cache] || options[:read_cache]
        compiled_filename = sassc_filename(filename, options)
        sha = Digest::SHA1.hexdigest(text)

        if root = try_to_read_sassc(filename, compiled_filename, sha)
          root.options = options.merge(:filename => filename)
          return root
        end
      end

      options = options.merge(:filename => filename)
      if filename =~ /\.scss$/
        options = {:syntax => :scss}.merge(options)
      elsif filename =~ /\.sass$/
        options = {:syntax => :sass}.merge(options)
      end

      engine = Sass::Engine.new(text, options)

      root = engine.to_tree
      try_to_write_sassc(root, compiled_filename, sha, options) if options[:cache]
      root
    end