MCPcopy Create free account
hub / github.com/crownengine/crown / parse_key

Function parse_key

src/core/json/sjson.cpp:241–285  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

239 }
240
241 static const char *parse_key(const char *json, DynamicString &key)
242 {
243 if (json == NULL) {
244 fatal("json is NULL");
245 return NULL;
246 }
247
248 if (*json == '"') {
249 while (*++json) {
250 if (*json == '"')
251 return json + 1;
252
253 if (*json == '\\') {
254 ++json;
255
256 switch (*json) {
257 case '"': key += '"'; break;
258 case '\\': key += '\\'; break;
259 case '/': key += '/'; break;
260 case 'b': key += '\b'; break;
261 case 'f': key += '\f'; break;
262 case 'n': key += '\n'; break;
263 case 'r': key += '\r'; break;
264 case 't': key += '\t'; break;
265 default: fatal("Bad escape character"); return NULL; break;
266 }
267 } else {
268 key += *json;
269 }
270 }
271
272 fatal("Bad string");
273 return NULL;
274 }
275
276 while (*json) {
277 if (isspace(*json) || *json == '=' || *json == ':')
278 return json;
279
280 key += *json++;
281 }
282
283 fatal("Bad object key '%s'", key.c_str());
284 return NULL;
285 }
286
287 static f64 parse_number(const char *json)
288 {

Callers 2

parse_root_objectFunction · 0.85
parse_objectFunction · 0.85

Calls 2

fatalFunction · 0.70
c_strMethod · 0.45

Tested by

no test coverage detected