76 #define JSONLEX_FREE_STRUCT (1 << 0)
77 #define JSONLEX_FREE_STRVAL (1 << 1)
PGDLLIMPORT JsonSemAction nullSemAction
struct JsonLexContext JsonLexContext
JsonParseErrorType(* json_struct_action)(void *state)
JsonParseErrorType(* json_aelem_action)(void *state, bool isnull)
@ JSON_EXPECTED_ARRAY_FIRST
@ JSON_UNICODE_HIGH_SURROGATE
@ JSON_EXPECTED_OBJECT_FIRST
@ JSON_UNICODE_CODE_POINT_ZERO
@ JSON_UNICODE_ESCAPE_FORMAT
@ JSON_UNICODE_UNTRANSLATABLE
@ JSON_EXPECTED_OBJECT_NEXT
@ JSON_EXPECTED_ARRAY_NEXT
@ JSON_UNICODE_HIGH_ESCAPE
@ JSON_UNICODE_LOW_SURROGATE
JsonParseErrorType(* json_ofield_action)(void *state, char *fname, bool isnull)
char * json_errdetail(JsonParseErrorType error, JsonLexContext *lex)
bool IsValidJsonNumber(const char *str, int len)
JsonParseErrorType pg_parse_json(JsonLexContext *lex, JsonSemAction *sem)
@ JSON_TOKEN_OBJECT_START
JsonParseErrorType json_lex(JsonLexContext *lex)
JsonParseErrorType(* json_scalar_action)(void *state, char *token, JsonTokenType tokentype)
JsonLexContext * makeJsonLexContextCstringLen(JsonLexContext *lex, char *json, int len, int encoding, bool need_escapes)
JsonParseErrorType json_count_array_elements(JsonLexContext *lex, int *elements)
void freeJsonLexContext(JsonLexContext *lex)
struct JsonSemAction JsonSemAction
char * prev_token_terminator
json_struct_action array_end
json_struct_action object_start
json_ofield_action object_field_start
json_aelem_action array_element_start
json_scalar_action scalar
json_aelem_action array_element_end
json_struct_action array_start
json_struct_action object_end
json_ofield_action object_field_end