def prepare(opt={})
      throw :ConfigInstanceAlreadyPrepared if @prepared && !opt[:force_reset]
      @prepared = true
      @fullpaths = opt[:fullpaths]
      @project_path = nil
      @project_generator_path = nil
      @project_plugin_path = nil
      @project_template_path = nil
      @generator_path = []
      @plugin_path = []
      @template_path = []
      @plugins = {}
      @target_language = Language.new
      @active_languages = [Language.new] # active language stack
      @language = {}
      @language_extension_map = {}
      
      process_cogfiles opt
      post_cogfile_processing
      build_language_extension_map
    end
def prepare(opt={})
      throw :ConfigInstanceAlreadyPrepared if @prepared && !opt[:force_reset]
      @prepared = true
      @fullpaths = opt[:fullpaths]
      @project_path = nil
      @project_generator_path = nil
      @project_plugin_path = nil
      @project_template_path = nil
      @generator_path = []
      @plugin_path = []
      @template_path = []
      @plugins = {}
      @target_language = Language.new
      @active_languages = [Language.new] # active language stack
      @language = {}
      @language_extension_map = {}
      
      process_cogfiles opt
      post_cogfile_processing
      build_language_extension_map
    end
Must be called once before using cog.
 In the context of a command-line invocation, this method will be called automatically. Outside of that context, for example in a unit test, it will have to be called manually.
 @option opt [Boolean] :fullpaths (false) when listing files, full paths should be shown
 @option opt [Boolean] :minimal (false) only load the built-in Cogfile
 @option opt [String] :project_cogfile_path (nil) explicitly specify the location of the project {DSL::Cogfile}. If not provided, it will be searched for. If none can be found, {#project?} will be +false+