import string

GL_INT = "GL_INT"
GL_FLOAT = "GL_FLOAT"
GL_STRING = "GL_STRING"
GL_IDENTIFIER = "GL_IDENTIFIER"
GL_KEYWORD = "GL_KEYWORD"
GL_PLUS = "GL_PLUS"
GL_MINUS = "GL_MINUS"
GL_MUL = "GL_MUL"
GL_DIV = "GL_DIV"
GL_MOD = "GL_MOD"
GL_FLOORDIV = "GL_FLOORDIV"
GL_POW = "GL_POW"
GL_EQ = "GL_EQ"
GL_LPAREN = "GL_LPAREN"
GL_RPAREN = "GL_RPAREN"
GL_LBRACE = "GL_LBRACE"
GL_RBRACE = "GL_RBRACE"
GL_COMMA = "GL_COMMA"
GL_DOT = "GL_DOT"
GL_EE = "GL_EE"
GL_NE = "GL_NE"
GL_LT = "GL_LT"
GL_GT = "GL_GT"
GL_LTE = "GL_LTE"
GL_GTE = "GL_GTE"
GL_EOF = "GL_EOF"
GL_LSQUARE = "GL_LSQUARE"
GL_RSQUARE = "GL_RSQUARE"
GL_PLUSPLUS = "GL_PLUSPLUS"
GL_MINUSMINUS = "GL_MINUSMINUS"
GL_COLON = "GL_COLON"
GL_QMARK = "GL_QMARK"
GL_PLUSEQ = "PLUSEQ"
GL_MINUSEQ = "MINUSEQ"
GL_MULEQ = "MULEQ"
GL_DIVEQ = "DIVEQ"
GL_POWEQ = "POWEQ"
GL_MODEQ = "MODEQ"
GL_FLOORDIVEQ = "FLOORDIVEQ"
GL_BIT_AND = "GL_BIT_AND"
GL_BIT_OR = "GL_BIT_OR"
GL_BIT_XOR = "GL_BIT_XOR"
GL_BIT_NOT = "GL_BIT_NOT"
GL_LSHIFT = "GL_LSHIFT"
GL_RSHIFT = "GL_RSHIFT"
GL_BIT_ANDEQ = "GL_BIT_ANDEQ"
GL_BIT_OREQ = "GL_BIT_OREQ"
GL_BIT_XOREQ = "GL_BIT_XOREQ"
GL_LSHIFTEQ = "GL_LSHIFTEQ"
GL_RSHIFTEQ = "GL_RSHIFTEQ"

KEYWORDS = [
    "LET",
    "FINAL",
    "PRINT",
    "PRINTLN",
    "IF",
    "THEN",
    "ELSE",
    "ENDIF",
    "AND",
    "OR",
    "NOT",
    "IS",
    "DEF",
    "ENDDEF",
    "RETURN",
    "CLASS",
    "ENDCLASS",
    "INHERITS",
    "NEW",
    "THIS",
    "STATIC",
    "WHILE",
    "ENDWHILE",
    "BREAK",
    "CONTINUE",
    "FOR",
    "IN",
    "ENDFOR",
    "TRY",
    "CATCH",
    "FINALLY",
    "ENDTRY",
    "THROW",
    "SWITCH",
    "CASE",
    "DEFAULT",
    "ENDSWITCH",
    "PUBLIC",
    "PRIVATE",
    "PROTECTED",
    "INSTANCEOF",
    "SUPER",
    "ENUM",
    "ENDENUM",
]

DIGITS = "0123456789"
LETTERS = string.ascii_letters
LETTERS_DIGITS = LETTERS + DIGITS
