  4500→/**
  4501→ * Parses an identifier expression
  4502→ *
  4503→ * @param parser  Parser object
  4504→ * @param context Context masks
  4505→ */
  4506→function parseIdentifier(parser: Parser, context: Context): ESTree.Identifier {
  4507→  const { tokenValue, tokenStart } = parser;
  4508→
  4509→  const allowRegex = tokenValue === 'await' && (parser.getToken() & Token.IsEscaped) === 0;
  4510→  nextToken(parser, context | (allowRegex ? Context.AllowRegExp : 0));
  4511→
  4512→  return parser.finishNode<ESTree.Identifier>(
  4513→    {
  4514→      type: 'Identifier',
  4515→      name: tokenValue,
  4516→    },
  4517→    tokenStart,
  4518→  );
  4519→}
  4520→
  4521→type StringOrNumberLiteral = ESTree.StringLiteral | ESTree.BigIntLiteral | ESTree.NumericLiteral;
  4522→
  4523→/**
  4524→ * Parses an literal expression such as string literal
  4525→ *
  4526→ * @param parser  Parser object
  4527→ * @param context Context masks
  4528→ */
  4529→function parseLiteral<T extends StringOrNumberLiteral = StringOrNumberLiteral>(parser: Parser, context: Context): T {
  4530→  const { tokenValue, tokenRaw, tokenStart } = parser;
  4531→  if (parser.getToken() === Token.BigIntLiteral) {
  4532→    return parseBigIntLiteral(parser, context) as T;
  4533→  }
  4534→
  4535→  const node: ESTree.StringLiteral | ESTree.NumericLiteral = {
  4536→    type: 'Literal',
  4537→    value: tokenValue,
  4538→  };
  4539→  if (parser.options.raw) {
  4540→    node.raw = tokenRaw;
  4541→  }
  4542→
  4543→  nextToken(parser, context);
  4544→  parser.assignable = AssignmentKind.CannotAssign;
  4545→
  4546→  return parser.finishNode(node, tokenStart) as T;
  4547→}
  4548→
  4549→/**
  4550→ * Parses null and boolean expressions
  4551→ *
  4552→ * @param parser  Parser object
  4553→ * @param context Context masks
  4554→ */
  4555→function parseNullOrTrueOrFalseLiteral(parser: Parser, context: Context): ESTree.NullLiteral | ESTree.BooleanLiteral {
  4556→  const start = parser.tokenStart;
  4557→  const raw = KeywordDescTable[parser.getToken() & Token.Type];
  4558→  const value = parser.getToken() === Token.NullKeyword ? null : raw === 'true';
  4559→  const node: ESTree.NullLiteral | ESTree.BooleanLiteral = {

[4354 more lines in file. Use offset=4560 to continue.]