19typedef enum { T_OBJ, T_ARR, T_STR, T_NUM, T_TRUE, T_FALSE, T_NULL }
ttype_t;
unsigned esc_json_decode_unit(const char *s, uint32_t *i, uint8_t out[4])
The UTF-8 bytes of the character at s[*i], into out; *i moves past it.
Definition esc_json_lex.c:272
ttype_t
Type of one JSON token.
Definition esc_json_int.h:19
bool esc_json_text_is(const char *s, const tok_t *a, const char *lit)
Whether a string token's text decodes to the plain lit.
Definition esc_json_lex.c:361
bool esc_json_lex_all(lex_t *l)
Cut lexer l's text into tokens.
Definition esc_json_lex.c:584
const char * esc_json_lex_why_text(lex_why_t why)
Why the lexer refused, as the text after "%s near byte".
Definition esc_json_lex.c:595
lex_why_t
Why the text was refused, beyond its not being JSON.
Definition esc_json_int.h:33
@ LEX_SURROGATE
Definition esc_json_int.h:37
@ LEX_UTF8
Definition esc_json_int.h:38
@ LEX_MEMBERS
Definition esc_json_int.h:39
@ LEX_DUP
Definition esc_json_int.h:35
@ LEX_NUL
Definition esc_json_int.h:36
#define s
Short name for esc_stick_s inside the five stick-class files.
Definition esc_stick_panel_int.h:295
State of one lexer run over a JSON text.
Definition esc_json_int.h:43
uint32_t cap
Definition esc_json_int.h:49
uint32_t pos
Definition esc_json_int.h:46
lex_why_t why
Definition esc_json_int.h:50
tok_t * tok
Definition esc_json_int.h:47
const char * s
Definition esc_json_int.h:44
uint32_t n
Definition esc_json_int.h:48
uint32_t len
Definition esc_json_int.h:45
One JSON token, with its byte range and its links.
Definition esc_json_int.h:22
ttype_t type
Definition esc_json_int.h:23
uint32_t size
Definition esc_json_int.h:26
uint32_t start
Definition esc_json_int.h:24
uint32_t end
Definition esc_json_int.h:25
uint32_t next
Definition esc_json_int.h:27