aboutsummaryrefslogtreecommitdiff
path: root/jsmn.h
diff options
context:
space:
mode:
Diffstat (limited to 'jsmn.h')
-rw-r--r--jsmn.h61
1 files changed, 32 insertions, 29 deletions
diff --git a/jsmn.h b/jsmn.h
index 0b1624b..5a5200e 100644
--- a/jsmn.h
+++ b/jsmn.h
@@ -1,46 +1,49 @@
#ifndef __JSMN_H_
#define __JSMN_H_
+#include <stddef.h>
+
#ifdef __cplusplus
extern "C" {
#endif
/**
* JSON type identifier. Basic types are:
- * o Object
- * o Array
- * o String
- * o Other primitive: number, boolean (true/false) or null
+ * o Object
+ * o Array
+ * o String
+ * o Other primitive: number, boolean (true/false) or null
*/
typedef enum {
- JSMN_PRIMITIVE = 0,
- JSMN_OBJECT = 1,
- JSMN_ARRAY = 2,
- JSMN_STRING = 3
+ JSMN_UNDEFINED = 0,
+ JSMN_OBJECT = 1,
+ JSMN_ARRAY = 2,
+ JSMN_STRING = 3,
+ JSMN_PRIMITIVE = 4
} jsmntype_t;
-typedef enum {
- /* Not enough tokens were provided */
- JSMN_ERROR_NOMEM = -1,
- /* Invalid character inside JSON string */
- JSMN_ERROR_INVAL = -2,
- /* The string is not a full JSON packet, more bytes expected */
- JSMN_ERROR_PART = -3,
-} jsmnerr_t;
+enum jsmnerr {
+ /* Not enough tokens were provided */
+ JSMN_ERROR_NOMEM = -1,
+ /* Invalid character inside JSON string */
+ JSMN_ERROR_INVAL = -2,
+ /* The string is not a full JSON packet, more bytes expected */
+ JSMN_ERROR_PART = -3
+};
/**
* JSON token description.
- * @param type type (object, array, string etc.)
- * @param start start position in JSON data string
- * @param end end position in JSON data string
+ * type type (object, array, string etc.)
+ * start start position in JSON data string
+ * end end position in JSON data string
*/
typedef struct {
- jsmntype_t type;
- int start;
- int end;
- int size;
+ jsmntype_t type;
+ int start;
+ int end;
+ int size;
#ifdef JSMN_PARENT_LINKS
- int parent;
+ int parent;
#endif
} jsmntok_t;
@@ -49,9 +52,9 @@ typedef struct {
* the string being parsed now and current position in that string
*/
typedef struct {
- unsigned int pos; /* offset in the JSON string */
- unsigned int toknext; /* next token to allocate */
- int toksuper; /* superior token node, e.g parent object or array */
+ unsigned int pos; /* offset in the JSON string */
+ unsigned int toknext; /* next token to allocate */
+ int toksuper; /* superior token node, e.g parent object or array */
} jsmn_parser;
/**
@@ -63,8 +66,8 @@ void jsmn_init(jsmn_parser *parser);
* Run JSON parser. It parses a JSON data string into and array of tokens, each describing
* a single JSON object.
*/
-jsmnerr_t jsmn_parse(jsmn_parser *parser, const char *js, size_t len,
- jsmntok_t *tokens, unsigned int num_tokens);
+int jsmn_parse(jsmn_parser *parser, const char *js, size_t len,
+ jsmntok_t *tokens, unsigned int num_tokens);
#ifdef __cplusplus
}