Lines Matching refs:error

78 /*** error reporting ***/
80 static void error_set(json_error_t *error, const lex_t *lex,
91 if(!error)
131 jsonp_error_set(error, line, col, pos, "%s", result);
151 static int stream_get(stream_t *stream, json_error_t *error)
210 error_set(error, stream_to_lex(stream), "unable to decode byte 0x%x", c);
233 static int lex_get(lex_t *lex, json_error_t *error)
235 return stream_get(&lex->stream, error);
243 static int lex_get_save(lex_t *lex, json_error_t *error)
245 int c = stream_get(&lex->stream, error);
261 * treated as an error by GCC.
316 static void lex_scan_string(lex_t *lex, json_error_t *error)
326 c = lex_get_save(lex, error);
333 error_set(error, lex, "premature end of input");
341 error_set(error, lex, "unexpected newline", c);
343 error_set(error, lex, "control character 0x%x", c);
348 c = lex_get_save(lex, error);
350 c = lex_get_save(lex, error);
353 error_set(error, lex, "invalid escape");
356 c = lex_get_save(lex, error);
361 c = lex_get_save(lex, error);
363 error_set(error, lex, "invalid escape");
368 c = lex_get_save(lex, error);
397 error_set(error, lex, "invalid Unicode escape '%.6s'", p - 1);
407 error_set(error, lex, "invalid Unicode escape '%.6s'", p - 1);
421 error_set(error, lex,
429 error_set(error, lex, "invalid Unicode '\\u%04X'",
435 error_set(error, lex, "invalid Unicode '\\u%04X'", value);
482 static int lex_scan_number(lex_t *lex, int c, json_error_t *error)
491 c = lex_get_save(lex, error);
494 c = lex_get_save(lex, error);
501 c = lex_get_save(lex, error);
503 c = lex_get_save(lex, error);
521 error_set(error, lex, "too big negative integer");
523 error_set(error, lex, "too big integer");
535 c = lex_get(lex, error);
542 c = lex_get_save(lex, error);
544 c = lex_get_save(lex, error);
548 c = lex_get_save(lex, error);
550 c = lex_get_save(lex, error);
557 c = lex_get_save(lex, error);
559 c = lex_get_save(lex, error);
565 error_set(error, lex, "real number overflow");
577 static int lex_scan(lex_t *lex, json_error_t *error)
586 c = lex_get(lex, error);
588 c = lex_get(lex, error);
606 lex_scan_string(lex, error);
609 if(lex_scan_number(lex, c, error))
614 /* eat up the whole identifier for clearer error messages */
617 c = lex_get_save(lex, error);
619 c = lex_get_save(lex, error);
635 /* save the rest of the input UTF-8 sequence to get an error
677 static json_t *parse_value(lex_t *lex, size_t flags, json_error_t *error);
679 static json_t *parse_object(lex_t *lex, size_t flags, json_error_t *error)
685 lex_scan(lex, error);
695 error_set(error, lex, "string or '}' expected");
696 goto error;
704 error_set(error, lex, "NUL byte in object key not supported");
705 goto error;
711 error_set(error, lex, "duplicate object key");
712 goto error;
716 lex_scan(lex, error);
719 error_set(error, lex, "':' expected");
720 goto error;
723 lex_scan(lex, error);
724 value = parse_value(lex, flags, error);
727 goto error;
733 goto error;
739 lex_scan(lex, error);
743 lex_scan(lex, error);
747 error_set(error, lex, "'}' expected");
748 goto error;
753 error:
758 static json_t *parse_array(lex_t *lex, size_t flags, json_error_t *error)
764 lex_scan(lex, error);
769 json_t *elem = parse_value(lex, flags, error);
771 goto error;
775 goto error;
779 lex_scan(lex, error);
783 lex_scan(lex, error);
787 error_set(error, lex, "']' expected");
788 goto error;
793 error:
798 static json_t *parse_value(lex_t *lex, size_t flags, json_error_t *error)
810 error_set(error, lex, "\\u0000 is not allowed without JSON_ALLOW_NUL");
826 error_set(error, lex, "real number overflow");
854 json = parse_object(lex, flags, error);
858 json = parse_array(lex, flags, error);
862 error_set(error, lex, "invalid token");
866 error_set(error, lex, "unexpected token");
876 static json_t *parse_json(lex_t *lex, size_t flags, json_error_t *error)
880 lex_scan(lex, error);
883 error_set(error, lex, "'[' or '{' expected");
888 result = parse_value(lex, flags, error);
893 lex_scan(lex, error);
895 error_set(error, lex, "end of file expected");
901 if(error) {
902 /* Save the position even though there was no error */
903 error->position = lex->stream.position;
929 json_t *json_loads(const char *string, size_t flags, json_error_t *error)
935 jsonp_error_init(error, "<string>");
938 error_set(error, NULL, "wrong arguments");
948 result = parse_json(&lex, flags, error);
973 json_t *json_loadb(const char *buffer, size_t buflen, size_t flags, json_error_t *error)
979 jsonp_error_init(error, "<buffer>");
982 error_set(error, NULL, "wrong arguments");
993 result = parse_json(&lex, flags, error);
999 json_t *json_loadf(FILE *input, size_t flags, json_error_t *error)
1010 jsonp_error_init(error, source);
1013 error_set(error, NULL, "wrong arguments");
1020 result = parse_json(&lex, flags, error);
1026 json_t *json_load_file(const char *path, size_t flags, json_error_t *error)
1031 jsonp_error_init(error, path);
1034 error_set(error, NULL, "wrong arguments");
1041 error_set(error, NULL, "unable to open %s: %s",
1046 result = json_loadf(fp, flags, error);
1080 json_t *json_load_callback(json_load_callback_t callback, void *arg, size_t flags, json_error_t *error)
1091 jsonp_error_init(error, "<callback>");
1094 error_set(error, NULL, "wrong arguments");
1101 result = parse_json(&lex, flags, error);