RetroArch
Classes | Macros | Typedefs | Functions | Variables
jsonsax_full.c File Reference
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <formats/jsonsax_full.h>
Include dependency graph for jsonsax_full.c:

Classes

struct  tag_DecoderData
 
struct  tag_GrammarianData
 
struct  tag_GrammarRule
 
struct  tag_MemberName
 
struct  tag_MemberNames
 
struct  JSON_Parser_Data
 
struct  JSON_Writer_Data
 
struct  tag_WriteBufferData
 

Macros

#define SIZE_MAX   ((size_t)-1)
 
#define JSON_BUILDING
 
#define DEFAULT_TOKEN_BYTES_LENGTH   64 /* MUST be a power of 2 */
 
#define DEFAULT_SYMBOL_STACK_SIZE   32 /* MUST be a power of 2 */
 
#define U_(x)   ((Codepoint)(x))
 
#define NULL_CODEPOINT   U_(0x0000)
 
#define BACKSPACE_CODEPOINT   U_(0x0008)
 
#define TAB_CODEPOINT   U_(0x0009)
 
#define LINE_FEED_CODEPOINT   U_(0x000A)
 
#define FORM_FEED_CODEPOINT   U_(0x000C)
 
#define CARRIAGE_RETURN_CODEPOINT   U_(0x000D)
 
#define FIRST_NON_CONTROL_CODEPOINT   U_(0x0020)
 
#define DELETE_CODEPOINT   U_(0x007F)
 
#define FIRST_NON_ASCII_CODEPOINT   U_(0x0080)
 
#define FIRST_2_BYTE_UTF8_CODEPOINT   U_(0x0080)
 
#define FIRST_3_BYTE_UTF8_CODEPOINT   U_(0x0800)
 
#define LINE_SEPARATOR_CODEPOINT   U_(0x2028)
 
#define PARAGRAPH_SEPARATOR_CODEPOINT   U_(0x2029)
 
#define BOM_CODEPOINT   U_(0xFEFF)
 
#define REPLACEMENT_CHARACTER_CODEPOINT   U_(0xFFFD)
 
#define FIRST_NON_BMP_CODEPOINT   U_(0x10000)
 
#define FIRST_4_BYTE_UTF8_CODEPOINT   U_(0x10000)
 
#define MAX_CODEPOINT   U_(0x10FFFF)
 
#define EOF_CODEPOINT   U_(0xFFFFFFFF)
 
#define BOTTOM_3_BITS(x)   ((x) & 0x7)
 
#define BOTTOM_4_BITS(x)   ((x) & 0xF)
 
#define BOTTOM_5_BITS(x)   ((x) & 0x1F)
 
#define BOTTOM_6_BITS(x)   ((x) & 0x3F)
 
#define GET_FLAGS(x, f)   ((x) & (f))
 
#define SET_FLAGS_ON(flagstype, x, f)   do { (x) |= (flagstype)(f); } while (0)
 
#define SET_FLAGS_OFF(flagstype, x, f)   do { (x) &= (flagstype)~(f); } while (0)
 
#define SET_FLAGS(flagstype, x, f, cond)   do { if (cond) (x) |= (flagstype)(f); else (x) &= (flagstype)~(f); } while (0)
 
#define IS_UTF8_SINGLE_BYTE(b)   (((b) & 0x80) == 0)
 
#define IS_UTF8_CONTINUATION_BYTE(b)   (((b) & 0xC0) == 0x80)
 
#define IS_UTF8_FIRST_BYTE_OF_2(b)   (((b) & 0xE0) == 0xC0)
 
#define IS_UTF8_FIRST_BYTE_OF_3(b)   (((b) & 0xF0) == 0xE0)
 
#define IS_UTF8_FIRST_BYTE_OF_4(b)   (((b) & 0xF8) == 0xF0)
 
#define IS_NONCHARACTER(c)   ((((c) & 0xFE) == 0xFE) || (((c) >= 0xFDD0) && ((c) <= 0xFDEF)))
 
#define IS_SURROGATE(c)   (((c) & 0xFFFFF800) == 0xD800)
 
#define IS_LEADING_SURROGATE(c)   (((c) & 0xFFFFFC00) == 0xD800)
 
#define IS_TRAILING_SURROGATE(c)   (((c) & 0xFFFFFC00) == 0xDC00)
 
#define CODEPOINT_FROM_SURROGATES(hi_lo)   ((((hi_lo) >> 16) << 10) + ((hi_lo) & 0xFFFF) + 0xFCA02400)
 
#define SURROGATES_FROM_CODEPOINT(c)   ((((c) << 6) & 0x7FF0000) + ((c) & 0x3FF) + 0xD7C0DC00)
 
#define SHORTEST_ENCODING_SEQUENCE(enc)   (1U << ((enc) >> 1))
 
#define LONGEST_ENCODING_SEQUENCE   4
 
#define DECODER_RESET   0x00
 
#define DECODED_1_OF_2   0x09 /* 00001001 */
 
#define DECODED_1_OF_3   0x0D /* 00001101 */
 
#define DECODED_2_OF_3   0x0E /* 00001110 */
 
#define DECODED_1_OF_4   0x11 /* 00010001 */
 
#define DECODED_2_OF_4   0x12 /* 00010010 */
 
#define DECODED_3_OF_4   0x13 /* 00010011 */
 
#define DECODER_STATE_BYTES(s)   (size_t)((s) & 0x3)
 
#define SEQUENCE_PENDING   0
 
#define SEQUENCE_COMPLETE   1
 
#define SEQUENCE_INVALID_INCLUSIVE   2
 
#define SEQUENCE_INVALID_EXCLUSIVE   3
 
#define DECODER_OUTPUT(r, l, c)   (DecoderOutput)(((r) << 24) | ((l) << 21) | (c))
 
#define DECODER_RESULT_CODE(o)   (DecoderResultCode)((DecoderOutput)(o) >> 24)
 
#define DECODER_SEQUENCE_LENGTH(o)   (size_t)(((DecoderOutput)(o) >> 21) & 0x7)
 
#define DECODER_CODEPOINT(o)   (Codepoint)((DecoderOutput)(o) & 0x001FFFFF)
 
#define LEXING_WHITESPACE   0
 
#define LEXING_LITERAL   1
 
#define LEXING_STRING   2
 
#define LEXING_STRING_ESCAPE   3
 
#define LEXING_STRING_HEX_ESCAPE_BYTE_1   4
 
#define LEXING_STRING_HEX_ESCAPE_BYTE_2   5
 
#define LEXING_STRING_HEX_ESCAPE_BYTE_3   6
 
#define LEXING_STRING_HEX_ESCAPE_BYTE_4   7
 
#define LEXING_STRING_HEX_ESCAPE_BYTE_5   8
 
#define LEXING_STRING_HEX_ESCAPE_BYTE_6   9
 
#define LEXING_STRING_HEX_ESCAPE_BYTE_7   10
 
#define LEXING_STRING_HEX_ESCAPE_BYTE_8   11
 
#define LEXING_STRING_TRAILING_SURROGATE_HEX_ESCAPE_BACKSLASH   12
 
#define LEXING_STRING_TRAILING_SURROGATE_HEX_ESCAPE_U   13
 
#define LEXING_NUMBER_AFTER_MINUS   14
 
#define LEXING_NUMBER_AFTER_LEADING_ZERO   15
 
#define LEXING_NUMBER_AFTER_LEADING_NEGATIVE_ZERO   16
 
#define LEXING_NUMBER_AFTER_X   17
 
#define LEXING_NUMBER_HEX_DIGITS   18
 
#define LEXING_NUMBER_DECIMAL_DIGITS   19
 
#define LEXING_NUMBER_AFTER_DOT   20
 
#define LEXING_NUMBER_FRACTIONAL_DIGITS   21
 
#define LEXING_NUMBER_AFTER_E   22
 
#define LEXING_NUMBER_AFTER_EXPONENT_SIGN   23
 
#define LEXING_NUMBER_EXPONENT_DIGITS   24
 
#define LEXING_COMMENT_AFTER_SLASH   25
 
#define LEXING_SINGLE_LINE_COMMENT   26
 
#define LEXING_MULTI_LINE_COMMENT   27
 
#define LEXING_MULTI_LINE_COMMENT_AFTER_STAR   28
 
#define LEXER_ERROR   255
 
#define T_NONE   0x00 /* tokens are in the form 0x0X */
 
#define T_NULL   0x01
 
#define T_TRUE   0x02
 
#define T_FALSE   0x03
 
#define T_STRING   0x04
 
#define T_NUMBER   0x05
 
#define T_NAN   0x06
 
#define T_INFINITY   0x07
 
#define T_NEGATIVE_INFINITY   0x08
 
#define T_LEFT_CURLY   0x09
 
#define T_RIGHT_CURLY   0x0A
 
#define T_LEFT_SQUARE   0x0B
 
#define T_RIGHT_SQUARE   0x0C
 
#define T_COLON   0x0D
 
#define T_COMMA   0x0E
 
#define NT_VALUE   0x10 /* non-terminals are in the form 0x1X */
 
#define NT_MEMBERS   0x11
 
#define NT_MEMBER   0x12
 
#define NT_MORE_MEMBERS   0x13
 
#define NT_ITEMS   0x14
 
#define NT_ITEM   0x15
 
#define NT_MORE_ITEMS   0x16
 
#define IS_NONTERMINAL(s)   ((s) & 0x10)
 
#define IS_TOKEN(s)   !IS_NONTERMINAL(s)
 
#define ACCEPTED_TOKEN   0
 
#define REJECTED_TOKEN   1
 
#define SYMBOL_STACK_FULL   2
 
#define EMIT_NOTHING   0x00
 
#define EMIT_NULL   0x01
 
#define EMIT_BOOLEAN   0x02
 
#define EMIT_STRING   0x03
 
