49 lines
861 B
Python
49 lines
861 B
Python
from enum import Enum,Flag,auto
|
|
|
|
class Keyword(Flag):
|
|
CLASS = auto()
|
|
METHOD = auto()
|
|
FUNCTION = auto()
|
|
CONSTRUCTOR = auto()
|
|
INT = auto()
|
|
BOOLEAN = auto()
|
|
CHAR = auto()
|
|
VOID = auto()
|
|
VAR = auto()
|
|
STATIC = auto()
|
|
FIELD = auto()
|
|
LET = auto()
|
|
DO = auto()
|
|
IF = auto()
|
|
ELSE = auto()
|
|
WHILE = auto()
|
|
RETURN = auto()
|
|
TRUE = auto()
|
|
FALSE = auto()
|
|
NULL = auto()
|
|
THIS = auto()
|
|
# Symbols Start here
|
|
BRACE_OPEN = auto()
|
|
BRACE_CLOSE = auto()
|
|
PARAN_OPEN = auto()
|
|
PARAN_CLOSE = auto()
|
|
SQUARE_OPEN = auto()
|
|
SQUARE_CLOSE = auto()
|
|
DOT = auto()
|
|
SEMICOLON = auto()
|
|
PLUS = auto()
|
|
MINUS = auto()
|
|
MUL = auto()
|
|
DIV = auto()
|
|
AND = auto()
|
|
OR = auto()
|
|
LT = auto()
|
|
GT = auto()
|
|
EQ = auto()
|
|
NOT = auto()
|
|
COMMA = auto()
|
|
# Other Tokens
|
|
IDENTIFIER = auto()
|
|
INTEGERCONSTANT = auto()
|
|
STRINGCONSTANT = auto()
|