/**************************************************************************************
 * Chaga compiler                                                                     *
 * Copyright (C) 2026 Robert James Bruce                                              *
 *                                                                                    *
 * This file is part of the Chaga compiler.                                           *
 *                                                                                    *
 * The Chaga compiler is free software: you can redistribute it and/or modify it      *
 * under the terms of the GNU General Public License as published by the              *
 * Free Software Foundation, either version 3 of the License, or (at your option) any *
 * later version.                                                                     *
 *                                                                                    *
 * The Chaga compiler is distributed in the hope that it will be useful, but WITHOUT  *
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or              *
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License               *
 * for more details.                                                                  *
 *                                                                                    *
 * You should have received a copy of the GNU General Public License                  *
 * along with the Chaga compiler. If not, see <https://www.gnu.org/licenses/>.        *
 **************************************************************************************/
#ifndef CHAGA_COMPILER_CONSTANTS
#define CHAGA_COMPILER_CONSTANTS 1
#endif





#define SUCCESS 0
#define FAILURE 1
#define FALSE 0
#define TRUE 1
#define MAX_FILE_PATH_LENGTH 1024
#define MAX_FILENAME_LENGTH 256



#define TOKEN_UNKNOWN                              0
#define TOKEN_EQUAL                              100
#define TOKEN_NOT_EQUAL                          101
#define TOKEN_LESS_THAN                          102
#define TOKEN_GREATER_THAN                       103
#define TOKEN_LESS_THAN_OR_EQUAL                 104
#define TOKEN_GREATER_THAN_OR_EQUAL              105
#define TOKEN_IDENTIFIER                         200
#define TOKEN_IDENTIFIER_INTEGER_CONSTANT        201
#define TOKEN_IDENTIFIER_FLOATING_POINT_CONSTANT 202
#define TOKEN_AND                                300
#define TOKEN_OR                                 301
#define TOKEN_NOT                                302
#define TOKEN_UNARY_NOT                          303
#define TOKEN_ARROW_OPERATOR                     400
#define TOKEN_LEFT_PARENTHESIS                   500
#define TOKEN_RIGHT_PARENTHESIS                  501
#define TOKEN_PLUS                               600
#define TOKEN_MINUS                              700
#define TOKEN_ASTERISK                           800
#define TOKEN_DIVIDE                             900
#define TOKEN_CARET                              1000
#define TOKEN_MODULO                             1100
#define TOKEN_LEFT_BRACKET                       1200
#define TOKEN_RIGHT_BRACKET                      1201
#define TOKEN_AMPERSAND                          1300
#define TOKEN_COMMA                              1400
#define TOKEN_SINGLE_QUOTE                       1500
#define TOKEN_DOUBLE_QUOTE                       1600
#define TOKEN_STRING                             1700
#define TOKEN_ASSIGNMENT                         1800
#define TOKEN_LEFT_CURLY_BRACE                   1900
#define TOKEN_RIGHT_CURLY_BRACE                  1901
#define TOKEN_SEMICOLON                          2000
#define TOKEN_COLON                              2100
#define TOKEN_PERIOD                             2200
#define TOKEN_TRUE                               2300
#define TOKEN_FALSE                              2301
