40 lines
914 B
C
40 lines
914 B
C
|
|
/* JSON_checker.h */
|
||
|
|
|
||
|
|
/* 2016-11-11 */
|
||
|
|
|
||
|
|
/*
|
||
|
|
The JSON_checker_struct is used to hold the state of the JSON_checker
|
||
|
|
so that the code can be reentrant.
|
||
|
|
*/
|
||
|
|
|
||
|
|
typedef struct JSON_checker_struct {
|
||
|
|
int valid;
|
||
|
|
int state;
|
||
|
|
int depth;
|
||
|
|
int top;
|
||
|
|
int* stack;
|
||
|
|
} * JSON_checker;
|
||
|
|
|
||
|
|
|
||
|
|
extern JSON_checker new_JSON_checker(int depth);
|
||
|
|
|
||
|
|
/*
|
||
|
|
Make a new JSON_checker. You indicate the maximum depth that is allowed.
|
||
|
|
It will return an object that you will pass to the other functions.
|
||
|
|
They will destroy the object for you.
|
||
|
|
*/
|
||
|
|
|
||
|
|
extern int JSON_checker_char(JSON_checker jc, int next_char);
|
||
|
|
|
||
|
|
/*
|
||
|
|
You should call JSON_checker_char for each character of the JSON text.
|
||
|
|
It will return false if the text is not right.
|
||
|
|
*/
|
||
|
|
|
||
|
|
extern int JSON_checker_done(JSON_checker jc);
|
||
|
|
|
||
|
|
/*
|
||
|
|
When there are no more JSON text characters, call JSON_checker_done.
|
||
|
|
It will return false if the text was not right.
|
||
|
|
*/
|