diff options
author | Serge A. Zaitsev <devnull@localhost> | 2010-11-17 12:03:26 +0200 |
---|---|---|
committer | Serge A. Zaitsev <devnull@localhost> | 2010-11-17 12:03:26 +0200 |
commit | d0d52f68478f5cf6cb19629968dfe07c3ca040a7 (patch) | |
tree | 824cd947ced9b4a1de3324628d80104dc2ffc397 /jsmn.c | |
parent | 60509e2850a1f4ac8324acc282bc307378d4980d (diff) |
Design: primitive type implemented as a replacement to boolean/number/null. String tokens point to the unquoted string
Diffstat (limited to 'jsmn.c')
-rw-r--r-- | jsmn.c | 7 |
1 files changed, 3 insertions, 4 deletions
@@ -14,7 +14,7 @@ void jsmn_init_parser(jsmn_parser *parser, const char *js, for (i = 0; i < parser->num_tokens; i++) { parser->tokens[i].start = -1; parser->tokens[i].end = -1; - parser->tokens[i].type = JSON_OTHER; + parser->tokens[i].type = JSON_PRIMITIVE; } } @@ -49,7 +49,7 @@ static int jsmn_parse_primitive(jsmn_parser *parser) { js = parser->js; - token = jsmn_start_token(parser, JSON_NUMBER); + token = jsmn_start_token(parser, JSON_PRIMITIVE); for (; js[parser->pos] != '\0'; parser->pos++) { switch (js[parser->pos]) { @@ -66,7 +66,6 @@ static int jsmn_parse_primitive(jsmn_parser *parser) { return JSMN_ERROR_PART; } - static int jsmn_parse_string(jsmn_parser *parser) { const char *js; jsontok_t *token; @@ -112,7 +111,6 @@ static int jsmn_parse_string(jsmn_parser *parser) { return JSMN_ERROR_PART; } - jsmnerr_t jsmn_parse(jsmn_parser *parser) { const char *js; jsontype_t type; @@ -131,6 +129,7 @@ jsmnerr_t jsmn_parse(jsmn_parser *parser) { case '}': case ']': type = (c == '}' ? JSON_OBJECT : JSON_ARRAY); token = jsmn_end_token(parser, type); + token->end++; break; case '-': case '0': case '1' : case '2': case '3' : case '4': case '5': case '6': case '7' : case '8': case '9': |