   else
     json_spec = new JSONSpec()
     spec = json_spec.load_spec process.argv[2]
-    # console.log spec
     if process.argv.length >= 4
       data = Util.load_json_file_sync(process.argv[3])
     else

      return dst

  validate:(spec,data,path=[],error_listener)=>
    # console.log "validate",JSON.stringify(spec)
    error_listener ?= new ErrorReporter()
    valid = true
    path ?= []

        else
          @_emit_validation_error(error_listener,data,spec,'unexpected',path,v,k)

  _validate_attribute:(spec,attr,path,error_listener)=>
    if Array.isArray(spec)
      error_collector = new ErrorCollector()
      for alt,i in spec
        if @_validate_attribute(alt,attr,path,error_collector)
          return true
      @_emit_validation_error(error_listener,attr,spec,'no-matching-alt',path,attr,error_collector.errors)
