00001 #ifndef __JSMN_H_
00002 #define __JSMN_H_
00003
00011 typedef enum {
00012 JSMN_PRIMITIVE = 0,
00013 JSMN_OBJECT = 1,
00014 JSMN_ARRAY = 2,
00015 JSMN_STRING = 3
00016 } jsmntype_t;
00017
00018 typedef enum {
00019
00020 JSMN_ERROR_NOMEM = -1,
00021
00022 JSMN_ERROR_INVAL = -2,
00023
00024 JSMN_ERROR_PART = -3,
00025
00026 JSMN_SUCCESS = 0
00027 } jsmnerr_t;
00028
00035 typedef struct {
00036 jsmntype_t type;
00037 int start;
00038 int end;
00039 int size;
00040 #ifdef JSMN_PARENT_LINKS
00041 int parent;
00042 #endif
00043 } jsmntok_t;
00044
00049 typedef struct {
00050 unsigned int pos;
00051 int toknext;
00052 int toksuper;
00053 } jsmn_parser;
00054
00058 void jsmn_init(jsmn_parser *parser);
00059
00064 jsmnerr_t jsmn_parse(jsmn_parser *parser, const char *js,
00065 jsmntok_t *tokens, unsigned int num_tokens);
00066
00067 #endif