Lines Matching refs:parser

32 static jsmntok_t *jsmn_alloc_token(jsmn_parser *parser,  in jsmn_alloc_token()  argument
37 if ((unsigned)parser->toknext >= num_tokens) in jsmn_alloc_token()
39 tok = &tokens[parser->toknext++]; in jsmn_alloc_token()
60 static jsmnerr_t jsmn_parse_primitive(jsmn_parser *parser, const char *js, in jsmn_parse_primitive() argument
67 start = parser->pos; in jsmn_parse_primitive()
69 for (; parser->pos < len; parser->pos++) { in jsmn_parse_primitive()
70 switch (js[parser->pos]) { in jsmn_parse_primitive()
89 if (js[parser->pos] < 32 || js[parser->pos] >= 127) { in jsmn_parse_primitive()
90 parser->pos = start; in jsmn_parse_primitive()
99 parser->pos = start; in jsmn_parse_primitive()
104 token = jsmn_alloc_token(parser, tokens, num_tokens); in jsmn_parse_primitive()
106 parser->pos = start; in jsmn_parse_primitive()
109 jsmn_fill_token(token, JSMN_PRIMITIVE, start, parser->pos); in jsmn_parse_primitive()
110 parser->pos--; /* parent sees closing brackets */ in jsmn_parse_primitive()
117 static jsmnerr_t jsmn_parse_string(jsmn_parser *parser, const char *js, in jsmn_parse_string() argument
122 int start = parser->pos; in jsmn_parse_string()
125 parser->pos++; in jsmn_parse_string()
127 for (; parser->pos < len; parser->pos++) { in jsmn_parse_string()
128 char c = js[parser->pos]; in jsmn_parse_string()
132 token = jsmn_alloc_token(parser, tokens, num_tokens); in jsmn_parse_string()
134 parser->pos = start; in jsmn_parse_string()
138 parser->pos); in jsmn_parse_string()
144 parser->pos++; in jsmn_parse_string()
145 switch (js[parser->pos]) { in jsmn_parse_string()
162 parser->pos = start; in jsmn_parse_string()
167 parser->pos = start; in jsmn_parse_string()
174 jsmnerr_t jsmn_parse(jsmn_parser *parser, const char *js, size_t len, in jsmn_parse() argument
189 for (; parser->pos < len; parser->pos++) { in jsmn_parse()
193 c = js[parser->pos]; in jsmn_parse()
201 token = jsmn_alloc_token(parser, tokens, num_tokens); in jsmn_parse()
204 if (parser->toksuper != -1) in jsmn_parse()
205 tokens[parser->toksuper].size++; in jsmn_parse()
207 token->start = parser->pos; in jsmn_parse()
208 parser->toksuper = parser->toknext - 1; in jsmn_parse()
217 for (i = parser->toknext - 1; i >= 0; i--) { in jsmn_parse()
222 parser->toksuper = -1; in jsmn_parse()
223 token->end = parser->pos + 1; in jsmn_parse()
233 parser->toksuper = i; in jsmn_parse()
244 r = jsmn_parse_string(parser, js, len, tokens, in jsmn_parse()
248 if (parser->toksuper != -1) in jsmn_parse()
249 tokens[parser->toksuper].size++; in jsmn_parse()
298 r = jsmn_parse_primitive(parser, js, len, tokens, in jsmn_parse()
302 if (parser->toksuper != -1) in jsmn_parse()
303 tokens[parser->toksuper].size++; in jsmn_parse()
314 for (i = parser->toknext - 1; i >= 0; i--) { in jsmn_parse()
331 void jsmn_init(jsmn_parser *parser) in jsmn_init() argument
333 parser->pos = 0; in jsmn_init()
334 parser->toknext = 0; in jsmn_init()
335 parser->toksuper = -1; in jsmn_init()