    60→  }
    61→}
    62→
    63→export function scanNewLine(parser: Parser): void {
    64→  parser.flags |= Flags.NewLine;
    65→  parser.currentChar = parser.source.charCodeAt(++parser.index);
    66→  parser.column = 0;
    67→  parser.line++;
    68→}
    69→
    70→// ECMA-262 11.2 White Space
    71→// gC=Zs, U+0009, U+000B, U+000C, U+FEFF
    72→export function isExoticECMAScriptWhitespace(ch: number): boolean {
    73→  return (
    74→    ch === Chars.NonBreakingSpace ||
    75→    ch === Chars.ZeroWidthNoBreakSpace ||
    76→    ch === Chars.NextLine ||
    77→    ch === Chars.Ogham ||
    78→    (ch >= Chars.EnQuad && ch <= Chars.ZeroWidthSpace) ||
    79→    ch === Chars.NarrowNoBreakSpace ||
    80→    ch === Chars.MathematicalSpace ||
    81→    ch === Chars.IdeographicSpace ||
    82→    ch === Chars.ThinSpace ||
    83→    ch === Chars.ByteOrderMark
    84→  );
    85→}
    86→
    87→/**
    88→ * Converts a value to a hex value
    89→ *
    90→ * @param code CodePoint
    91→ */
    92→export function toHex(code: number): number {
    93→  return code < Chars.UpperA ? code - Chars.Zero : (code - Chars.UpperA + 10) & 0xf;
    94→}
    95→
    96→/**
    97→ * Converts a token to a string representation
    98→ *
    99→ * @param t Token
   100→ */
   101→export function convertTokenType(t: Token): string {
   102→  switch (t) {
   103→    case Token.NumericLiteral:
   104→      return 'NumericLiteral';
   105→    case Token.StringLiteral:
   106→      return 'StringLiteral';
   107→    case Token.FalseKeyword:
   108→    case Token.TrueKeyword:
   109→      return 'BooleanLiteral';
   110→    case Token.NullKeyword:
   111→      return 'NullLiteral';
   112→    case Token.RegularExpression:
   113→      return 'RegularExpression';
   114→    case Token.TemplateContinuation:
   115→    case Token.TemplateSpan:
   116→    case Token.Template:
   117→      return 'TemplateLiteral';
   118→    default:
   119→      if ((t & Token.IsIdentifier) === Token.IsIdentifier) return 'Identifier';
   120→      if ((t & Token.Keyword) === Token.Keyword) return 'Keyword';
   121→
   122→      return 'Punctuator';
   123→  }
   124→}
