code: function(analyser, className, library) {
      this.base(arguments);
      
      this.__analyser = analyser;
      this.__className = className;
      this.__metaStack = [];
      this.__metaDefinitions = {};
      this.__library = library;
      this.__sourceFilename = qx.tool.compiler.ClassFile.getSourcePath(library, className);
  
      this.__requiredClasses = {};
      this.__environmentChecks = {
        provided: {},
        required: {}
      };
      this.__requiredAssets = [];
      this.__translations = [];
      this.__markers = [];
      this.__haveMarkersFor = {};
  
      this.__scope = {
        parent: null,
        vars: {},
        unresolved: {}
      };
  
      this.__taskQueueDrains = [];
      this.__taskQueue = async.queue(function(task, cb) {
        task(cb);
      });
      this.__taskQueue.drain = this._onTaskQueueDrain;
      this.__taskQueue.error = err => {
        this.error(err.stack||err);
      };
    }
docs: Constructor
  
  @param analyser {Analyser} the Analyser that found the file
  @param className {String} the full name of the class
  @param library {Library} the Library the class belongs to (note that the class name is
  not always enough to identify the library, eg private source files such as qxWeb.js)