2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
26
27
28
29
30
34#if !defined(LWS_ARRAY_SIZE)
35#define LWS_ARRAY_SIZE(_x) (sizeof(_x) / sizeof(_x[0
]))
37#define LEJP_FLAG_WS_KEEP 64
38#define LEJP_FLAG_WS_COMMENTLINE 32
85#define LEJP_FLAG_CB_IS_VALUE 64
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
180#ifndef LEJP_MAX_PARSING_STACK_DEPTH
181#define LEJP_MAX_PARSING_STACK_DEPTH 8
183#ifndef LEJP_MAX_DEPTH
184#define LEJP_MAX_DEPTH 16
186#ifndef LEJP_MAX_INDEX_DEPTH
187#define LEJP_MAX_INDEX_DEPTH 12
190#define LEJP_MAX_PATH 192
192#ifndef LEJP_STRING_CHUNK
194#define LEJP_STRING_CHUNK 254
223
224
225
248#define LEJP_FLAG_FEAT_OBJECT_INDEXES (1
<< 0
)
249#define LEJP_FLAG_FEAT_LEADING_WC (1
<< 1
)
250#define LEJP_FLAG_LATEST
270LWS_VISIBLE LWS_EXTERN
void
272 signed char (*callback)(
struct lejp_ctx *ctx,
char reason),
273 void *user,
const char *
const *paths,
unsigned char paths_count);
275LWS_VISIBLE LWS_EXTERN
void
278LWS_VISIBLE LWS_EXTERN
int
281LWS_VISIBLE LWS_EXTERN
void
283 signed char (*callback)(
struct lejp_ctx *ctx,
char reason));
286
287
288
289LWS_VISIBLE LWS_EXTERN
int
294
295
296
297LWS_VISIBLE LWS_EXTERN
int
301LWS_VISIBLE LWS_EXTERN
void
304LWS_VISIBLE LWS_EXTERN
int
307LWS_VISIBLE LWS_EXTERN
const char *
LWS_VISIBLE LWS_EXTERN void lejp_construct(struct lejp_ctx *ctx, signed char(*callback)(struct lejp_ctx *ctx, char reason), void *user, const char *const *paths, unsigned char paths_count)
struct _lejp_stack st[LEJP_MAX_DEPTH]
#define LEJP_FLAG_FEAT_OBJECT_INDEXES
#define LEJP_MAX_PARSING_STACK_DEPTH
LWS_VISIBLE LWS_EXTERN int lejp_parser_pop(struct lejp_ctx *ctx)
@ LEJP_REJECT_ILLEGAL_HEX
@ LEJP_REJECT_MP_C_OR_E_NEITHER
@ LEJP_REJECT_MP_VAL_NUM_FORMAT
@ LEJP_REJECT_MP_ARRAY_END_MISSING
@ LEJP_REJECT_MP_DELIM_MISSING_COLON
@ LEJP_REJECT_MP_C_OR_E_UNDERF
@ LEJP_REJECT_MP_STRING_ESC_ILLEGAL_ESC
@ LEJP_REJECT_MP_VAL_TOK_UNKNOWN
@ LEJP_REJECT_MP_C_OR_E_NOTARRAY
@ LEJP_REJECT_MP_VAL_NUM_INT_NO_FRAC
@ LEJP_REJECT_MEMBERS_NO_CLOSE
@ LEJP_REJECT_MP_DELIM_ISTACK
@ LEJP_REJECT_IDLE_NO_BRACE
@ LEJP_REJECT_NUM_TOO_LONG
@ LEJP_REJECT_MP_STRING_UNDERRUN
@ LEJP_REJECT_MP_NO_OPEN_QUOTE
@ LEJP_REJECT_MP_ILLEGAL_CTRL
@ LEJP_REJECT_STACK_OVERFLOW
@ LEJP_REJECT_MP_DELIM_BAD_VALUE_START
@ LEJP_REJECT_MP_VAL_NUM_EXP_BAD_EXP
LWS_VISIBLE LWS_EXTERN void lejp_check_path_match(struct lejp_ctx *ctx)
LWS_VISIBLE LWS_EXTERN int lejp_parse(struct lejp_ctx *ctx, const unsigned char *json, int len)
#define LEJP_FLAG_FEAT_LEADING_WC
LWS_VISIBLE LWS_EXTERN void lejp_change_callback(struct lejp_ctx *ctx, signed char(*callback)(struct lejp_ctx *ctx, char reason))
LWS_EXTERN signed char _lejp_callback(struct lejp_ctx *ctx, char reason)
#define LEJP_STRING_CHUNK
LWS_VISIBLE LWS_EXTERN const char * lejp_error_to_string(int e)
LWS_VISIBLE LWS_EXTERN int lejp_parser_push(struct lejp_ctx *ctx, void *user, const char *const *paths, unsigned char paths_count, lejp_callback lejp_cb)
#define LEJP_FLAG_CB_IS_VALUE
LWS_VISIBLE LWS_EXTERN void lejp_destruct(struct lejp_ctx *ctx)
signed char(* lejp_callback)(struct lejp_ctx *ctx, char reason)
#define LEJP_MAX_INDEX_DEPTH
#define LEJP_FLAG_WS_KEEP
char buf[LEJP_STRING_CHUNK+1]
struct _lejp_parsing_stack pst[LEJP_MAX_PARSING_STACK_DEPTH]
LWS_VISIBLE LWS_EXTERN int lejp_get_wildcard(struct lejp_ctx *ctx, int wildcard, char *dest, int len)
signed char(* callback)(struct lejp_ctx *ctx, char reason)
const char *const * paths