| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | 
							- "use strict";
 
- var babylonToEspree = require("./babylon-to-espree");
 
- var parse = require("babylon").parse;
 
- var tt = require("babylon").tokTypes;
 
- var traverse = require("@babel/traverse").default;
 
- var codeFrameColumns = require("@babel/code-frame").codeFrameColumns;
 
- module.exports = function(code, options) {
 
-   var opts = {
 
-     codeFrame: options.hasOwnProperty("codeFrame") ? options.codeFrame : true,
 
-     sourceType: options.sourceType,
 
-     allowImportExportEverywhere: options.allowImportExportEverywhere, // consistent with espree
 
-     allowReturnOutsideFunction: true,
 
-     allowSuperOutsideMethod: true,
 
-     ranges: true,
 
-     tokens: true,
 
-     plugins: [
 
-       "flow",
 
-       "jsx",
 
-       "estree",
 
-       "asyncFunctions",
 
-       "asyncGenerators",
 
-       "classConstructorCall",
 
-       "classProperties",
 
-       "decorators",
 
-       "doExpressions",
 
-       "exponentiationOperator",
 
-       "exportDefaultFrom",
 
-       "exportNamespaceFrom",
 
-       "functionBind",
 
-       "functionSent",
 
-       "objectRestSpread",
 
-       "trailingFunctionCommas",
 
-       "dynamicImport",
 
-       "numericSeparator",
 
-       "optionalChaining",
 
-       "importMeta",
 
-       "classPrivateProperties",
 
-       "bigInt",
 
-       "optionalCatchBinding",
 
-       "throwExpressions",
 
-       "pipelineOperator",
 
-       "nullishCoalescingOperator",
 
-     ],
 
-   };
 
-   var ast;
 
-   try {
 
-     ast = parse(code, opts);
 
-   } catch (err) {
 
-     if (err instanceof SyntaxError) {
 
-       err.lineNumber = err.loc.line;
 
-       err.column = err.loc.column;
 
-       if (opts.codeFrame) {
 
-         err.lineNumber = err.loc.line;
 
-         err.column = err.loc.column + 1;
 
-         // remove trailing "(LINE:COLUMN)" acorn message and add in esprima syntax error message start
 
-         err.message =
 
-           "Line " +
 
-           err.lineNumber +
 
-           ": " +
 
-           err.message.replace(/ \((\d+):(\d+)\)$/, "") +
 
-           // add codeframe
 
-           "\n\n" +
 
-           codeFrameColumns(
 
-             code,
 
-             {
 
-               start: {
 
-                 line: err.lineNumber,
 
-                 column: err.column,
 
-               },
 
-             },
 
-             { highlightCode: true }
 
-           );
 
-       }
 
-     }
 
-     throw err;
 
-   }
 
-   babylonToEspree(ast, traverse, tt, code);
 
-   return ast;
 
- };
 
 
  |