#define EMIT_NUMBER   0x04
 
#define EMIT_SPECIAL_NUMBER   0x05
 
#define EMIT_START_OBJECT   0x06
 
#define EMIT_END_OBJECT   0x07
 
#define EMIT_OBJECT_MEMBER   0x08
 
#define EMIT_START_ARRAY   0x09
 
#define EMIT_END_ARRAY   0x0A
 
#define EMIT_ARRAY_ITEM   0x10 /* may be combined with other values */
 
#define GRAMMARIAN_OUTPUT(r, e)   (GrammarianOutput)(((GrammarianResultCode)(r) << 5) | (GrammarEvent)(e))
 
#define GRAMMARIAN_RESULT_CODE(o)   (GrammarianResultCode)((GrammarianOutput)(o) >> 5)
 
#define GRAMMARIAN_EVENT(o)   (GrammarEvent)((GrammarianOutput)(o) & 0x1F)
 
#define PARSER_RESET   0x00
 
#define PARSER_STARTED   0x01
 
#define PARSER_FINISHED   0x02
 
#define PARSER_IN_PROTECTED_API   0x04
 
#define PARSER_IN_TOKEN_HANDLER   0x08
 
#define PARSER_AFTER_CARRIAGE_RETURN   0x10
 
#define PARSER_DEFAULT_FLAGS   0x00
 
#define PARSER_ALLOW_BOM   0x01
 
#define PARSER_ALLOW_COMMENTS   0x02
 
#define PARSER_ALLOW_SPECIAL_NUMBERS   0x04
 
#define PARSER_ALLOW_HEX_NUMBERS   0x08
 
#define PARSER_REPLACE_INVALID   0x10
 
#define PARSER_TRACK_OBJECT_MEMBERS   0x20
 
#define PARSER_ALLOW_CONTROL_CHARS   0x40
 
#define PARSER_EMBEDDED_DOCUMENT   0x80
 
#define ERROR_LOCATION_IS_TOKEN_START   0xFF
 
#define NULL_LITERAL_EXPECTED_CHARS_START_INDEX   0
 
#define TRUE_LITERAL_EXPECTED_CHARS_START_INDEX   4
 
#define FALSE_LITERAL_EXPECTED_CHARS_START_INDEX   8
 
#define NAN_LITERAL_EXPECTED_CHARS_START_INDEX   13
 
#define INFINITY_LITERAL_EXPECTED_CHARS_START_INDEX   16
 
#define WRITER_RESET   0x0
 
#define WRITER_STARTED   0x1
 
#define WRITER_IN_PROTECTED_API   0x2
 
#define WRITER_DEFAULT_FLAGS   0x0
 
#define WRITER_USE_CRLF   0x1
 
#define WRITER_REPLACE_INVALID   0x2
 
#define WRITER_ESCAPE_NON_ASCII   0x4
 
#define SPACES_PER_CHUNK   8
 

Typedefs

typedef unsigned char byte
 
typedef uint32_t Codepoint
 
typedef byte Encoding
 
typedef byte Error
 
typedef byte TokenAttributes
 
typedef byte DecoderState
 
typedef struct tag_DecoderData DecoderData
 
typedef DecoderDataDecoder
 
typedef uint32_t DecoderResultCode
 
typedef uint32_t DecoderOutput
 
typedef byte LexerState
 
typedef byte Symbol
 
typedef struct tag_GrammarianData GrammarianData
 
typedef GrammarianDataGrammarian
 
typedef uint32_t GrammarianResultCode
 
typedef byte GrammarEvent
 
typedef byte GrammarianOutput
 
typedef struct tag_GrammarRule GrammarRule
 
typedef byte ParserState
 
typedef byte ParserFlags
 
typedef struct tag_MemberName MemberName
 
typedef struct tag_MemberNames MemberNames
 
typedef JSON_Parser_HandlerResult(JSON_CALLJSON_Parser_SimpleTokenHandler) (JSON_Parser parser)
 
typedef byte WriterState
 
typedef byte WriterFlags
 
typedef struct tag_WriteBufferData WriteBufferData
 
typedef WriteBufferDataWriteBuffer
 

Functions

static void *JSON_CALL DefaultReallocHandler (void *userData, void *ptr, size_t size)
 
static void JSON_CALL DefaultFreeHandler (void *userData, void *ptr)
 
static byteDoubleBuffer (const JSON_MemorySuite *pMemorySuite, byte *pDefaultBuffer, byte *pBuffer, size_t length)
 
static void Decoder_Reset (Decoder decoder)
 
static int Decoder_SequencePending (Decoder decoder)
 
static DecoderOutput Decoder_ProcessByte (Decoder decoder, Encoding encoding, byte b)
 
static size_t EncodeCodepoint (Codepoint c, Encoding encoding, byte *pBytes)
 
static void Grammarian_Reset (Grammarian grammarian, int isInitialized)
 
static void Grammarian_FreeAllocations (Grammarian grammarian, const JSON_MemorySuite *pMemorySuite)
 
static int Grammarian_FinishedDocument (Grammarian grammarian)
 
static GrammarianOutput Grammarian_ProcessToken (Grammarian grammarian, Symbol token, const JSON_MemorySuite *pMemorySuite)
 
static void JSON_Parser_SetErrorAtCodepoint (JSON_Parser parser, Error error)
 
static void JSON_Parser_SetErrorAtStringEscapeSequenceStart (JSON_Parser parser, Error error, int codepointsAgo)
 
static void JSON_Parser_SetErrorAtToken (JSON_Parser parser, Error error)
 
static JSON_Status JSON_Parser_PushMemberNameList (JSON_Parser parser)
 
static void JSON_Parser_PopMemberNameList (JSON_Parser parser)
 
static JSON_Status JSON_Parser_StartContainer (JSON_Parser parser, int isObject)
 
static void JSON_Parser_EndContainer (JSON_Parser parser, int isObject)
 
static JSON_Status JSON_Parser_AddMemberNameToList (JSON_Parser parser)
 
static void JSON_Parser_ResetData (JSON_Parser parser, int isInitialized)
 
static void JSON_Parser_NullTerminateToken (JSON_Parser parser)
 
static JSON_Status JSON_Parser_FlushParser (JSON_Parser parser)
 
static JSON_Status JSON_Parser_CallSimpleTokenHandler (JSON_Parser parser, JSON_Parser_SimpleTokenHandler handler)
 
static JSON_Status JSON_Parser_CallBooleanHandler (JSON_Parser parser)
 
static JSON_Status JSON_Parser_CallStringHandler (JSON_Parser parser, int isObjectMember)
 
static JSON_Status JSON_Parser_CallNumberHandler (JSON_Parser parser)
 
static JSON_Status JSON_Parser_CallSpecialNumberHandler (JSON_Parser parser)
 
static JSON_Status JSON_Parser_HandleGrammarEvents (JSON_Parser parser, byte emit)
 
static JSON_Status JSON_Parser_ProcessToken (JSON_Parser parser)
 
static JSON_Status JSON_Parser_FlushLexer (JSON_Parser parser)
 
static JSON_Status JSON_Parser_ProcessCodepoint (JSON_Parser parser, Codepoint c, size_t encodedLength)
 
static JSON_Status JSON_Parser_HandleInvalidEncodingSequence (JSON_Parser parser, size_t encodedLength)
 
static JSON_Status JSON_Parser_HandleInvalidNumber (JSON_Parser parser, Codepoint c, int codepointsSinceValidNumber, TokenAttributes attributesToRemove)
 
static void JSON_Parser_StartToken (JSON_Parser parser, Symbol token)
 
static JSON_Status JSON_Parser_CallEncodingDetectedHandler (JSON_Parser parser)
 
static JSON_Status JSON_Parser_ProcessInputBytes (JSON_Parser parser, const byte *pBytes, size_t length)
 
static JSON_Status JSON_Parser_ProcessUnknownByte (JSON_Parser parser, byte b)
 
static JSON_Status JSON_Parser_FlushDecoder (JSON_Parser parser)
 
JSON_Parser JSON_CALL JSON_Parser_Create (const JSON_MemorySuite *pMemorySuite)
 
