# File lib/less/parser.rb, line 17
    def initialize(options = {})
      # LeSS supported _env_ options :
      # 
      # - paths (unmodified) - paths to search for imports on
      # - optimization - optimization level (for the chunker)
      # - mime (browser only) mime type for sheet import
      # - contents (browser only)
      # - strictImports
      # - dumpLineNumbers - whether to dump line numbers
      # - compress - whether to compress
      # - processImports - whether to process imports. if false then imports will not be imported
      # - relativeUrls (true/false) whether to adjust URL's to be relative
      # - errback (error callback function)
      # - rootpath string
      # - entryPath string
      # - files (internal) - list of files that have been imported, used for import-once
      # - currentFileInfo (internal) - information about the current file - 
      #   for error reporting and importing and making urls relative etc :
      #     this.currentFileInfo = {
      #        filename: filename,
      #        relativeUrls: this.relativeUrls,
      #        rootpath: options.rootpath || "",
      #        currentDirectory: entryPath,
      #        entryPath: entryPath,
      #        rootFilename: filename
      #     };
      #
      env = {}
      Less.defaults.merge(options).each do |key, val|
        env[key.to_s] = 
          case val
          when Symbol, Pathname then val.to_s
          when Array
            val.map!(&:to_s) if key.to_sym == :paths # might contain Pathname-s
            val # keep the original passed Array
          else val # true/false/String/Method
          end
      end
      @parser = Less::JavaScript.exec { Less['Parser'].new(env) }
    end