_lintTree(ast, filename) {
    let errors = [];
    let config = this.config;

    this.plugins.filter(function(plugin) {
      return typeof plugin.value !== null &&
             typeof plugin.lint === 'function' &&
             plugin.syntax.indexOf(ast.syntax) !== -1;
    }).forEach(function(plugin) {
      let e = plugin.lint(ast, config);
      errors = errors.concat(e);
    });

    if (filename) {
      errors.map(function(error) {
        error.filename = filename;
        return error;
      });
    }

    return errors;
  }
@param {Node} ast
@param {String=} filename
@return {Array} List of errors.