forked from SeraphYuki/zimedit
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjson.h
More file actions
57 lines (40 loc) · 861 Bytes
/
json.h
File metadata and controls
57 lines (40 loc) · 861 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#ifndef JSON_DEF
#define JSON_DEF
#include <setjmp.h>
#define JSON_ERROR_NON_TERMINATED_STRING -1
#define JSON_ERROR_INVALID_SYNTAX -2
#define JSON_ERROR_STACK_MEMORY -3
typedef struct JSON_Value JSON_Value;
enum {
JSON_NOT_SET = 0,
JSON_TRUE,
JSON_FALSE,
JSON_NULL,
JSON_ARRAY,
JSON_OBJECT,
JSON_NUMBER,
JSON_STRING,
};
struct JSON_Value {
char *string;
// float number;
JSON_Value *children;
unsigned char type;
char *key;
JSON_Value *next;
};
typedef struct {
JSON_Value **top;
char *end;
int size;
char *on;
jmp_buf env;
char *key;
void *stack;
void *stackEnd;
int align;
} JSON_Parser;
void JSON_Dump(JSON_Value *value, int tabs);
int JSON_Parse(JSON_Value **top, char *memory, int size, void *stack, void *stackEnd, int align);
char *JSON_Error(int err);
#endif