26 using Location =
char const*;
28 enum class TokenType :
int {
39 TokenArraySeparator = 10,
40 TokenMemberSeparator = 11,
49 ::ll::TypedStorage<4, 4, ::Json::Reader::TokenType> type_;
50 ::ll::TypedStorage<8, 8, char const*> start_;
51 ::ll::TypedStorage<8, 8, char const*> end_;
52 ::ll::TypedStorage<1, 1, bool> stringHasEscape_;
60 ::ll::TypedStorage<8, 32, ::Json::Reader::Token> token_;
61 ::ll::TypedStorage<8, 32, ::std::string> message_;
62 ::ll::TypedStorage<8, 8, char const*> extra_;
78 using Errors = ::std::deque<::Json::Reader::ErrorInfo>;
80 using Nodes = ::std::stack<::Json::Value*, ::std::deque<::Json::Value*>>;
85 ::ll::TypedStorage<8, 40, ::std::stack<::Json::Value*, ::std::deque<::Json::Value*>>> nodes_;
86 ::ll::TypedStorage<8, 40, ::std::deque<::Json::Reader::ErrorInfo>> errors_;
87 ::ll::TypedStorage<8, 32, ::std::string> document_;
88 ::ll::TypedStorage<8, 8, char const*> begin_;
89 ::ll::TypedStorage<8, 8, char const*> end_;
90 ::ll::TypedStorage<8, 8, char const*> current_;
91 ::ll::TypedStorage<8, 8, char const*> lastValueEnd_;
92 ::ll::TypedStorage<8, 8, ::Json::Value*> lastValue_;
93 ::ll::TypedStorage<8, 32, ::std::string> commentsBefore_;
94 ::ll::TypedStorage<1, 2, ::Json::Features> features_;
95 ::ll::TypedStorage<1, 1, bool> collectComments_;
114 decodeUnicodeCodePoint(
::Json::Reader::Token& token,
char const*& current,
char const* end, uint& unicode);
117 decodeUnicodeEscapeSequence(
::Json::Reader::Token& token,
char const*& current,
char const* end, uint& unicode);
119 MCAPI ::std::string getFormattedErrorMessages()
const;
121 MCAPI ::std::string getLocationLineAndColumn(
char const* location)
const;
123 MCAPI
bool parse(::std::string
const& document,
::Json::Value& root,
bool collectComments);
125 MCAPI
bool parse(::std::istream& sin,
::Json::Value& root,
bool collectComments);
127 MCAPI
bool parse(
char const* beginDoc,
char const* endDoc,
::Json::Value& root,
bool);
135 MCAPI ::Json::Value readValue(
bool& successful);
137 MCAPI
bool recoverFromError(::Json::Reader::TokenType skipUntilToken);