#include #include #include #include "json.h" #define PSTRING (-1) #define PNUMBER (-2) #define PTRUE (-3) #define PFALSE (-4) #define PNULL (-5) #define NUMERROR 1 #define TOKENERROR 2 struct scanner { void *(*allocate)(size_t s); void *(*reallocate)(void *p, size_t s); void (*free)(void *p); }; #define NEED_MORE 0 int scanner_init(struct scanner *s); struct token { int len; char ch; int type; int maybe; int error; int state; unsigned int unicode; char str[1024]; }; /* returns a pointer to the last unused character */ /* fills in t. */ int scan_json_ch(int input, struct token *t);