from enum import Enum

# Token kinds for the Core Interpreter project.
# Author:	Aishwarya Srivastava
# Date: 	03/03/2018

class TokenKind(Enum):

	# Reserved words 
	KEYWORD_PROGRAM = 1
	KEYWORD_BEGIN = 2
	KEYWORD_END = 3
	KEYWORD_INT = 4
	KEYWORD_IF = 5
	KEYWORD_THEN = 6
	KEYWORD_ELSE = 7
	KEYWORD_WHILE = 8
	KEYWORD_LOOP = 9
	KEYWORD_READ = 10
	KEYWORD_WRITE = 11

	# Special characters
	SEMICOLON = 12
	COMMA = 13
	ASSIGNMENT_OPERATOR = 14
	NOT_OPERATOR = 15
	OPEN_SQUARE = 16
	CLOSED_SQUARE = 17
	AND_OPERATOR = 18
	OR_OPERATOR = 19
	OPEN_PAREN = 20
	CLOSED_PAREN = 21
	ADD_OPERATOR = 22
	SUBTRACT_OPERATOR = 23
	MULTIPLICATION_OPERATOR = 24
	INEQUALITY_TEST = 25
	EQUALITY_TEST = 26
	STRICTLY_LESS = 27
	STRICTLY_GREATER = 28
	LESS_THAN_OR_EQUAL = 29
	GREATER_THAN_OR_EQUAL = 30
	INTEGER_CONSTANT = 31
	IDENTIFIER = 32

	# Other helpful tokens
	EOF = 33
	ERROR = 34

