NIM PC Cross Platform SDK
载入中...
搜索中...
未找到
nim_cpp_wrapper_util::Json::OurReader类 参考

class  ErrorInfo
 
struct  StructuredError
 
class  Token
 

Public 类型

using Char = char
 
using Location = const Char *
 

Public 成员函数

 OurReader (OurFeatures const &features)
 
bool parse (const char *beginDoc, const char *endDoc, Value &root, bool collectComments=true)
 
String getFormattedErrorMessages () const
 
std::vector< StructuredErrorgetStructuredErrors () const
 

Private 类型

enum  TokenType {
  tokenEndOfStream = 0 , tokenObjectBegin , tokenObjectEnd , tokenArrayBegin ,
  tokenArrayEnd , tokenString , tokenNumber , tokenTrue ,
  tokenFalse , tokenNull , tokenNaN , tokenPosInf ,
  tokenNegInf , tokenArraySeparator , tokenMemberSeparator , tokenComment ,
  tokenError
}
 
using Errors = std::deque< ErrorInfo >
 
using Nodes = std::stack< Value * >
 

Private 成员函数

 OurReader (OurReader const &)
 
void operator= (OurReader const &)
 
bool readToken (Token &token)
 
void skipSpaces ()
 
void skipBom (bool skipBom)
 
bool match (const Char *pattern, int patternLength)
 
bool readComment ()
 
bool readCStyleComment (bool *containsNewLineResult)
 
bool readCppStyleComment ()
 
bool readString ()
 
bool readStringSingleQuote ()
 
bool readNumber (bool checkInf)
 
bool readValue ()
 
bool readObject (Token &token)
 
bool readArray (Token &token)
 
bool decodeNumber (Token &token)
 
bool decodeNumber (Token &token, Value &decoded)
 
bool decodeString (Token &token)
 
bool decodeString (Token &token, String &decoded)
 
bool decodeDouble (Token &token)
 
bool decodeDouble (Token &token, Value &decoded)
 
bool decodeUnicodeCodePoint (Token &token, Location &current, Location end, unsigned int &unicode)
 
bool decodeUnicodeEscapeSequence (Token &token, Location &current, Location end, unsigned int &unicode)
 
bool addError (const String &message, Token &token, Location extra=nullptr)
 
bool recoverFromError (TokenType skipUntilToken)
 
bool addErrorAndRecover (const String &message, Token &token, TokenType skipUntilToken)
 
void skipUntilSpace ()
 
ValuecurrentValue ()
 
Char getNextChar ()
 
void getLocationLineAndColumn (Location location, int &line, int &column) const
 
String getLocationLineAndColumn (Location location) const
 
void addComment (Location begin, Location end, CommentPlacement placement)
 
void skipCommentTokens (Token &token)
 

静态 Private 成员函数

static String normalizeEOL (Location begin, Location end)
 
static bool containsNewLine (Location begin, Location end)
 

Private 属性

Nodes nodes_ {}
 
Errors errors_ {}
 
String document_ {}
 
Location begin_ = nullptr
 
Location end_ = nullptr
 
Location current_ = nullptr
 
Location lastValueEnd_ = nullptr
 
ValuelastValue_ = nullptr
 
bool lastValueHasAComment_ = false
 
String commentsBefore_ {}
 
OurFeatures const features_
 
bool collectComments_ = false
 

成员类型定义说明

◆ Char

◆ Errors

◆ Location

◆ Nodes

成员枚举类型说明

◆ TokenType

枚举值
tokenEndOfStream 
tokenObjectBegin 
tokenObjectEnd 
tokenArrayBegin 
tokenArrayEnd 
tokenString 
tokenNumber 
tokenTrue 
tokenFalse 
tokenNull 
tokenNaN 
tokenPosInf 
tokenNegInf 
tokenArraySeparator 
tokenMemberSeparator 
tokenComment 
tokenError 

构造及析构函数说明

◆ OurReader() [1/2]

nim_cpp_wrapper_util::Json::OurReader::OurReader ( OurFeatures const &  features)
explicit

◆ OurReader() [2/2]

nim_cpp_wrapper_util::Json::OurReader::OurReader ( OurReader const &  )
private

成员函数说明

◆ addComment()

void nim_cpp_wrapper_util::Json::OurReader::addComment ( Location  begin,
Location  end,
CommentPlacement  placement 
)
private

◆ addError()

bool nim_cpp_wrapper_util::Json::OurReader::addError ( const String message,
Token token,
Location  extra = nullptr 
)
private

◆ addErrorAndRecover()

bool nim_cpp_wrapper_util::Json::OurReader::addErrorAndRecover ( const String message,
Token token,
TokenType  skipUntilToken 
)
private

◆ containsNewLine()

bool nim_cpp_wrapper_util::Json::OurReader::containsNewLine ( OurReader::Location  begin,
OurReader::Location  end 
)
staticprivate

◆ currentValue()

Value & nim_cpp_wrapper_util::Json::OurReader::currentValue ( )
private

◆ decodeDouble() [1/2]

bool nim_cpp_wrapper_util::Json::OurReader::decodeDouble ( Token token)
private

◆ decodeDouble() [2/2]

bool nim_cpp_wrapper_util::Json::OurReader::decodeDouble ( Token token,
Value decoded 
)
private

◆ decodeNumber() [1/2]

bool nim_cpp_wrapper_util::Json::OurReader::decodeNumber ( Token token)
private

◆ decodeNumber() [2/2]

