Update column width and write row state as a comment
This commit is contained in:
		| @@ -96,7 +96,7 @@ void write_table(void) { | ||||
|   const char *array_open = "{ "; | ||||
|   const u64 array_open_length = strlen(array_open); | ||||
|  | ||||
|   const char *array_close = "},\n"; | ||||
|   const char *array_close = "},"; | ||||
|   const u64 array_close_length = strlen(array_close); | ||||
|  | ||||
|   const char *comment = "//"; | ||||
| @@ -114,11 +114,14 @@ void write_table(void) { | ||||
|  | ||||
|   fwrite(comment, sizeof(char), comment_length, fp); | ||||
|  | ||||
|   i32 column_white_space = 7; | ||||
|   i32 column_white_space = 0; | ||||
|  | ||||
|   for (u64 i = 0; i < COUNT_LEXER_INPUTS; ++i) { | ||||
|     sprintf(output, "%*s%*s| ", column_width - column_white_space, | ||||
|             get_input_string((lexer_input_t)i), column_white_space, " "); | ||||
|     const char *input_str = get_input_string((lexer_input_t)i); | ||||
|     column_white_space = (column_width - strlen(input_str)) / 2; | ||||
|  | ||||
|     sprintf(output, "%*s%*s| ", column_width - column_white_space, input_str, | ||||
|             column_white_space, " "); | ||||
|     length = strlen(output); | ||||
|     fwrite(output, sizeof(char), length, fp); | ||||
|   } | ||||
| @@ -137,6 +140,10 @@ void write_table(void) { | ||||
|  | ||||
|     fwrite(array_close, sizeof(char), array_close_length, fp); | ||||
|  | ||||
|     sprintf(output, "  // %s\n", get_state_string((lexer_state_t)i)); | ||||
|     length = strlen(output); | ||||
|     fwrite(output, sizeof(char), length, fp); | ||||
|  | ||||
|     memset(output, 0, STRING_BUF_LENGTH); | ||||
|   } | ||||
|  | ||||
| @@ -477,294 +484,170 @@ INTERNAL const char *get_input_string(lexer_input_t input) { | ||||
|  | ||||
| INTERNAL const char *get_state_string(lexer_state_t state) { | ||||
|   const char *output = ""; | ||||
|   i32 length = 0; | ||||
|  | ||||
|   switch (state) { | ||||
|   case LEXER_STATE_ERROR: | ||||
|     output = "LEXER_STATE_ERROR"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_START: | ||||
|     output = "LEXER_STATE_START"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_VALUE: | ||||
|     output = "LEXER_STATE_VALUE"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_VALUE_END: | ||||
|     output = "LEXER_STATE_VALUE_END"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_OBJECT_START: | ||||
|     output = "LEXER_STATE_OBJECT_START"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_OBJECT: | ||||
|     output = "LEXER_STATE_OBJECT"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_OBJECT_END: | ||||
|     output = "LEXER_STATE_OBJECT_END"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_ARRAY_START: | ||||
|     output = "LEXER_STATE_ARRAY_START"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_ARRAY: | ||||
|     output = "LEXER_STATE_ARRAY"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_ARRAY_END: | ||||
|     output = "LEXER_STATE_ARRAY_END"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_LAST_COLLECTION: | ||||
|     output = "LEXER_STATE_LAST_COLLECTION"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_KEY: | ||||
|     output = "LEXER_STATE_KEY"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_KEY_END: | ||||
|     output = "LEXER_STATE_KEY_END"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_DECIMAL: | ||||
|     output = "LEXER_STATE_DECIMAL"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_NUMBER: | ||||
|     output = "LEXER_STATE_NUMBER"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_FRACTION: | ||||
|     output = "LEXER_STATE_FRACTION"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_EXPONENT: | ||||
|     output = "LEXER_STATE_EXPONENT"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_EXP_SIGN: | ||||
|     output = "LEXER_STATE_EXP_SIGN"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_POWER: | ||||
|     output = "LEXER_STATE_POWER"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_NUMBER_END: | ||||
|     output = "LEXER_STATE_NUMBER_END"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_STRING: | ||||
|     output = "LEXER_STATE_STRING"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_STRING_END: | ||||
|     output = "LEXER_STATE_STRING_END"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_ESCAPE_SEQUENCE: | ||||
|     output = "LEXER_STATE_ESCAPE_SEQUENCE"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_UNICODE_HEX1: | ||||
|     output = "LEXER_STATE_UNICODE_HEX1"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_UNICODE_HEX2: | ||||
|     output = "LEXER_STATE_UNICODE_HEX2"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_UNICODE_HEX3: | ||||
|     output = "LEXER_STATE_UNICODE_HEX3"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_UNICODE_HEX4: | ||||
|     output = "LEXER_STATE_UNICODE_HEX4"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_T: | ||||
|     output = "LEXER_STATE_T"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_TR: | ||||
|     output = "LEXER_STATE_TR"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_TRU: | ||||
|     output = "LEXER_STATE_TRU"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_TRUE: | ||||
|     output = "LEXER_STATE_TRUE"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_F: | ||||
|     output = "LEXER_STATE_F"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_FA: | ||||
|     output = "LEXER_STATE_FA"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_FAL: | ||||
|     output = "LEXER_STATE_FAL"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_FALS: | ||||
|     output = "LEXER_STATE_FALS"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_FALSE: | ||||
|     output = "LEXER_STATE_FALSE"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_N: | ||||
|     output = "LEXER_STATE_N"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_NU: | ||||
|     output = "LEXER_STATE_NU"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_NUL: | ||||
|     output = "LEXER_STATE_NUL"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_NULL: | ||||
|     output = "LEXER_STATE_NULL"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|   case LEXER_STATE_KEYWORD_END: | ||||
|     output = "LEXER_STATE_KEYWORD_END"; | ||||
|     length = strlen(output); | ||||
|  | ||||
|     column_width = length > column_width ? length : column_width; | ||||
|  | ||||
|     return output; | ||||
|  | ||||
| @@ -1102,6 +985,8 @@ 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: | ||||
|   | ||||
| @@ -1,42 +1,42 @@ | ||||
| //         WHITE_SPACE       |           OPEN_BRACE       |          CLOSE_BRACE       |         OPEN_BRACKET       |        CLOSE_BRACKET       |                COMMA       |                COLON       |         DOUBLE_QUOTE       |           BACK_SLASH       |        FORWARD_SLASH       |              LOWER_A       |              LOWER_B       |              LOWER_C       |              LOWER_D       |              LOWER_E       |              LOWER_F       |              LOWER_L       |              LOWER_N       |              LOWER_R       |              LOWER_S       |              LOWER_T       |              LOWER_U       |              UPPER_A       |              UPPER_B       |              UPPER_C       |              UPPER_D       |              UPPER_E       |              UPPER_F       |                MINUS       |                 PLUS       |              DECIMAL       |                 ZERO       |             NON_ZERO       |                OTHER       |     | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, }, | ||||
| {           LEXER_STATE_START,    LEXER_STATE_OBJECT_START,           LEXER_STATE_ERROR,     LEXER_STATE_ARRAY_START,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, }, | ||||
| {           LEXER_STATE_VALUE,    LEXER_STATE_OBJECT_START,           LEXER_STATE_ERROR,     LEXER_STATE_ARRAY_START,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,          LEXER_STATE_STRING,           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_N,           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_NUMBER,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,         LEXER_STATE_DECIMAL,          LEXER_STATE_NUMBER,           LEXER_STATE_ERROR, }, | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, }, | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, }, | ||||
| {          LEXER_STATE_OBJECT,           LEXER_STATE_ERROR,      LEXER_STATE_OBJECT_END,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,             LEXER_STATE_KEY,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, }, | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, }, | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, }, | ||||
| {           LEXER_STATE_ARRAY,    LEXER_STATE_OBJECT_START,           LEXER_STATE_ERROR,     LEXER_STATE_ARRAY_START,       LEXER_STATE_ARRAY_END,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,          LEXER_STATE_STRING,           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_N,           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_NUMBER,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,         LEXER_STATE_DECIMAL,          LEXER_STATE_NUMBER,           LEXER_STATE_ERROR, }, | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, }, | ||||
| { LEXER_STATE_LAST_COLLECTION,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, }, | ||||
| {          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING, }, | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, }, | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,        LEXER_STATE_FRACTION,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, }, | ||||
| {      LEXER_STATE_NUMBER_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_FRACTION,          LEXER_STATE_NUMBER,          LEXER_STATE_NUMBER,           LEXER_STATE_ERROR, }, | ||||
| {      LEXER_STATE_NUMBER_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_EXPONENT,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,        LEXER_STATE_EXPONENT,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,        LEXER_STATE_FRACTION,        LEXER_STATE_FRACTION,           LEXER_STATE_ERROR, }, | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,        LEXER_STATE_EXP_SIGN,        LEXER_STATE_EXP_SIGN,           LEXER_STATE_ERROR,           LEXER_STATE_POWER,           LEXER_STATE_POWER,           LEXER_STATE_ERROR, }, | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_POWER,           LEXER_STATE_POWER,           LEXER_STATE_ERROR, }, | ||||
| {      LEXER_STATE_NUMBER_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_POWER,           LEXER_STATE_POWER,           LEXER_STATE_ERROR, }, | ||||
| {      LEXER_STATE_NUMBER_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_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,      LEXER_STATE_STRING_END, LEXER_STATE_ESCAPE_SEQUENCE,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING, }, | ||||
| {      LEXER_STATE_STRING_END,           LEXER_STATE_ERROR,      LEXER_STATE_OBJECT_END,           LEXER_STATE_ERROR,       LEXER_STATE_ARRAY_END,       LEXER_STATE_VALUE_END,         LEXER_STATE_KEY_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_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,           LEXER_STATE_ERROR,          LEXER_STATE_STRING,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,          LEXER_STATE_STRING,           LEXER_STATE_ERROR,          LEXER_STATE_STRING,          LEXER_STATE_STRING,           LEXER_STATE_ERROR,          LEXER_STATE_STRING,    LEXER_STATE_UNICODE_HEX1,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, }, | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,    LEXER_STATE_UNICODE_HEX2,    LEXER_STATE_UNICODE_HEX2,    LEXER_STATE_UNICODE_HEX2,    LEXER_STATE_UNICODE_HEX2,    LEXER_STATE_UNICODE_HEX2,    LEXER_STATE_UNICODE_HEX2,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,    LEXER_STATE_UNICODE_HEX2,    LEXER_STATE_UNICODE_HEX2,    LEXER_STATE_UNICODE_HEX2,    LEXER_STATE_UNICODE_HEX2,    LEXER_STATE_UNICODE_HEX2,    LEXER_STATE_UNICODE_HEX2,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,    LEXER_STATE_UNICODE_HEX2,    LEXER_STATE_UNICODE_HEX2,           LEXER_STATE_ERROR, }, | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,    LEXER_STATE_UNICODE_HEX3,    LEXER_STATE_UNICODE_HEX3,    LEXER_STATE_UNICODE_HEX3,    LEXER_STATE_UNICODE_HEX3,    LEXER_STATE_UNICODE_HEX3,    LEXER_STATE_UNICODE_HEX3,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,    LEXER_STATE_UNICODE_HEX3,    LEXER_STATE_UNICODE_HEX3,    LEXER_STATE_UNICODE_HEX3,    LEXER_STATE_UNICODE_HEX3,    LEXER_STATE_UNICODE_HEX3,    LEXER_STATE_UNICODE_HEX3,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,    LEXER_STATE_UNICODE_HEX3,    LEXER_STATE_UNICODE_HEX3,           LEXER_STATE_ERROR, }, | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,    LEXER_STATE_UNICODE_HEX4,    LEXER_STATE_UNICODE_HEX4,    LEXER_STATE_UNICODE_HEX4,    LEXER_STATE_UNICODE_HEX4,    LEXER_STATE_UNICODE_HEX4,    LEXER_STATE_UNICODE_HEX4,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,    LEXER_STATE_UNICODE_HEX4,    LEXER_STATE_UNICODE_HEX4,    LEXER_STATE_UNICODE_HEX4,    LEXER_STATE_UNICODE_HEX4,    LEXER_STATE_UNICODE_HEX4,    LEXER_STATE_UNICODE_HEX4,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,    LEXER_STATE_UNICODE_HEX4,    LEXER_STATE_UNICODE_HEX4,           LEXER_STATE_ERROR, }, | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,          LEXER_STATE_STRING,          LEXER_STATE_STRING,           LEXER_STATE_ERROR, }, | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_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_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_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_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_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_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_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_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_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_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_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_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_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_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_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_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_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_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_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_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_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_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_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, }, | ||||
| //        WHITE_SPACE        |          OPEN_BRACE        |         CLOSE_BRACE        |         OPEN_BRACKET       |        CLOSE_BRACKET       |            COMMA           |            COLON           |         DOUBLE_QUOTE       |          BACK_SLASH        |        FORWARD_SLASH       |           LOWER_A          |           LOWER_B          |           LOWER_C          |           LOWER_D          |           LOWER_E          |           LOWER_F          |           LOWER_L          |           LOWER_N          |           LOWER_R          |           LOWER_S          |           LOWER_T          |           LOWER_U          |           UPPER_A          |           UPPER_B          |           UPPER_C          |           UPPER_D          |           UPPER_E          |           UPPER_F          |            MINUS           |             PLUS           |           DECIMAL          |             ZERO           |           NON_ZERO         |            OTHER           |     | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, }, // LEXER_STATE_ERROR | ||||
| {           LEXER_STATE_START,    LEXER_STATE_OBJECT_START,           LEXER_STATE_ERROR,     LEXER_STATE_ARRAY_START,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, }, // LEXER_STATE_START | ||||
| {           LEXER_STATE_VALUE,    LEXER_STATE_OBJECT_START,           LEXER_STATE_ERROR,     LEXER_STATE_ARRAY_START,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,          LEXER_STATE_STRING,           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_N,           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_NUMBER,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,         LEXER_STATE_DECIMAL,          LEXER_STATE_NUMBER,           LEXER_STATE_ERROR, }, // LEXER_STATE_VALUE | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, }, // 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_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, }, // LEXER_STATE_OBJECT_START | ||||
| {          LEXER_STATE_OBJECT,           LEXER_STATE_ERROR,      LEXER_STATE_OBJECT_END,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,             LEXER_STATE_KEY,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, }, // LEXER_STATE_OBJECT | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, }, // LEXER_STATE_OBJECT_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_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, }, // LEXER_STATE_ARRAY_START | ||||
| {           LEXER_STATE_ARRAY,    LEXER_STATE_OBJECT_START,           LEXER_STATE_ERROR,     LEXER_STATE_ARRAY_START,       LEXER_STATE_ARRAY_END,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,          LEXER_STATE_STRING,           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_N,           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_NUMBER,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,         LEXER_STATE_DECIMAL,          LEXER_STATE_NUMBER,           LEXER_STATE_ERROR, }, // LEXER_STATE_ARRAY | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, }, // LEXER_STATE_ARRAY_END | ||||
| { LEXER_STATE_LAST_COLLECTION,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, }, // LEXER_STATE_LAST_COLLECTION | ||||
| {          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING, }, // LEXER_STATE_KEY | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, }, // LEXER_STATE_KEY_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_ERROR,           LEXER_STATE_ERROR,        LEXER_STATE_FRACTION,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, }, // LEXER_STATE_DECIMAL | ||||
| {      LEXER_STATE_NUMBER_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_FRACTION,          LEXER_STATE_NUMBER,          LEXER_STATE_NUMBER,           LEXER_STATE_ERROR, }, // LEXER_STATE_NUMBER | ||||
| {      LEXER_STATE_NUMBER_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_EXPONENT,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,        LEXER_STATE_EXPONENT,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,        LEXER_STATE_FRACTION,        LEXER_STATE_FRACTION,           LEXER_STATE_ERROR, }, // LEXER_STATE_FRACTION | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,        LEXER_STATE_EXP_SIGN,        LEXER_STATE_EXP_SIGN,           LEXER_STATE_ERROR,           LEXER_STATE_POWER,           LEXER_STATE_POWER,           LEXER_STATE_ERROR, }, // LEXER_STATE_EXPONENT | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_POWER,           LEXER_STATE_POWER,           LEXER_STATE_ERROR, }, // LEXER_STATE_EXP_SIGN | ||||
| {      LEXER_STATE_NUMBER_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_POWER,           LEXER_STATE_POWER,           LEXER_STATE_ERROR, }, // LEXER_STATE_POWER | ||||
| {      LEXER_STATE_NUMBER_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_NUMBER_END | ||||
| {          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,      LEXER_STATE_STRING_END, LEXER_STATE_ESCAPE_SEQUENCE,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING, }, // LEXER_STATE_STRING | ||||
| {      LEXER_STATE_STRING_END,           LEXER_STATE_ERROR,      LEXER_STATE_OBJECT_END,           LEXER_STATE_ERROR,       LEXER_STATE_ARRAY_END,       LEXER_STATE_VALUE_END,         LEXER_STATE_KEY_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_STRING_END | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,           LEXER_STATE_ERROR,          LEXER_STATE_STRING,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,          LEXER_STATE_STRING,           LEXER_STATE_ERROR,          LEXER_STATE_STRING,          LEXER_STATE_STRING,           LEXER_STATE_ERROR,          LEXER_STATE_STRING,    LEXER_STATE_UNICODE_HEX1,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR, }, // LEXER_STATE_ESCAPE_SEQUENCE | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,    LEXER_STATE_UNICODE_HEX2,    LEXER_STATE_UNICODE_HEX2,    LEXER_STATE_UNICODE_HEX2,    LEXER_STATE_UNICODE_HEX2,    LEXER_STATE_UNICODE_HEX2,    LEXER_STATE_UNICODE_HEX2,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,    LEXER_STATE_UNICODE_HEX2,    LEXER_STATE_UNICODE_HEX2,    LEXER_STATE_UNICODE_HEX2,    LEXER_STATE_UNICODE_HEX2,    LEXER_STATE_UNICODE_HEX2,    LEXER_STATE_UNICODE_HEX2,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,    LEXER_STATE_UNICODE_HEX2,    LEXER_STATE_UNICODE_HEX2,           LEXER_STATE_ERROR, }, // LEXER_STATE_UNICODE_HEX1 | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,    LEXER_STATE_UNICODE_HEX3,    LEXER_STATE_UNICODE_HEX3,    LEXER_STATE_UNICODE_HEX3,    LEXER_STATE_UNICODE_HEX3,    LEXER_STATE_UNICODE_HEX3,    LEXER_STATE_UNICODE_HEX3,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,    LEXER_STATE_UNICODE_HEX3,    LEXER_STATE_UNICODE_HEX3,    LEXER_STATE_UNICODE_HEX3,    LEXER_STATE_UNICODE_HEX3,    LEXER_STATE_UNICODE_HEX3,    LEXER_STATE_UNICODE_HEX3,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,    LEXER_STATE_UNICODE_HEX3,    LEXER_STATE_UNICODE_HEX3,           LEXER_STATE_ERROR, }, // LEXER_STATE_UNICODE_HEX2 | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,    LEXER_STATE_UNICODE_HEX4,    LEXER_STATE_UNICODE_HEX4,    LEXER_STATE_UNICODE_HEX4,    LEXER_STATE_UNICODE_HEX4,    LEXER_STATE_UNICODE_HEX4,    LEXER_STATE_UNICODE_HEX4,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,    LEXER_STATE_UNICODE_HEX4,    LEXER_STATE_UNICODE_HEX4,    LEXER_STATE_UNICODE_HEX4,    LEXER_STATE_UNICODE_HEX4,    LEXER_STATE_UNICODE_HEX4,    LEXER_STATE_UNICODE_HEX4,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,    LEXER_STATE_UNICODE_HEX4,    LEXER_STATE_UNICODE_HEX4,           LEXER_STATE_ERROR, }, // LEXER_STATE_UNICODE_HEX3 | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,          LEXER_STATE_STRING,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,          LEXER_STATE_STRING,          LEXER_STATE_STRING,           LEXER_STATE_ERROR, }, // LEXER_STATE_UNICODE_HEX4 | ||||
| {           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_ERROR,           LEXER_STATE_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_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_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_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