Pull states and inputs enums to a separate header
This commit is contained in:
		
							
								
								
									
										93
									
								
								include/lexer/lexer_data.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								include/lexer/lexer_data.h
									
									
									
									
									
										Normal 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 | ||||
		Reference in New Issue
	
	Block a user