     1→import { type Location } from './common';
     2→import { type _Node, type SourceLocation } from './estree';
     3→
     4→export const enum Errors {
     5→  Unexpected,
     6→  StrictOctalEscape,
     7→  TemplateOctalLiteral,
     8→  TemplateEightAndNine,
     9→  InvalidPrivateIdentifier,
    10→  InvalidUnicodeEscapeSequence,
    11→  InvalidCodePoint,
    12→  InvalidHexEscapeSequence,
    13→  StrictDecimalWithLeadingZero,
    14→  StrictOctalLiteral,
    15→  ExpectedNumberInRadix,
    16→  MissingExponent,
    17→  InvalidBigInt,
    18→  IDStartAfterNumber,
    19→  InvalidEightAndNine,
    20→  StrictEightAndNine,
    21→  UnterminatedString,
    22→  UnterminatedTemplate,
    23→  UnterminatedComment,
    24→  InvalidDynamicUnicode,
    25→  IllegalCharacter,
    26→  MissingHexDigits,
    27→  InvalidImplicitOctal,
    28→  InvalidStringLT,
    29→  InvalidEscapeIdentifier,
    30→  ExpectedToken,
    31→  CantAssignTo,
    32→  InvalidLHSAsyncArrow,
    33→  SuperNoConstructor,
    34→  InvalidSuperProperty,
    35→  UnexpectedToken,
    36→  AwaitInParameter,
    37→  YieldInParameter,
    38→  InvalidExponentiationLHS,
    39→  UnterminatedRegExp,
    40→  UnexpectedTokenRegExpFlag,
    41→  DuplicateRegExpFlag,
    42→  AccessorWrongArgs,
    43→  BadSetterRestParameter,
    44→  DeclNoName,
    45→  StrictFunctionName,
    46→  RestMissingArg,
    47→  InvalidGeneratorGetter,
    48→  InvalidGeneratorSetter,
    49→  InvalidComputedPropName,
    50→  InvalidGetSetGenerator,
    51→  InvalidAsyncGetter,
    52→  InvalidGenMethodShorthand,
    53→  InvalidLineBreak,
    54→  InvalidArrowDestructLHS,
    55→  InvalidBindingDestruct,
    56→  InvalidAsyncArrow,
    57→  StaticPrototype,
    58→  InvalidConstructor,
    59→  DuplicateConstructor,
    60→  InvalidIncDecTarget,
    61→  InvalidIncDecNew,
    62→  InvalidAssignmentTarget,
    63→  InvalidRestTrailing,
    64→  DeclarationMissingInitializer,
    65→  ForInOfLoopInitializer,
    66→  ForInOfLoopMultiBindings,
    67→  InvalidShorthandPropInit,
    68→  DuplicateProto,
    69→  InvalidLetBoundName,
    70→  InvalidNewUnary,
    71→  IllegalUseStrict,
    72→  DisallowedLetInStrict,
    73→  IllegalContinue,
    74→  IllegalBreak,
    75→  InvalidLetBracket,
    76→  InvalidDestructuringTarget,
    77→  RestDefaultInitializer,
    78→  InvalidRestNotLast,
    79→  InvalidRestArg,
    80→  InvalidRestDefault,
    81→  StrictFunction,
    82→  SloppyFunction,
    83→  WebCompatFunction,
    84→  ClassForbiddenAsStatement,
    85→  CantAssignToInOfForLoop,
    86→  InvalidAssignmentInOfForLoop,
    87→  InvalidForAwait,
    88→  InvalidTemplateContinuation,
    89→  RestrictedLetProduction,
    90→  UnexpectedLetStrictReserved,
    91→  InvalidCatchParams,
    92→  InvalidCatchParamDefault,
    93→  NoCatchOrFinally,
    94→  MultipleDefaultsInSwitch,
    95→  NewlineAfterThrow,
    96→  StrictWith,
    97→  IllegalReturn,
    98→  InvalidForLHSBinding,
    99→  InvalidNewTarget,
   100→  InvalidEscapedKeyword,
   101→  MissingPrivateIdentifier,
   102→  DisallowedInContext,
   103→  AwaitOutsideAsync,
   104→  InvalidStrictLet,
   105→  InvalidLetConstBinding,
   106→  InvalidLetClassName,
   107→  KeywordNotId,
   108→  InvalidImportExportSloppy,
   109→  UnicodeOverflow,
   110→  InvalidExportImportSource,
   111→  InvalidKeywordAsAlias,
   112→  InvalidDefaultImport,
   113→  TrailingDecorators,
   114→  GeneratorConstructor,
   115→  AwaitIdentInModuleOrAsyncFunc,
   116→  YieldIdentInModule,
   117→  HtmlCommentInWebCompat,
   118→  StrictInvalidLetInExprPos,
   119→  NotAssignableLetArgs,
   120→  ForOfLet,
   121→  InvalidInvokedBlockBodyArrow,
   122→  InvalidAccessedBlockBodyArrow,
   123→  UnexpectedStrictReserved,
   124→  StrictEvalArguments,
   125→  InvalidDecoratorSemicolon,
   126→  StrictDelete,
   127→  InvalidPatternTail,
   128→  AsyncFunctionInSingleStatementContext,
   129→  InvalidTernaryYield,
   130→  InvalidArrowPostfix,
   131→  InvalidObjLitKeyStar,
   132→  DeletePrivateField,
   133→  InvalidStaticClassFieldConstructor,
   134→  InvalidClassFieldConstructor,
   135→  InvalidClassFieldArgEval,
   136→  InvalidGeneratorFunction,
   137→  AsyncRestrictedProd,
   138→  UnexpectedCharAfterObjLit,
   139→  InvalidObjLitKey,
   140→  InvalidKeyToken,
   141→  LabelRedeclaration,
   142→  InvalidNestedStatement,
   143→  UnknownLabel,
   144→  InvalidImportTail,
   145→  InvalidJSONImportBinding,
   146→  ImportNotOneArg,
   147→  InvalidImportNew,
   148→  InvalidSpreadInImport,
   149→  IncompleteArrow,
   150→  DuplicateBinding,
   151→  DuplicatePrivateIdentifier,
   152→  DuplicateExportBinding,
   153→  UndeclaredExportedBinding,
   154→  UnexpectedPrivateField,
   155→  DuplicateLetConstBinding,
   156→  CantAssignToValidRHS,
   157→  ContinuousNumericSeparator,
   158→  TrailingNumericSeparator,
   159→  InvalidJSXAttributeValue,
   160→  ExpectedJSXClosingTag,
   161→  AdjacentJSXElements,
   162→  InvalidNonEmptyJSXExpr,
   163→  DuplicateIdentifier,
   164→  ShadowedCatchClause,
   165→  InvalidDotProperty,
   166→  UnclosedSpreadElement,
   167→  CatchWithoutTry,
   168→  FinallyWithoutTry,
   169→  UnCorrespondingFragmentTag,
   170→  InvalidCoalescing,
   171→  OptionalChainingNoTemplate,
   172→  OptionalChainingNoSuper,
   173→  OptionalChainingNoNew,
   174→  ImportMetaOutsideModule,
   175→  InvalidLeadingDecorator,
   176→  InvalidExportName,
   177→  InvalidExportReference,
   178→  InvalidSuperPrivate,
   179→  InvalidImportMeta,
   180→  InvalidEscapedImportMeta,
   181→  InvalidAwaitAsIdentifier,
   182→  InvalidAwaitInStaticBlock,
   183→}
   184→
   185→const errorMessages: {
   186→  [key: string]: string;
   187→} = {
   188→  [Errors.Unexpected]: 'Unexpected token',
   189→  [Errors.UnexpectedToken]: "Unexpected token: '%0'",
   190→  [Errors.StrictOctalEscape]: 'Octal escape sequences are not allowed in strict mode',
   191→  [Errors.TemplateOctalLiteral]: 'Octal escape sequences are not allowed in template strings',
   192→  [Errors.TemplateEightAndNine]: '\\8 and \\9 are not allowed in template strings',
   193→  [Errors.InvalidPrivateIdentifier]: 'Private identifier #%0 is not defined',
   194→  [Errors.InvalidUnicodeEscapeSequence]: 'Illegal Unicode escape sequence',
   195→  [Errors.InvalidCodePoint]: 'Invalid code point %0',
   196→  [Errors.InvalidHexEscapeSequence]: 'Invalid hexadecimal escape sequence',
   197→  [Errors.StrictOctalLiteral]: 'Octal literals are not allowed in strict mode',
   198→  [Errors.StrictDecimalWithLeadingZero]: 'Decimal integer literals with a leading zero are forbidden in strict mode',
   199→  [Errors.ExpectedNumberInRadix]: 'Expected number in radix %0',
   200→  [Errors.CantAssignToValidRHS]: 'Invalid left-hand side assignment to a destructible right-hand side',
   201→  [Errors.MissingExponent]: 'Non-number found after exponent indicator',
   202→  [Errors.InvalidBigInt]: 'Invalid BigIntLiteral',
   203→  [Errors.IDStartAfterNumber]: 'No identifiers allowed directly after numeric literal',
   204→  [Errors.InvalidEightAndNine]: 'Escapes \\8 or \\9 are not syntactically valid escapes',
   205→  [Errors.StrictEightAndNine]: 'Escapes \\8 or \\9 are not allowed in strict mode',
   206→  [Errors.UnterminatedString]: 'Unterminated string literal',
   207→  [Errors.UnterminatedTemplate]: 'Unterminated template literal',
   208→  [Errors.UnterminatedComment]: 'Multiline comment was not closed properly',
   209→  [Errors.InvalidDynamicUnicode]: 'The identifier contained dynamic unicode escape that was not closed',
   210→  [Errors.IllegalCharacter]: "Illegal character '%0'",
   211→  [Errors.MissingHexDigits]: 'Missing hexadecimal digits',
   212→  [Errors.InvalidImplicitOctal]: 'Invalid implicit octal',
   213→  [Errors.InvalidStringLT]: 'Invalid line break in string literal',
   214→  [Errors.InvalidEscapeIdentifier]: 'Only unicode escapes are legal in identifier names',
   215→  [Errors.ExpectedToken]: "Expected '%0'",
   216→  [Errors.CantAssignTo]: 'Invalid left-hand side in assignment',
   217→  [Errors.InvalidLHSAsyncArrow]: 'Invalid left-hand side in async arrow',
   218→  [Errors.SuperNoConstructor]:
   219→    'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass',
   220→  [Errors.InvalidSuperProperty]: 'Member access on super must be in a method',
   221→  [Errors.AwaitInParameter]: 'Await expression not allowed in formal parameter',
   222→  [Errors.YieldInParameter]: 'Yield expression not allowed in formal parameter',
   223→  [Errors.InvalidEscapedKeyword]: "Unexpected token: 'escaped keyword'",
   224→  [Errors.InvalidExponentiationLHS]:
   225→    'Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses',
   226→  [Errors.AsyncFunctionInSingleStatementContext]:
   227→    'Async functions can only be declared at the top level or inside a block',
   228→  [Errors.UnterminatedRegExp]: 'Unterminated regular expression',
   229→  [Errors.UnexpectedTokenRegExpFlag]: 'Unexpected regular expression flag',
   230→  [Errors.DuplicateRegExpFlag]: "Duplicate regular expression flag '%0'",
   231→  [Errors.AccessorWrongArgs]: '%0 functions must have exactly %1 argument%2',
   232→  [Errors.BadSetterRestParameter]: 'Setter function argument must not be a rest parameter',
   233→  [Errors.DeclNoName]: '%0 declaration must have a name in this context',
   234→  [Errors.StrictFunctionName]:
   235→    'Function name may not contain any reserved words or be eval or arguments in strict mode',
   236→  [Errors.RestMissingArg]: 'The rest operator is missing an argument',
   237→  [Errors.InvalidGeneratorGetter]: 'A getter cannot be a generator',
   238→  [Errors.InvalidGeneratorSetter]: 'A setter cannot be a generator',
   239→  [Errors.InvalidComputedPropName]: 'A computed property name must be followed by a colon or paren',
   240→  [Errors.InvalidObjLitKey]: 'Object literal keys that are strings or numbers must be a method or have a colon',
   241→  [Errors.InvalidAsyncGetter]: 'Found `* async x(){}` but this should be `async * x(){}`',
   242→  [Errors.InvalidGetSetGenerator]: 'Getters and setters can not be generators',
   243→  [Errors.InvalidGenMethodShorthand]: "'%0' can not be generator method",
   244→  [Errors.InvalidLineBreak]: "No line break is allowed after '=>'",
   245→  [Errors.InvalidArrowDestructLHS]: 'The left-hand side of the arrow can only be destructed through assignment',
   246→  [Errors.InvalidBindingDestruct]: 'The binding declaration is not destructible',
   247→  [Errors.InvalidAsyncArrow]: 'Async arrow can not be followed by new expression',
   248→  [Errors.StaticPrototype]: "Classes may not have a static property named 'prototype'",
   249→  [Errors.InvalidConstructor]: 'Class constructor may not be a %0',
   250→  [Errors.DuplicateConstructor]: 'Duplicate constructor method in class',
   251→  [Errors.InvalidIncDecTarget]: 'Invalid increment/decrement operand',
   252→  [Errors.InvalidIncDecNew]: 'Invalid use of `new` keyword on an increment/decrement expression',
   253→  [Errors.InvalidAssignmentTarget]: '`=>` is an invalid assignment target',
   254→  [Errors.InvalidRestTrailing]: 'Rest element may not have a trailing comma',
   255→  [Errors.DeclarationMissingInitializer]: 'Missing initializer in %0 declaration',
   256→  [Errors.ForInOfLoopInitializer]: "'for-%0' loop head declarations can not have an initializer",
   257→  [Errors.ForInOfLoopMultiBindings]: 'Invalid left-hand side in for-%0 loop: Must have a single binding',
   258→  [Errors.InvalidShorthandPropInit]: 'Invalid shorthand property initializer',
   259→  [Errors.DuplicateProto]: 'Property name __proto__ appears more than once in object literal',
   260→  [Errors.InvalidLetBoundName]: 'Let is disallowed as a lexically bound name',
   261→  [Errors.InvalidNewUnary]: "Invalid use of '%0' inside new expression",
   262→  [Errors.IllegalUseStrict]: "Illegal 'use strict' directive in function with non-simple parameter list",
   263→  [Errors.DisallowedLetInStrict]: 'Identifier "let" disallowed as left-hand side expression in strict mode',
   264→  [Errors.IllegalContinue]: 'Illegal continue statement',
   265→  [Errors.IllegalBreak]: 'Illegal break statement',
   266→  [Errors.InvalidLetBracket]: 'Cannot have `let[...]` as a var name in strict mode',
   267→  [Errors.InvalidDestructuringTarget]: 'Invalid destructuring assignment target',
   268→  [Errors.RestDefaultInitializer]: 'Rest parameter may not have a default initializer',
   269→  [Errors.InvalidRestNotLast]: 'The rest argument must the be last parameter',
   270→  [Errors.InvalidRestArg]: 'Invalid rest argument',
   271→  [Errors.StrictFunction]: 'In strict mode code, functions can only be declared at top level or inside a block',
   272→  [Errors.SloppyFunction]:
   273→    'In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement',
   274→  [Errors.WebCompatFunction]:
   275→    'Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement',
   276→  [Errors.ClassForbiddenAsStatement]: "Class declaration can't appear in single-statement context",
   277→  [Errors.CantAssignToInOfForLoop]: 'Invalid left-hand side in for-%0',
   278→  [Errors.InvalidAssignmentInOfForLoop]: 'Invalid assignment in for-%0',
   279→  [Errors.InvalidForAwait]: 'for await (... of ...) is only valid in async functions and async generators',
   280→  [Errors.InvalidTemplateContinuation]:
   281→    'The first token after the template expression should be a continuation of the template',
   282→  [Errors.UnexpectedLetStrictReserved]:
   283→    '`let` declaration not allowed here and `let` cannot be a regular var name in strict mode',
   284→  [Errors.RestrictedLetProduction]: '`let \n [` is a restricted production at the start of a statement',
   285→  [Errors.InvalidCatchParams]: 'Catch clause requires exactly one parameter, not more (and no trailing comma)',
   286→  [Errors.InvalidCatchParamDefault]: 'Catch clause parameter does not support default values',
   287→  [Errors.NoCatchOrFinally]: 'Missing catch or finally after try',
   288→  [Errors.MultipleDefaultsInSwitch]: 'More than one default clause in switch statement',
   289→  [Errors.NewlineAfterThrow]: 'Illegal newline after throw',
   290→  [Errors.StrictWith]: 'Strict mode code may not include a with statement',
   291→  [Errors.IllegalReturn]: 'Illegal return statement',
   292→  [Errors.InvalidForLHSBinding]: 'The left hand side of the for-header binding declaration is not destructible',
   293→  [Errors.InvalidNewTarget]: 'new.target only allowed within functions or static blocks',
   294→  [Errors.MissingPrivateIdentifier]: "'#' not followed by identifier",
   295→  [Errors.KeywordNotId]: 'Invalid keyword',
   296→  [Errors.InvalidLetClassName]: "Can not use 'let' as a class name",
   297→  [Errors.InvalidLetConstBinding]: "'A lexical declaration can't define a 'let' binding",
   298→  [Errors.InvalidStrictLet]: 'Can not use `let` as variable name in strict mode',
   299→  [Errors.DisallowedInContext]: "'%0' may not be used as an identifier in this context",
   300→  [Errors.AwaitOutsideAsync]: 'Await is only valid in async functions',
   301→  [Errors.InvalidImportExportSloppy]: 'The %0 keyword can only be used with the module goal',
   302→  [Errors.UnicodeOverflow]: 'Unicode codepoint must not be greater than 0x10FFFF',
   303→  [Errors.InvalidExportImportSource]: '%0 source must be string',
   304→  [Errors.InvalidKeywordAsAlias]: 'Only a identifier or string can be used to indicate alias',
   305→  [Errors.InvalidDefaultImport]: "Only '*' or '{...}' can be imported after default",
   306→  [Errors.TrailingDecorators]: 'Trailing decorator may be followed by method',
   307→  [Errors.GeneratorConstructor]: "Decorators can't be used with a constructor",
   308→  [Errors.AwaitIdentInModuleOrAsyncFunc]: 'Can not use `await` as identifier in module or async func',
   309→  [Errors.YieldIdentInModule]: 'Can not use `await` as identifier in module',
   310→  [Errors.HtmlCommentInWebCompat]: 'HTML comments are only allowed with web compatibility (Annex B)',
   311→  [Errors.StrictInvalidLetInExprPos]: "The identifier 'let' must not be in expression position in strict mode",
   312→  [Errors.NotAssignableLetArgs]: 'Cannot assign to `eval` and `arguments` in strict mode',
   313→  [Errors.ForOfLet]: "The left-hand side of a for-of loop may not start with 'let'",
   314→  [Errors.InvalidInvokedBlockBodyArrow]: 'Block body arrows can not be immediately invoked without a group',
   315→  [Errors.InvalidAccessedBlockBodyArrow]: 'Block body arrows can not be immediately accessed without a group',
   316→  [Errors.UnexpectedStrictReserved]: 'Unexpected strict mode reserved word',
   317→  [Errors.StrictEvalArguments]: 'Unexpected eval or arguments in strict mode',
   318→  [Errors.InvalidDecoratorSemicolon]: 'Decorators must not be followed by a semicolon',
   319→  [Errors.StrictDelete]: 'Calling delete on expression not allowed in strict mode',
   320→  [Errors.InvalidPatternTail]: 'Pattern can not have a tail',
   321→  [Errors.InvalidTernaryYield]: 'Can not have a `yield` expression on the left side of a ternary',
   322→  [Errors.InvalidArrowPostfix]: 'An arrow function can not have a postfix update operator',
   323→  [Errors.InvalidObjLitKeyStar]: 'Invalid object literal key character after generator star',
   324→  [Errors.DeletePrivateField]: 'Private fields can not be deleted',
   325→  [Errors.InvalidClassFieldConstructor]: 'Classes may not have a field called constructor',
   326→  [Errors.InvalidStaticClassFieldConstructor]: 'Classes may not have a private element named constructor',
   327→  [Errors.InvalidClassFieldArgEval]: 'A class field initializer or static block may not contain arguments',
   328→  [Errors.InvalidGeneratorFunction]: 'Generators can only be declared at the top level or inside a block',
   329→  [Errors.AsyncRestrictedProd]: 'Async methods are a restricted production and cannot have a newline following it',
   330→  [Errors.UnexpectedCharAfterObjLit]: 'Unexpected character after object literal property name',
   331→  [Errors.InvalidKeyToken]: 'Invalid key token',
   332→  [Errors.LabelRedeclaration]: "Label '%0' has already been declared",
   333→  [Errors.InvalidNestedStatement]: 'continue statement must be nested within an iteration statement',
   334→  [Errors.UnknownLabel]: "Undefined label '%0'",
   335→  [Errors.InvalidImportTail]: 'Trailing comma is disallowed inside import(...) arguments',
   336→  [Errors.InvalidJSONImportBinding]: 'Invalid binding in JSON import',
   337→  [Errors.ImportNotOneArg]: 'import() requires exactly one argument',
   338→  [Errors.InvalidImportNew]: 'Cannot use new with import(...)',
   339→  [Errors.InvalidSpreadInImport]: '... is not allowed in import()',
   340→  [Errors.IncompleteArrow]: "Expected '=>'",
   341→  [Errors.DuplicateBinding]: "Duplicate binding '%0'",
   342→  [Errors.DuplicatePrivateIdentifier]: 'Duplicate private identifier #%0',
   343→  [Errors.DuplicateExportBinding]: "Cannot export a duplicate name '%0'",
   344→  [Errors.DuplicateLetConstBinding]: 'Duplicate %0 for-binding',
   345→  [Errors.UndeclaredExportedBinding]: "Exported binding '%0' needs to refer to a top-level declared variable",
   346→  [Errors.UnexpectedPrivateField]: 'Unexpected private field',
   347→  [Errors.TrailingNumericSeparator]: 'Numeric separators are not allowed at the end of numeric literals',
   348→  [Errors.ContinuousNumericSeparator]: 'Only one underscore is allowed as numeric separator',
   349→  [Errors.InvalidJSXAttributeValue]: 'JSX value should be either an expression or a quoted JSX text',
   350→  [Errors.ExpectedJSXClosingTag]: 'Expected corresponding JSX closing tag for %0',
   351→  [Errors.AdjacentJSXElements]: 'Adjacent JSX elements must be wrapped in an enclosing tag',
   352→  [Errors.InvalidNonEmptyJSXExpr]: "JSX attributes must only be assigned a non-empty 'expression'",
   353→  [Errors.DuplicateIdentifier]: "'%0' has already been declared",
   354→  [Errors.ShadowedCatchClause]: "'%0' shadowed a catch clause binding",
   355→  [Errors.InvalidDotProperty]: 'Dot property must be an identifier',
   356→  [Errors.UnclosedSpreadElement]: 'Encountered invalid input after spread/rest argument',
   357→  [Errors.CatchWithoutTry]: 'Catch without try',
   358→  [Errors.FinallyWithoutTry]: 'Finally without try',
   359→  [Errors.UnCorrespondingFragmentTag]: 'Expected corresponding closing tag for JSX fragment',
   360→  [Errors.InvalidCoalescing]:
   361→    'Coalescing and logical operators used together in the same expression must be disambiguated with parentheses',
   362→  [Errors.OptionalChainingNoTemplate]: 'Invalid tagged template on optional chain',
   363→  [Errors.OptionalChainingNoSuper]: 'Invalid optional chain from super property',
   364→  [Errors.OptionalChainingNoNew]: 'Invalid optional chain from new expression',
   365→  [Errors.ImportMetaOutsideModule]: 'Cannot use "import.meta" outside a module',
   366→  [Errors.InvalidLeadingDecorator]: 'Leading decorators must be attached to a class declaration',
   367→  [Errors.InvalidExportName]: 'An export name cannot include a lone surrogate',
   368→  [Errors.InvalidExportReference]: 'A string literal cannot be used as an exported binding without `from`',
   369→  [Errors.InvalidSuperPrivate]: "Private fields can't be accessed on super",
   370→  [Errors.InvalidImportMeta]: "The only valid meta property for import is 'import.meta'",
   371→  [Errors.InvalidEscapedImportMeta]: "'import.meta' must not contain escaped characters",
   372→  [Errors.InvalidAwaitAsIdentifier]: 'cannot use "await" as identifier inside an async function',
   373→  [Errors.InvalidAwaitInStaticBlock]: 'cannot use "await" in static blocks',
   374→};
   375→
   376→export class ParseError extends SyntaxError implements _Node {
   377→  public start: number;
   378→  public end: number;
   379→  public range: [number, number];
   380→  public loc: SourceLocation;
   381→
   382→  public description: string;
   383→
   384→  constructor(start: Location, end: Location, type: Errors, ...params: string[]) {
   385→    const description = errorMessages[type].replace(/%(\d+)/g, (_: string, i: number) => params[i]);
   386→    const message = '[' + start.line + ':' + start.column + '-' + end.line + ':' + end.column + ']: ' + description;
   387→    super(message);
   388→    this.start = start.index;
   389→    this.end = end.index;
   390→    this.range = [start.index, end.index];
   391→    this.loc = {
   392→      start: { line: start.line, column: start.column },
   393→      end: { line: end.line, column: end.column },
   394→    };
   395→    this.description = description;
   396→  }
   397→}