JSON_Status JSON_CALL JSON_Parser_Free (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_Reset (JSON_Parser parser)
 
void *JSON_CALL JSON_Parser_GetUserData (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_SetUserData (JSON_Parser parser, void *userData)
 
JSON_Encoding JSON_CALL JSON_Parser_GetInputEncoding (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_SetInputEncoding (JSON_Parser parser, JSON_Encoding encoding)
 
JSON_Encoding JSON_CALL JSON_Parser_GetStringEncoding (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_SetStringEncoding (JSON_Parser parser, JSON_Encoding encoding)
 
size_t JSON_CALL JSON_Parser_GetMaxStringLength (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_SetMaxStringLength (JSON_Parser parser, size_t maxLength)
 
JSON_Encoding JSON_CALL JSON_Parser_GetNumberEncoding (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_SetNumberEncoding (JSON_Parser parser, JSON_Encoding encoding)
 
size_t JSON_CALL JSON_Parser_GetMaxNumberLength (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_SetMaxNumberLength (JSON_Parser parser, size_t maxLength)
 
JSON_Boolean JSON_CALL JSON_Parser_GetAllowBOM (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_SetAllowBOM (JSON_Parser parser, JSON_Boolean allowBOM)
 
JSON_Boolean JSON_CALL JSON_Parser_GetAllowComments (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_SetAllowComments (JSON_Parser parser, JSON_Boolean allowComments)
 
JSON_Boolean JSON_CALL JSON_Parser_GetAllowSpecialNumbers (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_SetAllowSpecialNumbers (JSON_Parser parser, JSON_Boolean allowSpecialNumbers)
 
JSON_Boolean JSON_CALL JSON_Parser_GetAllowHexNumbers (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_SetAllowHexNumbers (JSON_Parser parser, JSON_Boolean allowHexNumbers)
 
JSON_Boolean JSON_CALL JSON_Parser_GetAllowUnescapedControlCharacters (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_SetAllowUnescapedControlCharacters (JSON_Parser parser, JSON_Boolean allowUnescapedControlCharacters)
 
JSON_Boolean JSON_CALL JSON_Parser_GetReplaceInvalidEncodingSequences (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_SetReplaceInvalidEncodingSequences (JSON_Parser parser, JSON_Boolean replaceInvalidEncodingSequences)
 
JSON_Boolean JSON_CALL JSON_Parser_GetTrackObjectMembers (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_SetTrackObjectMembers (JSON_Parser parser, JSON_Boolean trackObjectMembers)
 
JSON_Boolean JSON_CALL JSON_Parser_GetStopAfterEmbeddedDocument (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_SetStopAfterEmbeddedDocument (JSON_Parser parser, JSON_Boolean stopAfterEmbeddedDocument)
 
JSON_Error JSON_CALL JSON_Parser_GetError (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_GetErrorLocation (JSON_Parser parser, JSON_Location *pLocation)
 
JSON_Status JSON_CALL JSON_Parser_GetTokenLocation (JSON_Parser parser, JSON_Location *pLocation)
 
JSON_Status JSON_CALL JSON_Parser_GetAfterTokenLocation (JSON_Parser parser, JSON_Location *pLocation)
 
JSON_Parser_NullHandler JSON_CALL JSON_Parser_GetEncodingDetectedHandler (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_SetEncodingDetectedHandler (JSON_Parser parser, JSON_Parser_EncodingDetectedHandler handler)
 
JSON_Parser_NullHandler JSON_CALL JSON_Parser_GetNullHandler (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_SetNullHandler (JSON_Parser parser, JSON_Parser_NullHandler handler)
 
JSON_Parser_BooleanHandler JSON_CALL JSON_Parser_GetBooleanHandler (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_SetBooleanHandler (JSON_Parser parser, JSON_Parser_BooleanHandler handler)
 
JSON_Parser_StringHandler JSON_CALL JSON_Parser_GetStringHandler (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_SetStringHandler (JSON_Parser parser, JSON_Parser_StringHandler handler)
 
JSON_Parser_NumberHandler JSON_CALL JSON_Parser_GetNumberHandler (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_SetNumberHandler (JSON_Parser parser, JSON_Parser_NumberHandler handler)
 
JSON_Parser_SpecialNumberHandler JSON_CALL JSON_Parser_GetSpecialNumberHandler (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_SetSpecialNumberHandler (JSON_Parser parser, JSON_Parser_SpecialNumberHandler handler)
 
JSON_Parser_StartObjectHandler JSON_CALL JSON_Parser_GetStartObjectHandler (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_SetStartObjectHandler (JSON_Parser parser, JSON_Parser_StartObjectHandler handler)
 
JSON_Parser_EndObjectHandler JSON_CALL JSON_Parser_GetEndObjectHandler (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_SetEndObjectHandler (JSON_Parser parser, JSON_Parser_EndObjectHandler handler)
 
JSON_Parser_ObjectMemberHandler JSON_CALL JSON_Parser_GetObjectMemberHandler (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_SetObjectMemberHandler (JSON_Parser parser, JSON_Parser_ObjectMemberHandler handler)
 
JSON_Parser_StartArrayHandler JSON_CALL JSON_Parser_GetStartArrayHandler (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_SetStartArrayHandler (JSON_Parser parser, JSON_Parser_StartArrayHandler handler)
 
JSON_Parser_EndArrayHandler JSON_CALL JSON_Parser_GetEndArrayHandler (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_SetEndArrayHandler (JSON_Parser parser, JSON_Parser_EndArrayHandler handler)
 
JSON_Parser_ArrayItemHandler JSON_CALL JSON_Parser_GetArrayItemHandler (JSON_Parser parser)
 
JSON_Status JSON_CALL JSON_Parser_SetArrayItemHandler (JSON_Parser parser, JSON_Parser_ArrayItemHandler handler)
 
JSON_Status JSON_CALL JSON_Parser_Parse (JSON_Parser parser, const char *pBytes, size_t length, JSON_Boolean isFinal)
 
static void JSON_Writer_ResetData (JSON_Writer writer, int isInitialized)
 
static void JSON_Writer_SetError (JSON_Writer writer, Error error)
 
static JSON_Status JSON_Writer_ProcessToken (JSON_Writer writer, Symbol token)
 
static JSON_Status JSON_Writer_OutputBytes (JSON_Writer writer, const byte *pBytes, size_t length)
 
static Codepoint JSON_Writer_GetCodepointEscapeCharacter (JSON_Writer writer, Codepoint c)
 
static void WriteBuffer_Reset (WriteBuffer buffer)
 
static JSON_Status WriteBuffer_Flush (WriteBuffer buffer, JSON_Writer writer)
 
static JSON_Status WriteBuffer_WriteBytes (WriteBuffer buffer, JSON_Writer writer, const byte *pBytes, size_t length)
 
static JSON_Status WriteBuffer_WriteCodepoint (WriteBuffer buffer, JSON_Writer writer, Codepoint c)
 
static JSON_Status WriteBuffer_WriteHexEscapeSequence (WriteBuffer buffer, JSON_Writer writer, Codepoint c)
 
static JSON_Status JSON_Writer_OutputString (JSON_Writer writer, const byte *pBytes, size_t length, Encoding encoding)
 
static LexerState LexNumberCharacter (LexerState state, Codepoint c)
 
static JSON_Status JSON_Writer_OutputNumber (JSON_Writer writer, const byte *pBytes, size_t length, Encoding encoding)
 
static JSON_Status JSON_Writer_OutputSpaces (JSON_Writer writer, size_t numberOfSpaces)
 
static JSON_Status JSON_Writer_WriteSimpleToken (JSON_Writer writer, Symbol token, const byte *const *encodings, size_t length)
 
JSON_Writer JSON_CALL JSON_Writer_Create (const JSON_MemorySuite *pMemorySuite)
 
JSON_Status JSON_CALL JSON_Writer_Free (JSON_Writer writer)
 
JSON_Status JSON_CALL JSON_Writer_Reset (JSON_Writer writer)
 
void *JSON_CALL JSON_Writer_GetUserData (JSON_Writer writer)
 
JSON_Status JSON_CALL JSON_Writer_SetUserData (JSON_Writer writer, void *userData)
 
JSON_Encoding JSON_CALL JSON_Writer_GetOutputEncoding (JSON_Writer writer)
 
JSON_Status JSON_CALL JSON_Writer_SetOutputEncoding (JSON_Writer writer, JSON_Encoding encoding)
 
JSON_Boolean JSON_CALL JSON_Writer_GetUseCRLF (JSON_Writer writer)
 
JSON_Status JSON_CALL JSON_Writer_SetUseCRLF (JSON_Writer writer, JSON_Boolean useCRLF)
 
JSON_Boolean JSON_CALL JSON_Writer_GetReplaceInvalidEncodingSequences (JSON_Writer writer)
 
JSON_Status JSON_CALL JSON_Writer_SetReplaceInvalidEncodingSequences (JSON_Writer writer, JSON_Boolean replaceInvalidEncodingSequences)
 
JSON_Boolean JSON_CALL JSON_Writer_GetEscapeAllNonASCIICharacters (JSON_Writer writer)
 
JSON_Status JSON_CALL JSON_Writer_SetEscapeAllNonASCIICharacters (JSON_Writer writer, JSON_Boolean escapeAllNonASCIICharacters)
 
JSON_Error JSON_CALL JSON_Writer_GetError (JSON_Writer writer)
 
JSON_Writer_OutputHandler JSON_CALL JSON_Writer_GetOutputHandler (JSON_Writer writer)
 
JSON_Status JSON_CALL JSON_Writer_SetOutputHandler (JSON_Writer writer, JSON_Writer_OutputHandler handler)
 
JSON_Status JSON_CALL JSON_Writer_WriteNull (JSON_Writer writer)
 
JSON_Status JSON_CALL JSON_Writer_WriteBoolean (JSON_Writer writer, JSON_Boolean value)
 
JSON_Status JSON_CALL JSON_Writer_WriteString (JSON_Writer writer, const char *pValue, size_t length, JSON_Encoding encoding)
 
JSON_Status JSON_CALL JSON_Writer_WriteNumber (JSON_Writer writer, const char *pValue, size_t length, JSON_Encoding encoding)
 
JSON_Status JSON_CALL JSON_Writer_WriteSpecialNumber (JSON_Writer writer, JSON_SpecialNumber value)
 
JSON_Status JSON_CALL JSON_Writer_WriteStartObject (JSON_Writer writer)
 
JSON_Status JSON_CALL JSON_Writer_WriteEndObject (JSON_Writer writer)
 
JSON_Status JSON_CALL JSON_Writer_WriteStartArray (JSON_Writer writer)
 
JSON_Status JSON_CALL JSON_Writer_WriteEndArray (JSON_Writer writer)
 
JSON_Status JSON_CALL JSON_Writer_WriteColon (JSON_Writer writer)
 
JSON_Status JSON_CALL JSON_Writer_WriteComma (JSON_Writer writer)
 
JSON_Status JSON_CALL JSON_Writer_WriteSpace (JSON_Writer writer, size_t numberOfSpaces)
 
JSON_Status JSON_CALL JSON_Writer_WriteNewLine (JSON_Writer writer)
 
const JSON_Version *JSON_CALL JSON_LibraryVersion (void)
 
const char *JSON_CALL JSON_ErrorString (JSON_Error error)
 
JSON_Encoding JSON_CALL JSON_NativeUTF16Encoding (void)
 
JSON_Encoding JSON_CALL JSON_NativeUTF32Encoding (void)
 

Variables

static const JSON_MemorySuite defaultMemorySuite = { NULL, &DefaultReallocHandler, &DefaultFreeHandler }
 
static const byte expectedLiteralChars [] = { 'u', 'l', 'l', 0, 'r', 'u', 'e', 0, 'a', 'l', 's', 'e', 0, 'a', 'N', 0, 'n', 'f', 'i', 'n', 'i', 't', 'y', 0 }
 
static const uint32_t endianEncodings = (((uint32_t)JSON_UTF32BE) << 24) | (((uint32_t)JSON_UTF16BE) << 16) | (((uint32_t)JSON_UTF16LE) << 8) | ((uint32_t)JSON_UTF32LE)
 

Macro Definition Documentation

◆ ACCEPTED_TOKEN

#define ACCEPTED_TOKEN   0

◆ BACKSPACE_CODEPOINT

#define BACKSPACE_CODEPOINT   U_(0x0008)

◆ BOM_CODEPOINT

#define BOM_CODEPOINT   U_(0xFEFF)

◆ BOTTOM_3_BITS

#define BOTTOM_3_BITS (   x)    ((x) & 0x7)

◆ BOTTOM_4_BITS

#define BOTTOM_4_BITS (   x)    ((x) & 0xF)

◆ BOTTOM_5_BITS

#define BOTTOM_5_BITS (   x)    ((x) & 0x1F)

◆ BOTTOM_6_BITS

#define BOTTOM_6_BITS (   x)    ((x) & 0x3F)

◆ CARRIAGE_RETURN_CODEPOINT

#define CARRIAGE_RETURN_CODEPOINT   U_(0x000D)

◆ CODEPOINT_FROM_SURROGATES

#define CODEPOINT_FROM_SURROGATES (   hi_lo)    ((((hi_lo) >> 16) << 10) + ((hi_lo) & 0xFFFF) + 0xFCA02400)

◆ DECODED_1_OF_2

#define DECODED_1_OF_2   0x09 /* 00001001 */

◆ DECODED_1_OF_3

#define DECODED_1_OF_3   0x0D /* 00001101 */

◆ DECODED_1_OF_4

#define DECODED_1_OF_4   0x11 /* 00010001 */

◆ DECODED_2_OF_3

#define DECODED_2_OF_3   0x0E /* 00001110 */

◆ DECODED_2_OF_4

#define DECODED_2_OF_4   0x12 /* 00010010 */

◆ DECODED_3_OF_4

#define DECODED_3_OF_4   0x13 /* 00010011 */

◆ DECODER_CODEPOINT

#define DECODER_CODEPOINT (   o)    (Codepoint)((DecoderOutput)(o) & 0x001FFFFF)

◆ DECODER_OUTPUT

#define DECODER_OUTPUT (   r,
  l,
  c 
)    (DecoderOutput)(((r) << 24) | ((l) << 21) | (c))

◆ DECODER_RESET

#define DECODER_RESET   0x00

◆ DECODER_RESULT_CODE

#define DECODER_RESULT_CODE (   o)    (DecoderResultCode)((DecoderOutput)(o) >> 24)

◆ DECODER_SEQUENCE_LENGTH

#define DECODER_SEQUENCE_LENGTH (   o)    (size_t)(((DecoderOutput)(o) >> 21) & 0x7)

◆ DECODER_STATE_BYTES

#define DECODER_STATE_BYTES (   s)    (size_t)((s) & 0x3)

◆ DEFAULT_SYMBOL_STACK_SIZE

#define DEFAULT_SYMBOL_STACK_SIZE   32 /* MUST be a power of 2 */

◆ DEFAULT_TOKEN_BYTES_LENGTH

#define DEFAULT_TOKEN_BYTES_LENGTH   64 /* MUST be a power of 2 */

◆ DELETE_CODEPOINT

#define DELETE_CODEPOINT   U_(0x007F)

◆ EMIT_ARRAY_ITEM

#define EMIT_ARRAY_ITEM   0x10 /* may be combined with other values */

◆ EMIT_BOOLEAN

#define EMIT_BOOLEAN   0x02

◆ EMIT_END_ARRAY

#define EMIT_END_ARRAY   0x0A

◆ EMIT_END_OBJECT

#define EMIT_END_OBJECT   0x07

◆ EMIT_NOTHING

#define EMIT_NOTHING   0x00

◆ EMIT_NULL

#define EMIT_NULL   0x01

◆ EMIT_NUMBER

#define EMIT_NUMBER   0x04

◆ EMIT_OBJECT_MEMBER

#define EMIT_OBJECT_MEMBER   0x08

◆ EMIT_SPECIAL_NUMBER

#define EMIT_SPECIAL_NUMBER   0x05

◆ EMIT_START_ARRAY

#define EMIT_START_ARRAY   0x09

◆ EMIT_START_OBJECT

#define EMIT_START_OBJECT   0x06

◆ EMIT_STRING

#define EMIT_STRING   0x03

◆ EOF_CODEPOINT

#define EOF_CODEPOINT   U_(0xFFFFFFFF)

◆ ERROR_LOCATION_IS_TOKEN_START

#define ERROR_LOCATION_IS_TOKEN_START   0xFF

◆ FALSE_LITERAL_EXPECTED_CHARS_START_INDEX

#define FALSE_LITERAL_EXPECTED_CHARS_START_INDEX   8

◆ FIRST_2_BYTE_UTF8_CODEPOINT

#define FIRST_2_BYTE_UTF8_CODEPOINT   U_(0x0080)

◆ FIRST_3_BYTE_UTF8_CODEPOINT

#define FIRST_3_BYTE_UTF8_CODEPOINT   U_(0x0800)

◆ FIRST_4_BYTE_UTF8_CODEPOINT

#define FIRST_4_BYTE_UTF8_CODEPOINT   U_(0x10000)

◆ FIRST_NON_ASCII_CODEPOINT

#define FIRST_NON_ASCII_CODEPOINT   U_(0x0080)

◆ FIRST_NON_BMP_CODEPOINT

#define FIRST_NON_BMP_CODEPOINT   U_(0x10000)

◆ FIRST_NON_CONTROL_CODEPOINT

#define FIRST_NON_CONTROL_CODEPOINT   U_(0x0020)

◆ FORM_FEED_CODEPOINT

#define FORM_FEED_CODEPOINT   U_(0x000C)

◆ GET_FLAGS

#define GET_FLAGS (   x,
  f 
)    ((x) & (f))

◆ GRAMMARIAN_EVENT

#define GRAMMARIAN_EVENT (   o)    (GrammarEvent)((GrammarianOutput)(o) & 0x1F)

◆ GRAMMARIAN_OUTPUT

#define GRAMMARIAN_OUTPUT (   r,
 
)    (GrammarianOutput)(((GrammarianResultCode)(r) << 5) | (GrammarEvent)(e))

◆ GRAMMARIAN_RESULT_CODE

#define GRAMMARIAN_RESULT_CODE (   o)    (GrammarianResultCode)((GrammarianOutput)(o) >> 5)

◆ INFINITY_LITERAL_EXPECTED_CHARS_START_INDEX

#define INFINITY_LITERAL_EXPECTED_CHARS_START_INDEX   16

◆ IS_LEADING_SURROGATE

#define IS_LEADING_SURROGATE (   c)    (((c) & 0xFFFFFC00) == 0xD800)

◆ IS_NONCHARACTER

#define IS_NONCHARACTER (   c)    ((((c) & 0xFE) == 0xFE) || (((c) >= 0xFDD0) && ((c) <= 0xFDEF)))

◆ IS_NONTERMINAL

#define IS_NONTERMINAL (   s)    ((s) & 0x10)

◆ IS_SURROGATE

#define IS_SURROGATE (   c)    (((c) & 0xFFFFF800) == 0xD800)

◆ IS_TOKEN

#define IS_TOKEN (   s)    !IS_NONTERMINAL(s)

◆ IS_TRAILING_SURROGATE

#define IS_TRAILING_SURROGATE (   c)    (((c) & 0xFFFFFC00) == 0xDC00)

◆ IS_UTF8_CONTINUATION_BYTE

#define IS_UTF8_CONTINUATION_BYTE (   b)    (((b) & 0xC0) == 0x80)

◆ IS_UTF8_FIRST_BYTE_OF_2

#define IS_UTF8_FIRST_BYTE_OF_2 (   b)    (((b) & 0xE0) == 0xC0)

◆ IS_UTF8_FIRST_BYTE_OF_3

#define IS_UTF8_FIRST_BYTE_OF_3 (   b)    (((b) & 0xF0) == 0xE0)

◆ IS_UTF8_FIRST_BYTE_OF_4

#define IS_UTF8_FIRST_BYTE_OF_4 (   b)    (((b) & 0xF8) == 0xF0)

◆ IS_UTF8_SINGLE_BYTE

#define IS_UTF8_SINGLE_BYTE (   b)    (((b) & 0x80) == 0)

◆ JSON_BUILDING

#define JSON_BUILDING

◆ LEXER_ERROR

#define LEXER_ERROR   255

◆ LEXING_COMMENT_AFTER_SLASH

#define LEXING_COMMENT_AFTER_SLASH   25

◆ LEXING_LITERAL

#define LEXING_LITERAL   1

◆ LEXING_MULTI_LINE_COMMENT

#define LEXING_MULTI_LINE_COMMENT   27

◆ LEXING_MULTI_LINE_COMMENT_AFTER_STAR

#define LEXING_MULTI_LINE_COMMENT_AFTER_STAR   28

◆ LEXING_NUMBER_AFTER_DOT

#define LEXING_NUMBER_AFTER_DOT   20

◆ LEXING_NUMBER_AFTER_E

#define LEXING_NUMBER_AFTER_E   22

◆ LEXING_NUMBER_AFTER_EXPONENT_SIGN

#define LEXING_NUMBER_AFTER_EXPONENT_SIGN   23

◆ LEXING_NUMBER_AFTER_LEADING_NEGATIVE_ZERO

#define LEXING_NUMBER_AFTER_LEADING_NEGATIVE_ZERO   16

◆ LEXING_NUMBER_AFTER_LEADING_ZERO

#define LEXING_NUMBER_AFTER_LEADING_ZERO   15

◆ LEXING_NUMBER_AFTER_MINUS

#define LEXING_NUMBER_AFTER_MINUS   14

◆ LEXING_NUMBER_AFTER_X

#define LEXING_NUMBER_AFTER_X   17

◆ LEXING_NUMBER_DECIMAL_DIGITS

#define LEXING_NUMBER_DECIMAL_DIGITS   19

◆ LEXING_NUMBER_EXPONENT_DIGITS

#define LEXING_NUMBER_EXPONENT_DIGITS   24

◆ LEXING_NUMBER_FRACTIONAL_DIGITS

#define LEXING_NUMBER_FRACTIONAL_DIGITS   21

◆ LEXING_NUMBER_HEX_DIGITS

#define LEXING_NUMBER_HEX_DIGITS   18

◆ LEXING_SINGLE_LINE_COMMENT

#define LEXING_SINGLE_LINE_COMMENT   26

◆ LEXING_STRING

#define LEXING_STRING   2

◆ LEXING_STRING_ESCAPE

#define LEXING_STRING_ESCAPE   3

◆ LEXING_STRING_HEX_ESCAPE_BYTE_1

#define LEXING_STRING_HEX_ESCAPE_BYTE_1   4

◆ LEXING_STRING_HEX_ESCAPE_BYTE_2

#define LEXING_STRING_HEX_ESCAPE_BYTE_2   5

◆ LEXING_STRING_HEX_ESCAPE_BYTE_3

#define LEXING_STRING_HEX_ESCAPE_BYTE_3   6

◆ LEXING_STRING_HEX_ESCAPE_BYTE_4

#define LEXING_STRING_HEX_ESCAPE_BYTE_4   7

◆ LEXING_STRING_HEX_ESCAPE_BYTE_5

#define LEXING_STRING_HEX_ESCAPE_BYTE_5   8

◆ LEXING_STRING_HEX_ESCAPE_BYTE_6

#define LEXING_STRING_HEX_ESCAPE_BYTE_6   9

◆ LEXING_STRING_HEX_ESCAPE_BYTE_7

#define LEXING_STRING_HEX_ESCAPE_BYTE_7   10

◆ LEXING_STRING_HEX_ESCAPE_BYTE_8

#define LEXING_STRING_HEX_ESCAPE_BYTE_8   11

◆ LEXING_STRING_TRAILING_SURROGATE_HEX_ESCAPE_BACKSLASH

#define LEXING_STRING_TRAILING_SURROGATE_HEX_ESCAPE_BACKSLASH   12

◆ LEXING_STRING_TRAILING_SURROGATE_HEX_ESCAPE_U

#define LEXING_STRING_TRAILING_SURROGATE_HEX_ESCAPE_U   13

◆ LEXING_WHITESPACE

#define LEXING_WHITESPACE   0

◆ LINE_FEED_CODEPOINT

#define LINE_FEED_CODEPOINT   U_(0x000A)

◆ LINE_SEPARATOR_CODEPOINT

#define LINE_SEPARATOR_CODEPOINT   U_(0x2028)

◆ LONGEST_ENCODING_SEQUENCE

#define LONGEST_ENCODING_SEQUENCE   4

◆ MAX_CODEPOINT

#define MAX_CODEPOINT   U_(0x10FFFF)

◆ NAN_LITERAL_EXPECTED_CHARS_START_INDEX

#define NAN_LITERAL_EXPECTED_CHARS_START_INDEX   13

◆ NT_ITEM

#define NT_ITEM   0x15

◆ NT_ITEMS

#define NT_ITEMS   0x14

◆ NT_MEMBER

#define NT_MEMBER   0x12

◆ NT_MEMBERS

#define NT_MEMBERS   0x11

◆ NT_MORE_ITEMS

#define NT_MORE_ITEMS   0x16

◆ NT_MORE_MEMBERS

#define NT_MORE_MEMBERS   0x13

◆ NT_VALUE

#define NT_VALUE   0x10 /* non-terminals are in the form 0x1X */

◆ NULL_CODEPOINT

#define NULL_CODEPOINT   U_(0x0000)

◆ NULL_LITERAL_EXPECTED_CHARS_START_INDEX

#define NULL_LITERAL_EXPECTED_CHARS_START_INDEX   0

◆ PARAGRAPH_SEPARATOR_CODEPOINT

#define PARAGRAPH_SEPARATOR_CODEPOINT   U_(0x2029)

◆ PARSER_AFTER_CARRIAGE_RETURN

#define PARSER_AFTER_CARRIAGE_RETURN   0x10

◆ PARSER_ALLOW_BOM

#define PARSER_ALLOW_BOM   0x01

◆ PARSER_ALLOW_COMMENTS

#define PARSER_ALLOW_COMMENTS   0x02

◆ PARSER_ALLOW_CONTROL_CHARS

#define PARSER_ALLOW_CONTROL_CHARS   0x40

◆ PARSER_ALLOW_HEX_NUMBERS

#define PARSER_ALLOW_HEX_NUMBERS   0x08

◆ PARSER_ALLOW_SPECIAL_NUMBERS

#define PARSER_ALLOW_SPECIAL_NUMBERS   0x04

◆ PARSER_DEFAULT_FLAGS

#define PARSER_DEFAULT_FLAGS   0x00

◆ PARSER_EMBEDDED_DOCUMENT

#define PARSER_EMBEDDED_DOCUMENT   0x80

◆ PARSER_FINISHED

#define PARSER_FINISHED   0x02

◆ PARSER_IN_PROTECTED_API

#define PARSER_IN_PROTECTED_API   0x04

◆ PARSER_IN_TOKEN_HANDLER

#define PARSER_IN_TOKEN_HANDLER   0x08

◆ PARSER_REPLACE_INVALID

#define PARSER_REPLACE_INVALID   0x10

◆ PARSER_RESET

#define PARSER_RESET   0x00

◆ PARSER_STARTED

#define PARSER_STARTED   0x01

◆ PARSER_TRACK_OBJECT_MEMBERS

#define PARSER_TRACK_OBJECT_MEMBERS   0x20

◆ REJECTED_TOKEN

#define REJECTED_TOKEN   1

◆ REPLACEMENT_CHARACTER_CODEPOINT

#define REPLACEMENT_CHARACTER_CODEPOINT   U_(0xFFFD)

◆ SEQUENCE_COMPLETE

#define SEQUENCE_COMPLETE   1

◆ SEQUENCE_INVALID_EXCLUSIVE

#define SEQUENCE_INVALID_EXCLUSIVE   3

◆ SEQUENCE_INVALID_INCLUSIVE

#define SEQUENCE_INVALID_INCLUSIVE   2

◆ SEQUENCE_PENDING

#define SEQUENCE_PENDING   0

◆ SET_FLAGS

#define SET_FLAGS (   flagstype,
  x,
  f,
  cond 
)    do { if (cond) (x) |= (flagstype)(f); else (x) &= (flagstype)~(f); } while (0)

◆ SET_FLAGS_OFF

#define SET_FLAGS_OFF (   flagstype,
  x,
  f 
)    do { (x) &= (flagstype)~(f); } while (0)

◆ SET_FLAGS_ON

#define SET_FLAGS_ON (   flagstype,
  x,
  f 
)    do { (x) |= (flagstype)(f); } while (0)

◆ SHORTEST_ENCODING_SEQUENCE

#define SHORTEST_ENCODING_SEQUENCE (   enc)    (1U << ((enc) >> 1))

◆ SIZE_MAX

#define SIZE_MAX   ((size_t)-1)

◆ SPACES_PER_CHUNK

#define SPACES_PER_CHUNK   8

◆ SURROGATES_FROM_CODEPOINT

#define SURROGATES_FROM_CODEPOINT (   c)    ((((c) << 6) & 0x7FF0000) + ((c) & 0x3FF) + 0xD7C0DC00)

◆ SYMBOL_STACK_FULL

#define SYMBOL_STACK_FULL   2

◆ T_COLON

#define T_COLON   0x0D

◆ T_COMMA

#define T_COMMA   0x0E

◆ T_FALSE

#define T_FALSE   0x03

◆ T_INFINITY

#define T_INFINITY   0x07

◆ T_LEFT_CURLY

#define T_LEFT_CURLY   0x09

◆ T_LEFT_SQUARE

#define T_LEFT_SQUARE   0x0B

◆ T_NAN

#define T_NAN   0x06

◆ T_NEGATIVE_INFINITY

#define T_NEGATIVE_INFINITY   0x08

◆ T_NONE

#define T_NONE   0x00 /* tokens are in the form 0x0X */

◆ T_NULL

#define T_NULL   0x01

◆ T_NUMBER

#define T_NUMBER   0x05

◆ T_RIGHT_CURLY

#define T_RIGHT_CURLY   0x0A

◆ T_RIGHT_SQUARE

#define T_RIGHT_SQUARE   0x0C

◆ T_STRING

#define T_STRING   0x04

◆ T_TRUE

#define T_TRUE   0x02

◆ TAB_CODEPOINT

#define TAB_CODEPOINT   U_(0x0009)

◆ TRUE_LITERAL_EXPECTED_CHARS_START_INDEX

#define TRUE_LITERAL_EXPECTED_CHARS_START_INDEX   4

◆ U_

#define U_ (   x)    ((Codepoint)(x))

◆ WRITER_DEFAULT_FLAGS

#define WRITER_DEFAULT_FLAGS   0x0

◆ WRITER_ESCAPE_NON_ASCII

#define WRITER_ESCAPE_NON_ASCII   0x4

◆ WRITER_IN_PROTECTED_API

#define WRITER_IN_PROTECTED_API   0x2

◆ WRITER_REPLACE_INVALID

#define WRITER_REPLACE_INVALID   0x2

◆ WRITER_RESET

#define WRITER_RESET   0x0

◆ WRITER_STARTED

#define WRITER_STARTED   0x1

◆ WRITER_USE_CRLF

#define WRITER_USE_CRLF   0x1

Typedef Documentation

◆ byte

typedef unsigned char byte

◆ Codepoint

◆ Decoder

typedef DecoderData* Decoder

◆ DecoderData

typedef struct tag_DecoderData DecoderData

◆ DecoderOutput

◆ DecoderResultCode

◆ DecoderState

typedef byte DecoderState

◆ Encoding

typedef byte Encoding

◆ Error

typedef byte Error

◆ GrammarEvent

typedef byte GrammarEvent

◆ Grammarian

◆ GrammarianData

◆ GrammarianOutput

◆ GrammarianResultCode

◆ GrammarRule

typedef struct tag_GrammarRule GrammarRule

◆ JSON_Parser_SimpleTokenHandler

typedef JSON_Parser_HandlerResult(JSON_CALL * JSON_Parser_SimpleTokenHandler) (JSON_Parser parser)

◆ LexerState

typedef byte LexerState

◆ MemberName

typedef struct tag_MemberName MemberName

◆ MemberNames

typedef struct tag_MemberNames MemberNames

◆ ParserFlags

typedef byte ParserFlags

◆ ParserState

typedef byte ParserState

◆ Symbol

typedef byte Symbol

◆ TokenAttributes

◆ WriteBuffer

◆ WriteBufferData

◆ WriterFlags

typedef byte WriterFlags

◆ WriterState

typedef byte WriterState

Function Documentation

◆ Decoder_ProcessByte()

static DecoderOutput Decoder_ProcessByte ( Decoder  decoder,
Encoding  encoding,
byte  b 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Decoder_Reset()

static void Decoder_Reset ( Decoder  decoder)
static
Here is the caller graph for this function:

◆ Decoder_SequencePending()

static int Decoder_SequencePending ( Decoder  decoder)
static
Here is the caller graph for this function:

◆ DefaultFreeHandler()

static void JSON_CALL DefaultFreeHandler ( void userData,
void ptr 
)
static
Here is the call graph for this function:

◆ DefaultReallocHandler()

static void* JSON_CALL DefaultReallocHandler ( void userData,
void ptr,
size_t  size 
)
static
Here is the call graph for this function:

◆ DoubleBuffer()

static byte* DoubleBuffer ( const JSON_MemorySuite pMemorySuite,
byte pDefaultBuffer,
byte pBuffer,
size_t  length 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ EncodeCodepoint()

static size_t EncodeCodepoint ( Codepoint  c,
Encoding  encoding,
byte pBytes 
)
static
Here is the caller graph for this function:

◆ Grammarian_FinishedDocument()

static int Grammarian_FinishedDocument ( Grammarian  grammarian)
static
Here is the caller graph for this function:

◆ Grammarian_FreeAllocations()

static void Grammarian_FreeAllocations ( Grammarian  grammarian,
const JSON_MemorySuite pMemorySuite 
)
static
Here is the caller graph for this function:

◆ Grammarian_ProcessToken()

static GrammarianOutput Grammarian_ProcessToken ( Grammarian  grammarian,
Symbol  token,
const JSON_MemorySuite pMemorySuite 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Grammarian_Reset()

static void Grammarian_Reset ( Grammarian  grammarian,
int  isInitialized 
)
static
Here is the caller graph for this function:

◆ JSON_ErrorString()

const char* JSON_CALL JSON_ErrorString ( JSON_Error  error)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_LibraryVersion()

const JSON_Version* JSON_CALL JSON_LibraryVersion ( void  )

◆ JSON_NativeUTF16Encoding()

JSON_Encoding JSON_CALL JSON_NativeUTF16Encoding ( void  )

◆ JSON_NativeUTF32Encoding()

JSON_Encoding JSON_CALL JSON_NativeUTF32Encoding ( void  )

◆ JSON_Parser_AddMemberNameToList()

static JSON_Status JSON_Parser_AddMemberNameToList ( JSON_Parser  parser)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_CallBooleanHandler()

static JSON_Status JSON_Parser_CallBooleanHandler ( JSON_Parser  parser)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_CallEncodingDetectedHandler()

static JSON_Status JSON_Parser_CallEncodingDetectedHandler ( JSON_Parser  parser)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_CallNumberHandler()

static JSON_Status JSON_Parser_CallNumberHandler ( JSON_Parser  parser)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_CallSimpleTokenHandler()

static JSON_Status JSON_Parser_CallSimpleTokenHandler ( JSON_Parser  parser,
JSON_Parser_SimpleTokenHandler  handler 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_CallSpecialNumberHandler()

static JSON_Status JSON_Parser_CallSpecialNumberHandler ( JSON_Parser  parser)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_CallStringHandler()

static JSON_Status JSON_Parser_CallStringHandler ( JSON_Parser  parser,
int  isObjectMember 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_Create()

JSON_Parser JSON_CALL JSON_Parser_Create ( const JSON_MemorySuite pMemorySuite)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_EndContainer()

static void JSON_Parser_EndContainer ( JSON_Parser  parser,
int  isObject 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_FlushDecoder()

static JSON_Status JSON_Parser_FlushDecoder ( JSON_Parser  parser)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_FlushLexer()

static JSON_Status JSON_Parser_FlushLexer ( JSON_Parser  parser)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_FlushParser()

static JSON_Status JSON_Parser_FlushParser ( JSON_Parser  parser)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_Free()

JSON_Status JSON_CALL JSON_Parser_Free ( JSON_Parser  parser)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_GetAfterTokenLocation()

JSON_Status JSON_CALL JSON_Parser_GetAfterTokenLocation ( JSON_Parser  parser,
JSON_Location pLocation 
)

◆ JSON_Parser_GetAllowBOM()

JSON_Boolean JSON_CALL JSON_Parser_GetAllowBOM ( JSON_Parser  parser)

◆ JSON_Parser_GetAllowComments()

JSON_Boolean JSON_CALL JSON_Parser_GetAllowComments ( JSON_Parser  parser)

◆ JSON_Parser_GetAllowHexNumbers()

JSON_Boolean JSON_CALL JSON_Parser_GetAllowHexNumbers ( JSON_Parser  parser)

◆ JSON_Parser_GetAllowSpecialNumbers()

JSON_Boolean JSON_CALL JSON_Parser_GetAllowSpecialNumbers ( JSON_Parser  parser)

◆ JSON_Parser_GetAllowUnescapedControlCharacters()

JSON_Boolean JSON_CALL JSON_Parser_GetAllowUnescapedControlCharacters ( JSON_Parser  parser)

◆ JSON_Parser_GetArrayItemHandler()

JSON_Parser_ArrayItemHandler JSON_CALL JSON_Parser_GetArrayItemHandler ( JSON_Parser  parser)

◆ JSON_Parser_GetBooleanHandler()

JSON_Parser_BooleanHandler JSON_CALL JSON_Parser_GetBooleanHandler ( JSON_Parser  parser)

◆ JSON_Parser_GetEncodingDetectedHandler()

JSON_Parser_NullHandler JSON_CALL JSON_Parser_GetEncodingDetectedHandler ( JSON_Parser  parser)

◆ JSON_Parser_GetEndArrayHandler()

JSON_Parser_EndArrayHandler JSON_CALL JSON_Parser_GetEndArrayHandler ( JSON_Parser  parser)

◆ JSON_Parser_GetEndObjectHandler()

JSON_Parser_EndObjectHandler JSON_CALL JSON_Parser_GetEndObjectHandler ( JSON_Parser  parser)

◆ JSON_Parser_GetError()

JSON_Error JSON_CALL JSON_Parser_GetError ( JSON_Parser  parser)
Here is the caller graph for this function:

◆ JSON_Parser_GetErrorLocation()

JSON_Status JSON_CALL JSON_Parser_GetErrorLocation ( JSON_Parser  parser,
JSON_Location pLocation 
)
Here is the caller graph for this function:

◆ JSON_Parser_GetInputEncoding()

JSON_Encoding JSON_CALL JSON_Parser_GetInputEncoding ( JSON_Parser  parser)
Here is the caller graph for this function:

◆ JSON_Parser_GetMaxNumberLength()

size_t JSON_CALL JSON_Parser_GetMaxNumberLength ( JSON_Parser  parser)

◆ JSON_Parser_GetMaxStringLength()

size_t JSON_CALL JSON_Parser_GetMaxStringLength ( JSON_Parser  parser)

◆ JSON_Parser_GetNullHandler()

JSON_Parser_NullHandler JSON_CALL JSON_Parser_GetNullHandler ( JSON_Parser  parser)

◆ JSON_Parser_GetNumberEncoding()

JSON_Encoding JSON_CALL JSON_Parser_GetNumberEncoding ( JSON_Parser  parser)

◆ JSON_Parser_GetNumberHandler()

JSON_Parser_NumberHandler JSON_CALL JSON_Parser_GetNumberHandler ( JSON_Parser  parser)

◆ JSON_Parser_GetObjectMemberHandler()

JSON_Parser_ObjectMemberHandler JSON_CALL JSON_Parser_GetObjectMemberHandler ( JSON_Parser  parser)

◆ JSON_Parser_GetReplaceInvalidEncodingSequences()

JSON_Boolean JSON_CALL JSON_Parser_GetReplaceInvalidEncodingSequences ( JSON_Parser  parser)

◆ JSON_Parser_GetSpecialNumberHandler()

JSON_Parser_SpecialNumberHandler JSON_CALL JSON_Parser_GetSpecialNumberHandler ( JSON_Parser  parser)

◆ JSON_Parser_GetStartArrayHandler()

JSON_Parser_StartArrayHandler JSON_CALL JSON_Parser_GetStartArrayHandler ( JSON_Parser  parser)

◆ JSON_Parser_GetStartObjectHandler()

JSON_Parser_StartObjectHandler JSON_CALL JSON_Parser_GetStartObjectHandler ( JSON_Parser  parser)

◆ JSON_Parser_GetStopAfterEmbeddedDocument()

JSON_Boolean JSON_CALL JSON_Parser_GetStopAfterEmbeddedDocument ( JSON_Parser  parser)

◆ JSON_Parser_GetStringEncoding()

JSON_Encoding JSON_CALL JSON_Parser_GetStringEncoding ( JSON_Parser  parser)

◆ JSON_Parser_GetStringHandler()

JSON_Parser_StringHandler JSON_CALL JSON_Parser_GetStringHandler ( JSON_Parser  parser)

◆ JSON_Parser_GetTokenLocation()

JSON_Status JSON_CALL JSON_Parser_GetTokenLocation ( JSON_Parser  parser,
JSON_Location pLocation 
)

◆ JSON_Parser_GetTrackObjectMembers()

JSON_Boolean JSON_CALL JSON_Parser_GetTrackObjectMembers ( JSON_Parser  parser)

◆ JSON_Parser_GetUserData()

void* JSON_CALL JSON_Parser_GetUserData ( JSON_Parser  parser)
Here is the caller graph for this function:

◆ JSON_Parser_HandleGrammarEvents()

static JSON_Status JSON_Parser_HandleGrammarEvents ( JSON_Parser  parser,
byte  emit 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_HandleInvalidEncodingSequence()

static JSON_Status JSON_Parser_HandleInvalidEncodingSequence ( JSON_Parser  parser,
size_t  encodedLength 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_HandleInvalidNumber()

static JSON_Status JSON_Parser_HandleInvalidNumber ( JSON_Parser  parser,
Codepoint  c,
int  codepointsSinceValidNumber,
TokenAttributes  attributesToRemove 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_NullTerminateToken()

static void JSON_Parser_NullTerminateToken ( JSON_Parser  parser)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_Parse()

JSON_Status JSON_CALL JSON_Parser_Parse ( JSON_Parser  parser,
const char *  pBytes,
size_t  length,
JSON_Boolean  isFinal 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_PopMemberNameList()

static void JSON_Parser_PopMemberNameList ( JSON_Parser  parser)
static
Here is the caller graph for this function:

◆ JSON_Parser_ProcessCodepoint()

static JSON_Status JSON_Parser_ProcessCodepoint ( JSON_Parser  parser,
Codepoint  c,
size_t  encodedLength 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_ProcessInputBytes()

JSON_Status JSON_Parser_ProcessInputBytes ( JSON_Parser  parser,
const byte pBytes,
size_t  length 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_ProcessToken()

static JSON_Status JSON_Parser_ProcessToken ( JSON_Parser  parser)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_ProcessUnknownByte()

static JSON_Status JSON_Parser_ProcessUnknownByte ( JSON_Parser  parser,
byte  b 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_PushMemberNameList()

static JSON_Status JSON_Parser_PushMemberNameList ( JSON_Parser  parser)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_Reset()

JSON_Status JSON_CALL JSON_Parser_Reset ( JSON_Parser  parser)
Here is the call graph for this function:

◆ JSON_Parser_ResetData()

static void JSON_Parser_ResetData ( JSON_Parser  parser,
int  isInitialized 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_SetAllowBOM()

JSON_Status JSON_CALL JSON_Parser_SetAllowBOM ( JSON_Parser  parser,
JSON_Boolean  allowBOM 
)

◆ JSON_Parser_SetAllowComments()

JSON_Status JSON_CALL JSON_Parser_SetAllowComments ( JSON_Parser  parser,
JSON_Boolean  allowComments 
)

◆ JSON_Parser_SetAllowHexNumbers()

JSON_Status JSON_CALL JSON_Parser_SetAllowHexNumbers ( JSON_Parser  parser,
JSON_Boolean  allowHexNumbers 
)

◆ JSON_Parser_SetAllowSpecialNumbers()

JSON_Status JSON_CALL JSON_Parser_SetAllowSpecialNumbers ( JSON_Parser  parser,
JSON_Boolean  allowSpecialNumbers 
)

◆ JSON_Parser_SetAllowUnescapedControlCharacters()

JSON_Status JSON_CALL JSON_Parser_SetAllowUnescapedControlCharacters ( JSON_Parser  parser,
JSON_Boolean  allowUnescapedControlCharacters 
)

◆ JSON_Parser_SetArrayItemHandler()

JSON_Status JSON_CALL JSON_Parser_SetArrayItemHandler ( JSON_Parser  parser,
JSON_Parser_ArrayItemHandler  handler 
)
Here is the caller graph for this function:

◆ JSON_Parser_SetBooleanHandler()

JSON_Status JSON_CALL JSON_Parser_SetBooleanHandler ( JSON_Parser  parser,
JSON_Parser_BooleanHandler  handler 
)
Here is the caller graph for this function:

◆ JSON_Parser_SetEncodingDetectedHandler()

JSON_Status JSON_CALL JSON_Parser_SetEncodingDetectedHandler ( JSON_Parser  parser,
JSON_Parser_EncodingDetectedHandler  handler 
)
Here is the caller graph for this function:

◆ JSON_Parser_SetEndArrayHandler()

JSON_Status JSON_CALL JSON_Parser_SetEndArrayHandler ( JSON_Parser  parser,
JSON_Parser_EndArrayHandler  handler 
)
Here is the caller graph for this function:

◆ JSON_Parser_SetEndObjectHandler()

JSON_Status JSON_CALL JSON_Parser_SetEndObjectHandler ( JSON_Parser  parser,
JSON_Parser_EndObjectHandler  handler 
)
Here is the caller graph for this function:

◆ JSON_Parser_SetErrorAtCodepoint()

static void JSON_Parser_SetErrorAtCodepoint ( JSON_Parser  parser,
Error  error 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_SetErrorAtStringEscapeSequenceStart()

static void JSON_Parser_SetErrorAtStringEscapeSequenceStart ( JSON_Parser  parser,
Error  error,
int  codepointsAgo 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_SetErrorAtToken()

static void JSON_Parser_SetErrorAtToken ( JSON_Parser  parser,
Error  error 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_SetInputEncoding()

JSON_Status JSON_CALL JSON_Parser_SetInputEncoding ( JSON_Parser  parser,
JSON_Encoding  encoding 
)

◆ JSON_Parser_SetMaxNumberLength()

JSON_Status JSON_CALL JSON_Parser_SetMaxNumberLength ( JSON_Parser  parser,
size_t  maxLength 
)

◆ JSON_Parser_SetMaxStringLength()

JSON_Status JSON_CALL JSON_Parser_SetMaxStringLength ( JSON_Parser  parser,
size_t  maxLength 
)

◆ JSON_Parser_SetNullHandler()

JSON_Status JSON_CALL JSON_Parser_SetNullHandler ( JSON_Parser  parser,
JSON_Parser_NullHandler  handler 
)
Here is the caller graph for this function:

◆ JSON_Parser_SetNumberEncoding()

JSON_Status JSON_CALL JSON_Parser_SetNumberEncoding ( JSON_Parser  parser,
JSON_Encoding  encoding 
)

◆ JSON_Parser_SetNumberHandler()

JSON_Status JSON_CALL JSON_Parser_SetNumberHandler ( JSON_Parser  parser,
JSON_Parser_NumberHandler  handler 
)
Here is the caller graph for this function:

◆ JSON_Parser_SetObjectMemberHandler()

JSON_Status JSON_CALL JSON_Parser_SetObjectMemberHandler ( JSON_Parser  parser,
JSON_Parser_ObjectMemberHandler  handler 
)
Here is the caller graph for this function:

◆ JSON_Parser_SetReplaceInvalidEncodingSequences()

JSON_Status JSON_CALL JSON_Parser_SetReplaceInvalidEncodingSequences ( JSON_Parser  parser,
JSON_Boolean  replaceInvalidEncodingSequences 
)

◆ JSON_Parser_SetSpecialNumberHandler()

JSON_Status JSON_CALL JSON_Parser_SetSpecialNumberHandler ( JSON_Parser  parser,
JSON_Parser_SpecialNumberHandler  handler 
)
Here is the caller graph for this function:

◆ JSON_Parser_SetStartArrayHandler()

JSON_Status JSON_CALL JSON_Parser_SetStartArrayHandler ( JSON_Parser  parser,
JSON_Parser_StartArrayHandler  handler 
)
Here is the caller graph for this function:

◆ JSON_Parser_SetStartObjectHandler()

JSON_Status JSON_CALL JSON_Parser_SetStartObjectHandler ( JSON_Parser  parser,
JSON_Parser_StartObjectHandler  handler 
)
Here is the caller graph for this function:

◆ JSON_Parser_SetStopAfterEmbeddedDocument()

JSON_Status JSON_CALL JSON_Parser_SetStopAfterEmbeddedDocument ( JSON_Parser  parser,
JSON_Boolean  stopAfterEmbeddedDocument 
)

◆ JSON_Parser_SetStringEncoding()

JSON_Status JSON_CALL JSON_Parser_SetStringEncoding ( JSON_Parser  parser,
JSON_Encoding  encoding 
)

◆ JSON_Parser_SetStringHandler()

JSON_Status JSON_CALL JSON_Parser_SetStringHandler ( JSON_Parser  parser,
JSON_Parser_StringHandler  handler 
)
Here is the caller graph for this function:

◆ JSON_Parser_SetTrackObjectMembers()

JSON_Status JSON_CALL JSON_Parser_SetTrackObjectMembers ( JSON_Parser  parser,
JSON_Boolean  trackObjectMembers 
)

◆ JSON_Parser_SetUserData()

JSON_Status JSON_CALL JSON_Parser_SetUserData ( JSON_Parser  parser,
void userData 
)
Here is the caller graph for this function:

◆ JSON_Parser_StartContainer()

static JSON_Status JSON_Parser_StartContainer ( JSON_Parser  parser,
int  isObject 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Parser_StartToken()

static void JSON_Parser_StartToken ( JSON_Parser  parser,
Symbol  token 
)
static
Here is the caller graph for this function:

◆ JSON_Writer_Create()

JSON_Writer JSON_CALL JSON_Writer_Create ( const JSON_MemorySuite pMemorySuite)
Here is the call graph for this function:

◆ JSON_Writer_Free()

JSON_Status JSON_CALL JSON_Writer_Free ( JSON_Writer  writer)
Here is the call graph for this function:

◆ JSON_Writer_GetCodepointEscapeCharacter()

static Codepoint JSON_Writer_GetCodepointEscapeCharacter ( JSON_Writer  writer,
Codepoint  c 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Writer_GetError()

JSON_Error JSON_CALL JSON_Writer_GetError ( JSON_Writer  writer)
Here is the call graph for this function:

◆ JSON_Writer_GetEscapeAllNonASCIICharacters()

JSON_Boolean JSON_CALL JSON_Writer_GetEscapeAllNonASCIICharacters ( JSON_Writer  writer)
Here is the call graph for this function:

◆ JSON_Writer_GetOutputEncoding()

JSON_Encoding JSON_CALL JSON_Writer_GetOutputEncoding ( JSON_Writer  writer)
Here is the call graph for this function:

◆ JSON_Writer_GetOutputHandler()

JSON_Writer_OutputHandler JSON_CALL JSON_Writer_GetOutputHandler ( JSON_Writer  writer)
Here is the call graph for this function:

◆ JSON_Writer_GetReplaceInvalidEncodingSequences()

JSON_Boolean JSON_CALL JSON_Writer_GetReplaceInvalidEncodingSequences ( JSON_Writer  writer)
Here is the call graph for this function:

◆ JSON_Writer_GetUseCRLF()

JSON_Boolean JSON_CALL JSON_Writer_GetUseCRLF ( JSON_Writer  writer)
Here is the call graph for this function:

◆ JSON_Writer_GetUserData()

void* JSON_CALL JSON_Writer_GetUserData ( JSON_Writer  writer)
Here is the call graph for this function:

◆ JSON_Writer_OutputBytes()

static JSON_Status JSON_Writer_OutputBytes ( JSON_Writer  writer,
const byte pBytes,
size_t  length 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Writer_OutputNumber()

static JSON_Status JSON_Writer_OutputNumber ( JSON_Writer  writer,
const byte pBytes,
size_t  length,
Encoding  encoding 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Writer_OutputSpaces()

static JSON_Status JSON_Writer_OutputSpaces ( JSON_Writer  writer,
size_t  numberOfSpaces 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Writer_OutputString()

static JSON_Status JSON_Writer_OutputString ( JSON_Writer  writer,
const byte pBytes,
size_t  length,
Encoding  encoding 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Writer_ProcessToken()

static JSON_Status JSON_Writer_ProcessToken ( JSON_Writer  writer,
Symbol  token 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Writer_Reset()

JSON_Status JSON_CALL JSON_Writer_Reset ( JSON_Writer  writer)
Here is the call graph for this function:

◆ JSON_Writer_ResetData()

static void JSON_Writer_ResetData ( JSON_Writer  writer,
int  isInitialized 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Writer_SetError()

static void JSON_Writer_SetError ( JSON_Writer  writer,
Error  error 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Writer_SetEscapeAllNonASCIICharacters()

JSON_Status JSON_CALL JSON_Writer_SetEscapeAllNonASCIICharacters ( JSON_Writer  writer,
JSON_Boolean  escapeAllNonASCIICharacters 
)
Here is the call graph for this function:

◆ JSON_Writer_SetOutputEncoding()

JSON_Status JSON_CALL JSON_Writer_SetOutputEncoding ( JSON_Writer  writer,
JSON_Encoding  encoding 
)
Here is the call graph for this function:

◆ JSON_Writer_SetOutputHandler()

JSON_Status JSON_CALL JSON_Writer_SetOutputHandler ( JSON_Writer  writer,
JSON_Writer_OutputHandler  handler 
)
Here is the call graph for this function:

◆ JSON_Writer_SetReplaceInvalidEncodingSequences()

JSON_Status JSON_CALL JSON_Writer_SetReplaceInvalidEncodingSequences ( JSON_Writer  writer,
JSON_Boolean  replaceInvalidEncodingSequences 
)
Here is the call graph for this function:

◆ JSON_Writer_SetUseCRLF()

JSON_Status JSON_CALL JSON_Writer_SetUseCRLF ( JSON_Writer  writer,
JSON_Boolean  useCRLF 
)
Here is the call graph for this function:

◆ JSON_Writer_SetUserData()

JSON_Status JSON_CALL JSON_Writer_SetUserData ( JSON_Writer  writer,
void userData 
)
Here is the call graph for this function:

◆ JSON_Writer_WriteBoolean()

JSON_Status JSON_CALL JSON_Writer_WriteBoolean ( JSON_Writer  writer,
JSON_Boolean  value 
)
Here is the call graph for this function:

◆ JSON_Writer_WriteColon()

JSON_Status JSON_CALL JSON_Writer_WriteColon ( JSON_Writer  writer)
Here is the call graph for this function:

◆ JSON_Writer_WriteComma()

JSON_Status JSON_CALL JSON_Writer_WriteComma ( JSON_Writer  writer)
Here is the call graph for this function:

◆ JSON_Writer_WriteEndArray()

JSON_Status JSON_CALL JSON_Writer_WriteEndArray ( JSON_Writer  writer)
Here is the call graph for this function:

◆ JSON_Writer_WriteEndObject()

JSON_Status JSON_CALL JSON_Writer_WriteEndObject ( JSON_Writer  writer)
Here is the call graph for this function:

◆ JSON_Writer_WriteNewLine()

JSON_Status JSON_CALL JSON_Writer_WriteNewLine ( JSON_Writer  writer)
Here is the call graph for this function:

◆ JSON_Writer_WriteNull()

JSON_Status JSON_CALL JSON_Writer_WriteNull ( JSON_Writer  writer)
Here is the call graph for this function:

◆ JSON_Writer_WriteNumber()

JSON_Status JSON_CALL JSON_Writer_WriteNumber ( JSON_Writer  writer,
const char *  pValue,
size_t  length,
JSON_Encoding  encoding 
)
Here is the call graph for this function:

◆ JSON_Writer_WriteSimpleToken()

static JSON_Status JSON_Writer_WriteSimpleToken ( JSON_Writer  writer,
Symbol  token,
const byte *const encodings,
size_t  length 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSON_Writer_WriteSpace()

JSON_Status JSON_CALL JSON_Writer_WriteSpace ( JSON_Writer  writer,
size_t  numberOfSpaces 
)
Here is the call graph for this function:

◆ JSON_Writer_WriteSpecialNumber()

JSON_Status JSON_CALL JSON_Writer_WriteSpecialNumber ( JSON_Writer  writer,
JSON_SpecialNumber  value 
)
Here is the call graph for this function:

◆ JSON_Writer_WriteStartArray()

JSON_Status JSON_CALL JSON_Writer_WriteStartArray ( JSON_Writer  writer)
Here is the call graph for this function:

◆ JSON_Writer_WriteStartObject()

JSON_Status JSON_CALL JSON_Writer_WriteStartObject ( JSON_Writer  writer)
Here is the call graph for this function:

◆ JSON_Writer_WriteString()

JSON_Status JSON_CALL JSON_Writer_WriteString ( JSON_Writer  writer,
const char *  pValue,
size_t  length,
JSON_Encoding  encoding 
)
Here is the call graph for this function:

◆ LexNumberCharacter()

static LexerState LexNumberCharacter ( LexerState  state,
Codepoint  c 
)
static
Here is the caller graph for this function:

◆ WriteBuffer_Flush()

static JSON_Status WriteBuffer_Flush ( WriteBuffer  buffer,
JSON_Writer  writer 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ WriteBuffer_Reset()

static void WriteBuffer_Reset ( WriteBuffer  buffer)
static
Here is the caller graph for this function:

◆ WriteBuffer_WriteBytes()

static JSON_Status WriteBuffer_WriteBytes ( WriteBuffer  buffer,
JSON_Writer  writer,
const byte pBytes,
size_t  length 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ WriteBuffer_WriteCodepoint()

static JSON_Status WriteBuffer_WriteCodepoint ( WriteBuffer  buffer,
JSON_Writer  writer,
Codepoint  c 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ WriteBuffer_WriteHexEscapeSequence()

static JSON_Status WriteBuffer_WriteHexEscapeSequence ( WriteBuffer  buffer,
JSON_Writer  writer,
Codepoint  c 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ defaultMemorySuite

◆ endianEncodings

const uint32_t endianEncodings = (((uint32_t)JSON_UTF32BE) << 24) | (((uint32_t)JSON_UTF16BE) << 16) | (((uint32_t)JSON_UTF16LE) << 8) | ((uint32_t)JSON_UTF32LE)
static

◆ expectedLiteralChars

const byte expectedLiteralChars[] = { 'u', 'l', 'l', 0, 'r', 'u', 'e', 0, 'a', 'l', 's', 'e', 0, 'a', 'N', 0, 'n', 'f', 'i', 'n', 'i', 't', 'y', 0 }
static