bool nim_cpp_wrapper_util::Json::OurReader::decodeNumber ( Token token,
Value decoded 
)
private

◆ decodeString() [1/2]

bool nim_cpp_wrapper_util::Json::OurReader::decodeString ( Token token)
private

◆ decodeString() [2/2]

bool nim_cpp_wrapper_util::Json::OurReader::decodeString ( Token token,
String decoded 
)
private

◆ decodeUnicodeCodePoint()

bool nim_cpp_wrapper_util::Json::OurReader::decodeUnicodeCodePoint ( Token token,
Location current,
Location  end,
unsigned int &  unicode 
)
private

◆ decodeUnicodeEscapeSequence()

bool nim_cpp_wrapper_util::Json::OurReader::decodeUnicodeEscapeSequence ( Token token,
Location current,
Location  end,
unsigned int &  unicode 
)
private

◆ getFormattedErrorMessages()

String nim_cpp_wrapper_util::Json::OurReader::getFormattedErrorMessages ( ) const

◆ getLocationLineAndColumn() [1/2]

String nim_cpp_wrapper_util::Json::OurReader::getLocationLineAndColumn ( Location  location) const
private

◆ getLocationLineAndColumn() [2/2]

void nim_cpp_wrapper_util::Json::OurReader::getLocationLineAndColumn ( Location  location,
int &  line,
int &  column 
) const
private

◆ getNextChar()

OurReader::Char nim_cpp_wrapper_util::Json::OurReader::getNextChar ( )
private

◆ getStructuredErrors()

std::vector< OurReader::StructuredError > nim_cpp_wrapper_util::Json::OurReader::getStructuredErrors ( ) const

◆ match()

bool nim_cpp_wrapper_util::Json::OurReader::match ( const Char pattern,
int  patternLength 
)
private

◆ normalizeEOL()

String nim_cpp_wrapper_util::Json::OurReader::normalizeEOL ( OurReader::Location  begin,
OurReader::Location  end 
)
staticprivate

◆ operator=()

void nim_cpp_wrapper_util::Json::OurReader::operator= ( OurReader const &  )
private

◆ parse()

bool nim_cpp_wrapper_util::Json::OurReader::parse ( const char *  beginDoc,
const char *  endDoc,
Value root,
bool  collectComments = true 
)

◆ readArray()

bool nim_cpp_wrapper_util::Json::OurReader::readArray ( Token token)
private

◆ readComment()

bool nim_cpp_wrapper_util::Json::OurReader::readComment ( )
private

◆ readCppStyleComment()

bool nim_cpp_wrapper_util::Json::OurReader::readCppStyleComment ( )
private

◆ readCStyleComment()

bool nim_cpp_wrapper_util::Json::OurReader::readCStyleComment ( bool containsNewLineResult)
private

◆ readNumber()

bool nim_cpp_wrapper_util::Json::OurReader::readNumber ( bool  checkInf)
private

◆ readObject()

bool nim_cpp_wrapper_util::Json::OurReader::readObject ( Token token)
private

◆ readString()

bool nim_cpp_wrapper_util::Json::OurReader::readString ( )
private

◆ readStringSingleQuote()

bool nim_cpp_wrapper_util::Json::OurReader::readStringSingleQuote ( )
private

◆ readToken()

bool nim_cpp_wrapper_util::Json::OurReader::readToken ( Token token)
private

◆ readValue()

bool nim_cpp_wrapper_util::Json::OurReader::readValue ( )
private

◆ recoverFromError()

bool nim_cpp_wrapper_util::Json::OurReader::recoverFromError ( TokenType  skipUntilToken)
private

◆ skipBom()

void nim_cpp_wrapper_util::Json::OurReader::skipBom ( bool  skipBom)
private

◆ skipCommentTokens()

void nim_cpp_wrapper_util::Json::OurReader::skipCommentTokens ( Token token)
private

◆ skipSpaces()

void nim_cpp_wrapper_util::Json::OurReader::skipSpaces ( )
private

◆ skipUntilSpace()

void nim_cpp_wrapper_util::Json::OurReader::skipUntilSpace ( )
private

类成员变量说明

◆ begin_

Location nim_cpp_wrapper_util::Json::OurReader::begin_ = nullptr
private

◆ collectComments_

bool nim_cpp_wrapper_util::Json::OurReader::collectComments_ = false
private

◆ commentsBefore_

String nim_cpp_wrapper_util::Json::OurReader::commentsBefore_ {}
private

◆ current_

Location nim_cpp_wrapper_util::Json::OurReader::current_ = nullptr
private

◆ document_

String nim_cpp_wrapper_util::Json::OurReader::document_ {}
private

◆ end_

Location nim_cpp_wrapper_util::Json::OurReader::end_ = nullptr
private

◆ errors_

Errors nim_cpp_wrapper_util::Json::OurReader::errors_ {}
private

◆ features_

OurFeatures const nim_cpp_wrapper_util::Json::OurReader::features_
private

◆ lastValue_

Value* nim_cpp_wrapper_util::Json::OurReader::lastValue_ = nullptr
private

◆ lastValueEnd_

Location nim_cpp_wrapper_util::Json::OurReader::lastValueEnd_ = nullptr
private

◆ lastValueHasAComment_

bool nim_cpp_wrapper_util::Json::OurReader::lastValueHasAComment_ = false
private

◆ nodes_

Nodes nim_cpp_wrapper_util::Json::OurReader::nodes_ {}
private

该类的文档由以下文件生成: