262 for (; parser->
pos < len && js[parser->
pos] !=
'\0'; parser->
pos++) {
271 if (tokens == NULL) {
274 token = jsmn_alloc_token(parser, tokens, num_tokens);
287#ifdef JSMN_PARENT_LINKS
297 if (tokens == NULL) {
301#ifdef JSMN_PARENT_LINKS
305 token = &tokens[parser->
toknext - 1];
307 if (token->
start != -1 && token->
end == -1) {
308 if (token->
type != type) {
311 token->
end = parser->
pos + 1;
315 if (token->parent == -1) {
321 token = &tokens[token->parent];
324 for (i = parser->
toknext - 1; i >= 0; i--) {
326 if (token->
start != -1 && token->
end == -1) {
327 if (token->
type != type) {
331 token->
end = parser->
pos + 1;
339 for (; i >= 0; i--) {
341 if (token->
start != -1 && token->
end == -1) {
349 r = jsmn_parse_string(parser, js, len, tokens, num_tokens);
354 if (parser->
toksuper != -1 && tokens != NULL) {
369#ifdef JSMN_PARENT_LINKS
372 for (i = parser->
toknext - 1; i >= 0; i--) {
374 if (tokens[i].start != -1 && tokens[i].end == -1) {
400 if (tokens != NULL && parser->
toksuper != -1) {
410 r = jsmn_parse_primitive(parser, js, len, tokens, num_tokens);
415 if (parser->
toksuper != -1 && tokens != NULL) {
428 if (tokens != NULL) {
429 for (i = parser->
toknext - 1; i >= 0; i--) {
431 if (tokens[i].start != -1 && tokens[i].end == -1) {
int jsmn_parse(jsmn_parser *parser, const char *js, const size_t len, jsmntok_t *tokens, const unsigned int num_tokens)
Definition jsmn.h:255