export enum TokenKind {
  SOF = '<SOF>',
  EOF = '<EOF>',
  BANG = '!',
  AT = '@',
  HASH = '#',
  DOLLAR = '$',
  CARET = '^',
  AMP = '&',
  PERCENT = '%',
  STAR = '*',
  PAREN_L = '(',
  PAREN_R = ')',
  DASH = '-',
  UNDERSCORE = '_',
  PLUS = '+',
  BRACKET_L = '[',
  BRACKET_R = ']',
  BRACE_L = '{',
  PIPE = '|',
  BRACE_R = '}',
  BACKSLASH = '\\',
  SLASH = '/',
  MORE = '>',
  LESS = '<',
  TILDA = '~',
  ACCENT = '`',
  QUOTE = '\'',
  DOUBLE_QUOTE = '"',
  QUESTION_MARK = '?',
  DOT = '.',
  COMMA = ',',
  SPREAD = '...',
  COLON = ':',
  SEMICOLON = ';',
  EQUALS = '=',
  NAME = 'Name',
  NUMBER = 'Number',
  STRING = 'String',
  STRING_EXPR = 'StringExpression',
  COMMENT = 'Comment',
}

export const getTokenKindDescription = (kind: TokenKind): string => {
  return kind.length === 1 ? `"${kind}"` : kind;
}
