Fix keyword handling so the final keyword states don't consume input
This commit is contained in:
		| @@ -702,8 +702,6 @@ lexer_state_t lexer_state_machine(lexer_state_t state, lexer_input_t input) { | ||||
|     return handle_true(input, LEXER_STATE_TR); | ||||
|   case LEXER_STATE_TRU: | ||||
|     return handle_true(input, LEXER_STATE_TRU); | ||||
|   case LEXER_STATE_TRUE: | ||||
|     return handle_true(input, LEXER_STATE_TRUE); | ||||
|   case LEXER_STATE_F: | ||||
|     return handle_false(input, LEXER_STATE_F); | ||||
|   case LEXER_STATE_FA: | ||||
| @@ -712,20 +710,19 @@ lexer_state_t lexer_state_machine(lexer_state_t state, lexer_input_t input) { | ||||
|     return handle_false(input, LEXER_STATE_FAL); | ||||
|   case LEXER_STATE_FALS: | ||||
|     return handle_false(input, LEXER_STATE_FALS); | ||||
|   case LEXER_STATE_FALSE: | ||||
|     return handle_false(input, LEXER_STATE_FALSE); | ||||
|   case LEXER_STATE_N: | ||||
|     return handle_null(input, LEXER_STATE_N); | ||||
|   case LEXER_STATE_NU: | ||||
|     return handle_null(input, LEXER_STATE_NU); | ||||
|   case LEXER_STATE_NUL: | ||||
|     return handle_null(input, LEXER_STATE_NUL); | ||||
|   case LEXER_STATE_NULL: | ||||
|     return handle_null(input, LEXER_STATE_NULL); | ||||
|   case LEXER_STATE_KEYWORD_END: | ||||
|     return handle_keyword_end(input); | ||||
|   case LEXER_STATE_LAST_COLLECTION: | ||||
|     return handle_last_collection(input); | ||||
|   case LEXER_STATE_TRUE: | ||||
|   case LEXER_STATE_FALSE: | ||||
|   case LEXER_STATE_NULL: | ||||
|   case LEXER_STATE_OBJECT_START: | ||||
|   case LEXER_STATE_ARRAY_START: | ||||
|   case LEXER_STATE_OBJECT_END: | ||||
| @@ -985,8 +982,6 @@ lexer_state_t handle_number_end(lexer_input_t input) { | ||||
|   } | ||||
| } | ||||
|  | ||||
| // TODO (Abdelrahman): Fix handling keywords | ||||
|  | ||||
| lexer_state_t handle_true(lexer_input_t input, lexer_state_t start_state) { | ||||
|   switch (start_state) { | ||||
|   case LEXER_STATE_T: | ||||
| @@ -995,8 +990,6 @@ lexer_state_t handle_true(lexer_input_t input, lexer_state_t start_state) { | ||||
|     return input == LEXER_INPUT_LOWER_U ? LEXER_STATE_TRU : LEXER_STATE_ERROR; | ||||
|   case LEXER_STATE_TRU: | ||||
|     return input == LEXER_INPUT_LOWER_E ? LEXER_STATE_TRUE : LEXER_STATE_ERROR; | ||||
|   case LEXER_STATE_TRUE: | ||||
|     return LEXER_STATE_KEYWORD_END; | ||||
|   default: | ||||
|     return LEXER_STATE_ERROR; | ||||
|   } | ||||
| @@ -1012,8 +1005,6 @@ lexer_state_t handle_false(lexer_input_t input, lexer_state_t start_state) { | ||||
|     return input == LEXER_INPUT_LOWER_S ? LEXER_STATE_FALS : LEXER_STATE_ERROR; | ||||
|   case LEXER_STATE_FALS: | ||||
|     return input == LEXER_INPUT_LOWER_E ? LEXER_STATE_FALSE : LEXER_STATE_ERROR; | ||||
|   case LEXER_STATE_FALSE: | ||||
|     return LEXER_STATE_KEYWORD_END; | ||||
|   default: | ||||
|     return LEXER_STATE_ERROR; | ||||
|   } | ||||
| @@ -1027,8 +1018,6 @@ lexer_state_t handle_null(lexer_input_t input, lexer_state_t start_state) { | ||||
|     return input == LEXER_INPUT_LOWER_L ? LEXER_STATE_NUL : LEXER_STATE_ERROR; | ||||
|   case LEXER_STATE_NUL: | ||||
|     return input == LEXER_INPUT_LOWER_L ? LEXER_STATE_NULL : LEXER_STATE_ERROR; | ||||
|   case LEXER_STATE_NULL: | ||||
|     return LEXER_STATE_KEYWORD_END; | ||||
|   default: | ||||
|     return LEXER_STATE_ERROR; | ||||
|   } | ||||
|   | ||||
| @@ -29,14 +29,14 @@ | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,              LEXER_STATE_TR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, },  // LEXER_STATE_T | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,             LEXER_STATE_TRU,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, },  // LEXER_STATE_TR | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,            LEXER_STATE_TRUE,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, },  // LEXER_STATE_TRU | ||||
| {     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END, },  // LEXER_STATE_TRUE | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, },  // LEXER_STATE_TRUE | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,              LEXER_STATE_FA,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, },  // LEXER_STATE_F | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,             LEXER_STATE_FAL,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, },  // LEXER_STATE_FA | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,            LEXER_STATE_FALS,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, },  // LEXER_STATE_FAL | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_FALSE,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, },  // LEXER_STATE_FALS | ||||
| {     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END, },  // LEXER_STATE_FALSE | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, },  // LEXER_STATE_FALSE | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,              LEXER_STATE_NU,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, },  // LEXER_STATE_N | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,             LEXER_STATE_NUL,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, },  // LEXER_STATE_NU | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,            LEXER_STATE_NULL,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, },  // LEXER_STATE_NUL | ||||
| {     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END,     LEXER_STATE_KEYWORD_END, },  // LEXER_STATE_NULL | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, },  // LEXER_STATE_NULL | ||||
| {     LEXER_STATE_KEYWORD_END,           LEXER_STATE_ERROR,      LEXER_STATE_OBJECT_END,           LEXER_STATE_ERROR,       LEXER_STATE_ARRAY_END,       LEXER_STATE_VALUE_END,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, },  // LEXER_STATE_KEYWORD_END | ||||
|   | ||||
		Reference in New Issue
	
	Block a user