# Keywords
PROGRAM = 1
END_PROGRAM = 2
DECLARE = 3
IF = 4
THEN = 5
ELSE = 6
END_IF = 7
DO_WHILE = 8
END_DO_WHILE = 9
WHILE = 10
END_WHILE = 11
LOOP = 12
END_LOOP = 13
EXIT = 14
FORCASE = 15
END_FORCASE = 16
INCASE = 17
END_INCASE = 18
WHEN = 19
END_WHEN = 20
DEFAULT = 21
END_DEFAULT = 22
FUNCTION = 23
END_FUNCTION = 24
RETURN = 25
IN = 26
IN_OUT = 27
IN_AND_OUT = 28
AND = 29
OR = 30
NOT = 31
INPUT = 32
PRINT = 33

# Numerical Operators
PLUS = 34
MINUS = 35
MULTIPLICATION = 36
DIVISION = 37

# Logical Operators
LESS_THAN = 38
GREATER_THAN = 39
EQUALS = 40
LESS_OR_EQUAL = 41
GREATER_OR_EQUAL = 42
DIFFERENT = 43

# Punctuation signs
ASSIGN = 44
SEMICOLON = 45
COMMA = 46
COLON = 47

# Grouping Signs
OPEN_PARENTHESIS = 48
CLOSE_PARENTHESIS = 49
OPEN_BRACKETS = 50
CLOSE_BRACKETS = 51

# Comment signs
OPEN_COMMENT = 52
CLOSE_COMMENT = 53
ONE_LINE_COMMENT = 54

# Alphanumerics
ALNUM = 55
CONSTANT = 56

# Lexical Error ID
ASSIGN_ERR = 1
COMMENT_NOT_STARTED_ERR = 2
COMMENT_NOT_FINISHED_ERR = 3
NESTED_COMMENT_ERR = 4
INVALID_CONSTANT_ERR = 5
OUT_OF_RANGE_ERR = 6
UNKNOWN_CHAR_ERR = 7

# Syntax Error ID
EXPECTED_PROGRAM_DECLARATION_ERR = 1
EXPECTED_ENDPROGRAM_STATEMENT = 2
INVALID_PROGRAM_NAME_ERR = 3
INVALID_VARIABLE_NAME = 4
EXPECTED_END_OF_DECLARE = 5
INVALID_FUNCTION_NAME = 6
EXPECTED_ENDFUNCTION_STATEMENT = 7
EXPECTED_CLOSE_PARENTHESIS = 8
EXPECTED_OPEN_PARENTHESIS = 9
EXPECTED_THEN_STATEMENT = 10
EXPECTED_ENDIF_STATEMENT = 11
EXPECTED_WHILE_STATEMENT = 12
EXPECTED_ENDLOOP_STATEMENT = 13
EXPECTED_COLON_CHARACTER = 14
EXPECTED_WHEN_STATEMENT = 15
EXPECTED_DEFAULT_STATEMENT = 16
EXPECTED_ENDDEFAULT_STATEMENT = 17
EXPECTED_ENDFORCASE_STATEMENT = 18
EXPECTED_ENDINCASE_STATEMENT = 19
EXPECTED_ENDWHILE_STATEMENT = 20
EXPECTED_ALNUM_AS_INPUT = 21
INVALID_RELATIONAL_OPERATOR = 22
EXPECTED_ADD_OPERATOR = 23
EXPECTED_MUL_OPERATOR = 24
EXPECTED_ASSIGNMENT_SIGN = 25
EXPECTED_OPEN_BRACKETS = 26
EXPECTED_CLOSE_BRACKETS = 27
EXPECTED_SEMICOLON = 28
EXPECTED_VARIABLE_NAME_AFTER_COMMA = 29
INVALID_PARAMETER_TYPE = 30

# Lexical & Syntax Analysis Global variables
token_id = 0
token = ""
line = 1

# General Global variables
file = ""
file_position = 0
