RetroArch
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions
reader.h File Reference
#include "allocators.h"
#include "stream.h"
#include "encodedstream.h"
#include "internal/meta.h"
#include "internal/stack.h"
#include "internal/strtod.h"
#include <limits>
#include "error/error.h"
Include dependency graph for reader.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  BaseReaderHandler< Encoding, Derived >
 Default implementation of Handler. More...
 
class  internal::StreamLocalCopy< Stream, int >
 
class  internal::StreamLocalCopy< Stream, 1 >
 Do copy optimization. More...
 
class  internal::StreamLocalCopy< Stream, 0 >
 Keep reference. More...
 
class  GenericReader< SourceEncoding, TargetEncoding, StackAllocator >
 SAX-style JSON parser. Use Reader for UTF8 encoding and default allocator. More...
 
struct  GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::ClearStackOnExit
 
class  GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::StackStream< CharType >
 
class  GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::NumberStream< InputStream, backup, pushOnTake >
 
class  GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::NumberStream< InputStream, false, false >
 
class  GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::NumberStream< InputStream, true, false >
 
class  GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::NumberStream< InputStream, true, true >
 

Namespaces

 internal
 

Macros

#define RAPIDJSON_PARSE_ERROR_NORETURN(parseErrorCode, offset)
 Macro to indicate a parse error. More...
 
#define RAPIDJSON_PARSE_ERROR(parseErrorCode, offset)
 (Internal) macro to indicate and handle a parse error. More...
 
#define RAPIDJSON_PARSE_DEFAULT_FLAGS   kParseNoFlags
 

Typedefs

typedef GenericReader< UTF8<>, UTF8<> > Reader
 Reader with UTF8 encoding and default allocator. More...
 

Enumerations

enum  ParseFlag {
  kParseNoFlags = 0, kParseInsituFlag = 1, kParseValidateEncodingFlag = 2, kParseIterativeFlag = 4,
  kParseStopWhenDoneFlag = 8, kParseFullPrecisionFlag = 16, kParseCommentsFlag = 32, kParseNumbersAsStringsFlag = 64,
  kParseTrailingCommasFlag = 128, kParseNanAndInfFlag = 256, kParseDefaultFlags = RAPIDJSON_PARSE_DEFAULT_FLAGS
}
 Combination of parseFlags. More...
 

Functions

template<typename InputStream >
void SkipWhitespace (InputStream &is)
 Skip the JSON white spaces in a stream. More...
 
const char * SkipWhitespace (const char *p, const char *end)
 

Macro Definition Documentation

◆ RAPIDJSON_PARSE_DEFAULT_FLAGS

#define RAPIDJSON_PARSE_DEFAULT_FLAGS   kParseNoFlags

Typedef Documentation

◆ Reader

typedef GenericReader<UTF8<>, UTF8<> > Reader

Reader with UTF8 encoding and default allocator.

Enumeration Type Documentation

◆ ParseFlag

enum ParseFlag

Combination of parseFlags.

See also
Reader::Parse, Document::Parse, Document::ParseInsitu, Document::ParseStream
Enumerator
kParseNoFlags 

No flags are set.

kParseInsituFlag 

In-situ(destructive) parsing.

kParseValidateEncodingFlag 

Validate encoding of JSON strings.

kParseIterativeFlag 

Iterative(constant complexity in terms of function call stack size) parsing.

kParseStopWhenDoneFlag 

After parsing a complete JSON root from stream, stop further processing the rest of stream. When this flag is used, parser will not generate kParseErrorDocumentRootNotSingular error.

kParseFullPrecisionFlag 

Parse number in full precision (but slower).

kParseCommentsFlag 

Allow one-line (//) and multi-line (/**/) comments.

kParseNumbersAsStringsFlag 

Parse all numbers (ints/doubles) as strings.

kParseTrailingCommasFlag 

Allow trailing commas at the end of objects and arrays.

kParseNanAndInfFlag 

Allow parsing NaN, Inf, Infinity, -Inf and -Infinity as doubles.

kParseDefaultFlags 

Default parse flags. Can be customized by defining RAPIDJSON_PARSE_DEFAULT_FLAGS.

Function Documentation

◆ SkipWhitespace() [1/2]

template<typename InputStream >
void SkipWhitespace ( InputStream &  is)

Skip the JSON white spaces in a stream.

Parameters
isA input stream for skipping white spaces.
Note
This function has SSE2/SSE4.2 specialization.
Here is the caller graph for this function:

◆ SkipWhitespace() [2/2]

const char* SkipWhitespace ( const char *  p,
const char *  end 
)
inline