Dumb-ways-to-memorize
2D game
Main Page
Related Pages
Data Structures
Files
File List
Globals
dumb-ways-to-memorize
External_Libs
jsmn.h
Go to the documentation of this file.
1
#ifndef __JSMN_H_
2
#define __JSMN_H_
3
4
#include <stddef.h>
5
6
#ifdef __cplusplus
7
extern
"C"
{
8
#endif
9
10
/**
11
* JSON type identifier. Basic types are:
12
* o Object
13
* o Array
14
* o String
15
* o Other primitive: number, boolean (true/false) or null
16
*/
17
typedef
enum
{
18
JSMN_UNDEFINED
= 0,
19
JSMN_OBJECT
= 1,
20
JSMN_ARRAY
= 2,
21
JSMN_STRING
= 3,
22
JSMN_PRIMITIVE
= 4
23
}
jsmntype_t
;
24
25
enum
jsmnerr
{
26
/* Not enough tokens were provided */
27
JSMN_ERROR_NOMEM
= -1,
28
/* Invalid character inside JSON string */
29
JSMN_ERROR_INVAL
= -2,
30
/* The string is not a full JSON packet, more bytes expected */
31
JSMN_ERROR_PART
= -3
32
};
33
34
/**
35
* JSON token description.
36
* @param type type (object, array, string etc.)
37
* @param start start position in JSON data string
38
* @param end end position in JSON data string
39
*/
40
typedef
struct
{
41
jsmntype_t
type
;
42
int
start
;
43
int
end
;
44
int
size
;
45
#ifdef JSMN_PARENT_LINKS
46
int
parent;
47
#endif
48
}
jsmntok_t
;
49
50
/**
51
* JSON parser. Contains an array of token blocks available. Also stores
52
* the string being parsed now and current position in that string
53
*/
54
typedef
struct
{
55
unsigned
int
pos
;
/* offset in the JSON string */
56
unsigned
int
toknext
;
/* next token to allocate */
57
int
toksuper
;
/* superior token node, e.g parent object or array */
58
}
jsmn_parser
;
59
60
/**
61
* Create JSON parser over an array of tokens
62
*/
63
void
jsmn_init
(
jsmn_parser
*parser);
64
65
/**
66
* Run JSON parser. It parses a JSON data string into and array of tokens, each describing
67
* a single JSON object.
68
*/
69
int
jsmn_parse
(
jsmn_parser
*parser,
const
char
*js,
size_t
len,
70
jsmntok_t
*tokens,
unsigned
int
num_tokens);
71
72
#ifdef __cplusplus
73
}
74
#endif
75
76
#endif
/* __JSMN_H_ */
jsmntok_t
Definition:
jsmn.h:40
jsmn_parse
int jsmn_parse(jsmn_parser *parser, const char *js, size_t len, jsmntok_t *tokens, unsigned int num_tokens)
Definition:
jsmn.c:151
jsmntype_t
jsmntype_t
Definition:
jsmn.h:17
JSMN_UNDEFINED
Definition:
jsmn.h:18
jsmn_parser::toknext
unsigned int toknext
Definition:
jsmn.h:56
JSMN_STRING
Definition:
jsmn.h:21
JSMN_ERROR_NOMEM
Definition:
jsmn.h:27
JSMN_OBJECT
Definition:
jsmn.h:19
jsmntok_t::type
jsmntype_t type
Definition:
jsmn.h:41
jsmn_parser
Definition:
jsmn.h:54
JSMN_PRIMITIVE
Definition:
jsmn.h:22
jsmn_init
void jsmn_init(jsmn_parser *parser)
Definition:
jsmn.c:306
jsmn_parser::toksuper
int toksuper
Definition:
jsmn.h:57
jsmntok_t::start
int start
Definition:
jsmn.h:42
JSMN_ERROR_INVAL
Definition:
jsmn.h:29
JSMN_ERROR_PART
Definition:
jsmn.h:31
JSMN_ARRAY
Definition:
jsmn.h:20
jsmntok_t::end
int end
Definition:
jsmn.h:43
jsmntok_t::size
int size
Definition:
jsmn.h:44
jsmn_parser::pos
unsigned int pos
Definition:
jsmn.h:55
jsmnerr
jsmnerr
Definition:
jsmn.h:25
Generated by
1.8.11