|
|
|
@ -338,6 +338,7 @@ struct JsonParser {
|
|
|
|
|
size_t i;
|
|
|
|
|
string &err;
|
|
|
|
|
bool failed;
|
|
|
|
|
bool detect_comments;
|
|
|
|
|
|
|
|
|
|
/* fail(msg, err_ret = Json())
|
|
|
|
|
*
|
|
|
|
@ -397,10 +398,10 @@ struct JsonParser {
|
|
|
|
|
*/
|
|
|
|
|
void consume_garbage() {
|
|
|
|
|
consume_whitespace();
|
|
|
|
|
#ifdef JSON11_COMMENTS
|
|
|
|
|
consume_comment();
|
|
|
|
|
consume_whitespace();
|
|
|
|
|
#endif
|
|
|
|
|
if(detect_comments) {
|
|
|
|
|
consume_comment();
|
|
|
|
|
consume_whitespace();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* get_next_token()
|
|
|
|
@ -696,8 +697,8 @@ struct JsonParser {
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Json Json::parse(const string &in, string &err) {
|
|
|
|
|
JsonParser parser { in, 0, err, false };
|
|
|
|
|
Json Json::parse(const string &in, string &err, bool detect_comments) {
|
|
|
|
|
JsonParser parser { in, 0, err, false, detect_comments };
|
|
|
|
|
Json result = parser.parse_json(0);
|
|
|
|
|
|
|
|
|
|
// Check for any trailing garbage
|
|
|
|
@ -709,8 +710,10 @@ Json Json::parse(const string &in, string &err) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Documented in json11.hpp
|
|
|
|
|
vector<Json> Json::parse_multi(const string &in, string &err) {
|
|
|
|
|
JsonParser parser { in, 0, err, false };
|
|
|
|
|
vector<Json> Json::parse_multi(const string &in,
|
|
|
|
|
string &err,
|
|
|
|
|
bool detect_comments) {
|
|
|
|
|
JsonParser parser { in, 0, err, false, detect_comments };
|
|
|
|
|
|
|
|
|
|
vector<Json> json_vec;
|
|
|
|
|
while (parser.i != in.size() && !parser.failed) {
|
|
|
|
|