Pull states and inputs enums to a separate header

This commit is contained in:
Abdelrahman Said 2023-07-23 22:49:23 +01:00
parent 09f2315b66
commit fd8231b02d

View File

@ -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