code: function analyzeScope(ast, parserOptions, visitorKeys) {
      const ecmaFeatures = parserOptions.ecmaFeatures || {};
      const ecmaVersion = parserOptions.ecmaVersion || 5;
  
      return eslintScope.analyze(ast, {
          ignoreEval: true,
          nodejsScope: ecmaFeatures.globalReturn,
          impliedStrict: ecmaFeatures.impliedStrict,
          ecmaVersion,
          sourceType: parserOptions.sourceType || "script",
          childVisitorKeys: visitorKeys || evk.KEYS,
          fallback: Traverser.getKeys
      });
  }
docs: Analyze scope of the given AST.
  @param {ASTNode} ast The `Program` node to analyze.
  @param {Object} parserOptions The parser options.
  @param {Object} visitorKeys The visitor keys.
  @returns {ScopeManager} The analysis result.