ASSIGNMENT_OPERATOR=\=
WHITE_SPACE_CHARS=\ \t\n\r
OPEN_BRACKET=(
CLOSE_BRACKET=)
PARAMETER_SEPARATOR=,
QUOTE_CHAR=\"
CELL_SET_SEPARATOR=\:
CONSTANT_CHAR=$
COLUMN_LETTER_RANGE=AZ
ROW_DIGIT_RANGE=09

CONSTANT_TRUE=TRUE
CONSTANT_FALSE=FALSE

OPERATOR_POSITIVE=+
OPERATOR_OPPOSITE=-

OPERATOR_ADD=+
OPERATOR_SUBSTRACT=-
OPERATOR_DIVIDE=/
OPERATOR_MULTIPLY=*
OPERATOR_POWER=^
OPERATOR_EQUAL==
OPERATOR_DIFFERENT=<>
OPERATOR_GREATER_OR_EQUAL=>=
OPERATOR_LESS_OR_EQUAL=<=
OPERATOR_GREATER=>
OPERATOR_LESS=<

CONDITION_IF=IF
CONDITION_THEN=THEN
CONDITION_ELSE=ELSE

OPERATOR_PRIORITY_EQUAL=4
OPERATOR_PRIORITY_DIFFERENT=4
OPERATOR_PRIORITY_GREATER_OR_EQUAL=5
OPERATOR_PRIORITY_LESS_OR_EQUAL=5
OPERATOR_PRIORITY_GREATER=5
OPERATOR_PRIORITY_LESS=5
OPERATOR_PRIORITY_ADD=6
OPERATOR_PRIORITY_SUBSTRACT=6
OPERATOR_PRIORITY_DIVIDE=7
OPERATOR_PRIORITY_MULTIPLY=7
OPERATOR_PRIORITY_POWER=8

FUNCTION_LN=LN
FUNCTION_LOG=LOG10
FUNCTION_EXP=EXP
FUNCTION_SQRT=ROOT
FUNCTION_COS=COS
FUNCTION_SIN=SIN
FUNCTION_TAN=TAN
FUNCTION_ACOS=ACOS
FUNCTION_ASIN=ASIN
FUNCTION_ATAN=ATAN
FUNCTION_COSH=COSH
FUNCTION_SINH=SINH
FUNCTION_TANH=TANH
FUNCTION_INTEGER=INT
FUNCTION_ABS=ABS
FUNCTION_NOT=NOT

JEKS_FUNCTION_SUM=SUM
JEKS_FUNCTION_RAND=RAND
JEKS_FUNCTION_MODULO=MOD
JEKS_FUNCTION_FACT=FACT
JEKS_FUNCTION_IF=IF
JEKS_FUNCTION_AND=AND
JEKS_FUNCTION_OR=OR
JEKS_FUNCTION_TRUE=TRUE
JEKS_FUNCTION_FALSE=FALSE
JEKS_FUNCTION_DATE=DATE
JEKS_FUNCTION_DATEVALUE=DATEVALUE
JEKS_FUNCTION_NOW=NOW
JEKS_FUNCTION_TIME=TIME
JEKS_FUNCTION_TIMEVALUE=TIMEVALUE
JEKS_FUNCTION_YEAR=YEAR
JEKS_FUNCTION_MONTH=MONTH
JEKS_FUNCTION_DAY=DAY
JEKS_FUNCTION_WEEKDAY=WEEKDAY
JEKS_FUNCTION_HOUR=HOUR
JEKS_FUNCTION_MINUTE=MINUTE
JEKS_FUNCTION_SECOND=SECOND
JEKS_FUNCTION_CHAR=CHAR
JEKS_FUNCTION_FIND=FIND
JEKS_FUNCTION_CODE=CODE

ERROR_ILLEGAL_CELL=\#REF\!
ERROR_ILLEGAL_VALUE=\#VALUE\!
ERROR_UNKNOWN_NAME=\#NAME?
ERROR_INVALID_NUMBER=\#NUM\!
ERROR_DIVISION_BY_ZERO=\#DIV0\!
ERROR_ERR=\#ERR\!

MESSAGE_COMPILATION_ERROR_TITLE=Compilation error
MESSAGE_OPENING_BRACKET_EXPECTED=Opening bracket expected.
MESSAGE_INVALID_FUNCTION_NAME=Invalid function name.
MESSAGE_RESERVED_WORD=Reserved word.
MESSAGE_FUNCTION_NAME_ALREADY_EXISTS=Function name already exists.
MESSAGE_CLOSING_BRACKET_EXPECTED=Closing bracket expected.
MESSAGE_ASSIGN_OPERATOR_EXPECTED=Assignment operator expected.
MESSAGE_INVALID_PARAMETER_NAME=Invalid parameter name.
MESSAGE_DUPLICATED_PARAMETER_NAME=Duplicated parameter name.
MESSAGE_SYNTAX_ERROR=Syntax error.
MESSAGE_CLOSING_BRACKET_WITHOUT_OPENING_BRACKET=Closing bracket found without matching opening bracket.
MESSAGE_UNKOWN_IDENTIFIER=Unkown identifier.
MESSAGE_MISSING_PARAMETERS_IN_FUNCTION_CALL=Missing parameters in function call.
MESSAGE_INVALID_PARAMETERS_COUNT_IN_FUNCTION_CALL=Invalid parameters count in function call.
MESSAGE_THEN_OPERATOR_EXPECTED=Operator THEN expected.
MESSAGE_ELSE_OPERATOR_EXPECTED=Operator ELSE expected.
MESSAGE_THEN_OPERATOR_WITHOUT_IF_OPERATOR=Operator THEN without operator IF.
MESSAGE_ELSE_OPERATOR_WITHOUT_IF_THEN_OPERATORS=Operator THEN without operators IF THEN.
MESSAGE_CIRCULARITY_ERROR_TITLE=Execution error
MESSAGE_CIRCULARITY_ERROR_CONFIRM=A circularity error has been detected. Do you confirm input ?
MESSAGE_CIRCULARITY_ERROR_INFO=A circularity error has been detected. Do you confirm input ?
MESSAGE_INVALID_JEKS_FILE=Not a Jeks file or stream.
