acorn.js 1001 B

123456789101112131415161718192021222324252627282930313233
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.parse = void 0;
  4. // This module is suitable for passing as options.parser when calling
  5. // recast.parse to process JavaScript code with Acorn:
  6. //
  7. // const ast = recast.parse(source, {
  8. // parser: require("recast/parsers/acorn")
  9. // });
  10. //
  11. var util_1 = require("../lib/util");
  12. function parse(source, options) {
  13. var comments = [];
  14. var tokens = [];
  15. var ast = require("acorn").parse(source, {
  16. allowHashBang: true,
  17. allowImportExportEverywhere: true,
  18. allowReturnOutsideFunction: true,
  19. ecmaVersion: (0, util_1.getOption)(options, "ecmaVersion", 8),
  20. sourceType: (0, util_1.getOption)(options, "sourceType", "module"),
  21. locations: true,
  22. onComment: comments,
  23. onToken: tokens,
  24. });
  25. if (!ast.comments) {
  26. ast.comments = comments;
  27. }
  28. if (!ast.tokens) {
  29. ast.tokens = tokens;
  30. }
  31. return ast;
  32. }
  33. exports.parse = parse;