///|
priv enum Token {
  EndOfFile
  Identifier
  Number
  StringLiteral
  Regex
  TemplateNoSubstitution
  TemplateHead
  TemplateMiddle
  TemplateTail
  LeftParenthesis
  RightParenthesis
  LeftBracket
  RightBracket
  LeftBrace
  RightBrace
  Semicolon
  Comma
  Dot
  Ellipsis
  Question
  OptionalChaining
  Colon
  Arrow
  Assignment
  AdditionAssignment
  SubtractionAssignment
  MultiplicationAssignment
  DivisionAssignment
  ModuloAssignment
  ExponentiationAssignment
  LeftShiftAssignment
  RightShiftAssignment
  UnsignedRightShiftAssignment
  BitwiseAndAssignment
  BitwiseOrAssignment
  BitwiseXorAssignment
  LogicalAndAssignment
  LogicalOrAssignment
  NullishCoalescingAssignment
  Plus
  Minus
  Asterisk
  Slash
  Percent
  ExponentiationOperator
  Increment
  Decrement
  ShiftLeft
  ShiftRight
  UnsignedShiftRight
  BitwiseAnd
  BitwiseOr
  BitwiseXor
  LogicalNot
  Tilde
  LogicalAnd
  LogicalOr
  NullishCoalescing
  LessThan
  GreaterThan
  LessThanOrEqual
  GreaterThanOrEqual
  Equal
  NotEqual
  StrictlyEqual
  StrictlyNotEqual
} derive(Eq, Debug)

///|
extend Token with @debug.Debug::{to_repr}