base.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _state = require('../tokenizer/state'); var _state2 = _interopRequireDefault(_state);
  2. var _charcodes = require('../util/charcodes');
  3. exports.isJSXEnabled;
  4. exports.isTypeScriptEnabled;
  5. exports.isFlowEnabled;
  6. exports.state;
  7. exports.input;
  8. exports.nextContextId;
  9. function getNextContextId() {
  10. return exports.nextContextId++;
  11. } exports.getNextContextId = getNextContextId;
  12. // eslint-disable-next-line @typescript-eslint/no-explicit-any
  13. function augmentError(error) {
  14. if ("pos" in error) {
  15. const loc = locationForIndex(error.pos);
  16. error.message += ` (${loc.line}:${loc.column})`;
  17. error.loc = loc;
  18. }
  19. return error;
  20. } exports.augmentError = augmentError;
  21. class Loc {
  22. constructor(line, column) {
  23. this.line = line;
  24. this.column = column;
  25. }
  26. } exports.Loc = Loc;
  27. function locationForIndex(pos) {
  28. let line = 1;
  29. let column = 1;
  30. for (let i = 0; i < pos; i++) {
  31. if (exports.input.charCodeAt(i) === _charcodes.charCodes.lineFeed) {
  32. line++;
  33. column = 1;
  34. } else {
  35. column++;
  36. }
  37. }
  38. return new Loc(line, column);
  39. } exports.locationForIndex = locationForIndex;
  40. function initParser(
  41. inputCode,
  42. isJSXEnabledArg,
  43. isTypeScriptEnabledArg,
  44. isFlowEnabledArg,
  45. ) {
  46. exports.input = inputCode;
  47. exports.state = new (0, _state2.default)();
  48. exports.nextContextId = 1;
  49. exports.isJSXEnabled = isJSXEnabledArg;
  50. exports.isTypeScriptEnabled = isTypeScriptEnabledArg;
  51. exports.isFlowEnabled = isFlowEnabledArg;
  52. } exports.initParser = initParser;