|
- /*
- * $Id: json_tokener.h,v 1.6 2005/06/14 22:41:51 mclark Exp $
- *
- * Copyright Metaparadigm Pte. Ltd. 2004.
- * Michael Clark <michael@metaparadigm.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public (LGPL)
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details: http://www.gnu.org/
- *
- */
-
- #ifndef _json_tokener_h_
- #define _json_tokener_h_
-
- #include "config.h"
- #include "json_object.h"
-
- enum json_tokener_error {
- json_tokener_success,
- json_tokener_error_parse_unexpected,
- json_tokener_error_parse_null,
- json_tokener_error_parse_boolean,
- json_tokener_error_parse_number,
- json_tokener_error_parse_array,
- json_tokener_error_parse_object,
- json_tokener_error_parse_string,
- json_tokener_error_parse_comment,
- json_tokener_error_parse_eof,
- };
-
- enum json_tokener_state {
- json_tokener_state_eatws,
- json_tokener_state_start,
- json_tokener_state_finish,
- json_tokener_state_null,
- json_tokener_state_comment_start,
- json_tokener_state_comment,
- json_tokener_state_comment_eol,
- json_tokener_state_comment_end,
- json_tokener_state_string,
- json_tokener_state_string_escape,
- json_tokener_state_escape_unicode,
- json_tokener_state_boolean,
- json_tokener_state_number,
- json_tokener_state_array,
- json_tokener_state_array_sep,
- json_tokener_state_object,
- json_tokener_state_object_field_start,
- json_tokener_state_object_field,
- json_tokener_state_object_field_end,
- json_tokener_state_object_value,
- json_tokener_state_object_sep,
- };
-
- struct json_tokener
- {
- char *source;
- int pos;
- struct printbuf *pb;
- };
-
- #if !HAVE_STRNCASECMP && defined(_MSC_VER)
- /* MSC has the version as _strnicmp */
- # define strncasecmp _strnicmp
- #elif !HAVE_STRNCASECMP
- # error You do not have strncasecmp on your system.
- #endif /* HAVE_STRNCASECMP */
-
- #if !HAVE_STRNDUP
- char* strndup(const char* str, size_t n);
- #endif /* !HAVE_STRNDUP */
-
- extern struct json_object* json_tokener_parse(char *s);
-
- #endif
|