Source: TokenType.js

'use strict';

const Enum = require('enum');

/**
 * {@link Token} type enumerations.
 * @enum
 */
const TokenType = new Enum([
  // Single-character tokens.
  'LEFT_PAREN', 'RIGHT_PAREN', 'LEFT_BRACE', 'RIGHT_BRACE',
  'COMMA', 'DOT', 'MINUS', 'PLUS', 'SEMICOLON', 'SLASH', 'STAR',

  // One or two character tokens.
  'BANG', 'BANG_EQUAL',
  'EQUAL', 'EQUAL_EQUAL',
  'GREATER', 'GREATER_EQUAL',
  'LESS', 'LESS_EQUAL',

  // Literals.
  'IDENTIFIER', 'STRING', 'NUMBER',

  // Keywords.
  'AND', 'CLASS', 'ELSE', 'FALSE', 'FUN', 'FOR', 'IF', 'NIL', 'OR',
  'PRINT', 'RETURN', 'SUPER', 'THIS', 'TRUE', 'VAR', 'WHILE',

  // End Of File (or input)
  'EOF'
], 'TokenType');

module.exports = TokenType;