Home | History | Annotate | Download | only in zzjson

Lines Matching refs:config

12 #define GETC()          config->getchar(config->ihandle)
13 #define UNGETC(c) config->ungetchar(c, config->ihandle)
14 #define SKIPWS() skipws(config)
18 #define ERROR(x...) config->error(config->ehandle, ##x)
22 #define ALLOW_EXTRA_COMMA (config->strictness & ZZJSON_ALLOW_EXTRA_COMMA)
23 #define ALLOW_ILLEGAL_ESCAPE (config->strictness & ZZJSON_ALLOW_ILLEGAL_ESCAPE)
24 #define ALLOW_CONTROL_CHARS (config->strictness & ZZJSON_ALLOW_CONTROL_CHARS)
25 #define ALLOW_GARBAGE_AT_END (config->strictness & ZZJSON_ALLOW_GARBAGE_AT_END)
26 #define ALLOW_COMMENTS (config->strictness & ZZJSON_ALLOW_COMMENTS)
28 static ZZJSON *parse_array(ZZJSON_CONFIG *config);
29 static ZZJSON *parse_object(ZZJSON_CONFIG *config);
31 static void skipws(ZZJSON_CONFIG *config) {
53 static char *parse_string(ZZJSON_CONFIG *config) {
65 str = config->malloc(len);
102 str = config->realloc(str, len);
119 config->free(str);
123 static ZZJSON *parse_string2(ZZJSON_CONFIG *config) {
127 str = parse_string(config);
129 zzjson = config->calloc(1, sizeof(ZZJSON));
132 config->free(str);
141 static ZZJSON *parse_number(ZZJSON_CONFIG *config) {
219 zzjson = config->calloc(1, sizeof(ZZJSON));
235 static ZZJSON *parse_literal(ZZJSON_CONFIG *config, char *s, ZZJSON_TYPE t) {
244 zzjson = config->calloc(1, sizeof(ZZJSON));
256 static ZZJSON *parse_true(ZZJSON_CONFIG *config) {
257 return parse_literal(config, (char *)"true", ZZJSON_TRUE);
260 static ZZJSON *parse_false(ZZJSON_CONFIG *config) {
261 return parse_literal(config, (char *)"false", ZZJSON_FALSE);
264 static ZZJSON *parse_null(ZZJSON_CONFIG *config) {
265 return parse_literal(config, (char *)"null", ZZJSON_NULL);
268 static ZZJSON *parse_value(ZZJSON_CONFIG *config) {
276 case '"': retval = parse_string2(config); break;
279 retval = parse_number(config); break;
280 case '{': retval = parse_object(config); break;
281 case '[': retval = parse_array(config); break;
282 case 't': retval = parse_true(config); break;
283 case 'f': retval = parse_false(config); break;
284 case 'n': retval = parse_null(config); break;
295 static ZZJSON *parse_array(ZZJSON_CONFIG *config) {
314 val = parse_value(config);
325 zzjson_free(config, val);
338 zzjson = config->calloc(1, sizeof(ZZJSON));
341 zzjson_free(config, val);
358 retval = config->calloc(1, sizeof(ZZJSON));
369 zzjson_free(config, retval);
373 static ZZJSON *parse_object(ZZJSON_CONFIG *config) {
393 str = parse_string(config);
397 config->free(str);
409 val = parse_value(config);
420 zzjson_free(config, val);
433 zzjson = config->calloc(1, sizeof(ZZJSON));
453 retval = config->calloc(1, sizeof(ZZJSON));
464 zzjson_free(config, retval);
468 ZZJSON *zzjson_parse(ZZJSON_CONFIG *config) {
475 if (c == '[') retval = parse_array(config);
476 else if (c == '{') retval = parse_object(config);
485 zzjson_free(config, retval);