From fd8231b02d9994f164a4ccb00a7b4ecc2abae99c Mon Sep 17 00:00:00 2001 From: Abdelrahman Date: Sun, 23 Jul 2023 22:49:23 +0100 Subject: [PATCH] Pull states and inputs enums to a separate header --- include/lexer/lexer_data.h | 93 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 include/lexer/lexer_data.h diff --git a/include/lexer/lexer_data.h b/include/lexer/lexer_data.h new file mode 100644 index 0000000..9463a9e --- /dev/null +++ b/include/lexer/lexer_data.h @@ -0,0 +1,93 @@ +#ifndef LEXER_DATA_H +#define LEXER_DATA_H + +typedef enum { + // GENERAL STATES + LEXER_STATE_ERROR, + LEXER_STATE_START, + LEXER_STATE_VALUE, + // COLLECTION STATES + LEXER_STATE_OBJECT_START, + LEXER_STATE_OBJECT, + LEXER_STATE_OBJECT_END, + LEXER_STATE_ARRAY_START, + LEXER_STATE_ARRAY, + LEXER_STATE_ARRAY_END, + LEXER_STATE_LAST_COLLECTION, + // OBJECT STATES + LEXER_STATE_KEY, + // NUMBER STATES + LEXER_STATE_DECIMAL, + LEXER_STATE_NUMBER, + LEXER_STATE_FRACTION, + LEXER_STATE_EXPONENT, + LEXER_STATE_EXP_SIGN, + LEXER_STATE_POWER, + LEXER_STATE_NUMBER_END, + // STRING STATES + LEXER_STATE_STRING, + LEXER_STATE_STRING_END, + LEXER_STATE_ESCAPE_SEQUENCE, + LEXER_STATE_UNICODE_HEX1, + LEXER_STATE_UNICODE_HEX2, + LEXER_STATE_UNICODE_HEX3, + LEXER_STATE_UNICODE_HEX4, + // KEYWORD STATES + LEXER_STATE_T, + LEXER_STATE_TR, + LEXER_STATE_TRU, + LEXER_STATE_TRUE, + LEXER_STATE_F, + LEXER_STATE_FA, + LEXER_STATE_FAL, + LEXER_STATE_FALS, + LEXER_STATE_FALSE, + LEXER_STATE_N, + LEXER_STATE_NU, + LEXER_STATE_NUL, + LEXER_STATE_NULL, + LEXER_STATE_KEYWORD_END, + + COUNT_LEXER_STATES, +} lexer_state_t; + +typedef enum { + LEXER_INPUT_WHITE_SPACE, + LEXER_INPUT_OPEN_BRACE, + LEXER_INPUT_CLOSE_BRACE, + LEXER_INPUT_OPEN_BRACKET, + LEXER_INPUT_CLOSE_BRACKET, + LEXER_INPUT_COMMA, + LEXER_INPUT_COLON, + LEXER_INPUT_DOUBLE_QUOTE, + LEXER_INPUT_BACK_SLASH, + LEXER_INPUT_FORWARD_SLASH, + LEXER_INPUT_LOWER_A, + LEXER_INPUT_LOWER_B, + LEXER_INPUT_LOWER_C, + LEXER_INPUT_LOWER_D, + LEXER_INPUT_LOWER_E, + LEXER_INPUT_LOWER_F, + LEXER_INPUT_LOWER_L, + LEXER_INPUT_LOWER_N, + LEXER_INPUT_LOWER_R, + LEXER_INPUT_LOWER_S, + LEXER_INPUT_LOWER_T, + LEXER_INPUT_LOWER_U, + LEXER_INPUT_UPPER_A, + LEXER_INPUT_UPPER_B, + LEXER_INPUT_UPPER_C, + LEXER_INPUT_UPPER_D, + LEXER_INPUT_UPPER_E, + LEXER_INPUT_UPPER_F, + LEXER_INPUT_MINUS, + LEXER_INPUT_PLUS, + LEXER_INPUT_DECIMAL, + LEXER_INPUT_ZERO, + LEXER_INPUT_NON_ZERO, + LEXER_INPUT_OTHER, + + COUNT_LEXER_INPUTS, +} lexer_input_t; + +#endif // !LEXER_DATA_H