| #ifndef JV_PARSE_H |
| #define JV_PARSE_H |
| #include "jv_dtoa.h" |
| struct jv_parser { |
| const char* curr_buf; |
| int curr_buf_length; |
| int curr_buf_pos; |
| int curr_buf_is_partial; |
| unsigned bom_strip_position; |
| |
| jv* stack; |
| int stackpos; |
| int stacklen; |
| jv next; |
| |
| char* tokenbuf; |
| int tokenpos; |
| int tokenlen; |
| |
| int line, column; |
| |
| struct dtoa_context dtoa; |
| |
| enum { |
| JV_PARSER_NORMAL, |
| JV_PARSER_STRING, |
| JV_PARSER_STRING_ESCAPE |
| } st; |
| }; |
| |
| void jv_parser_init(struct jv_parser* p); |
| void jv_parser_free(struct jv_parser* p); |
| |
| void jv_parser_set_buf(struct jv_parser* p, const char* buf, int length, int is_partial); |
| |
| jv jv_parser_next(struct jv_parser* p); |
| #endif |