summaryrefslogtreecommitdiff
path: root/jsmn.c
diff options
context:
space:
mode:
authorSerge A. Zaitsev <devnull@localhost>2010-11-17 12:03:26 +0200
committerSerge A. Zaitsev <devnull@localhost>2010-11-17 12:03:26 +0200
commitd0d52f68478f5cf6cb19629968dfe07c3ca040a7 (patch)
tree824cd947ced9b4a1de3324628d80104dc2ffc397 /jsmn.c
parent60509e2850a1f4ac8324acc282bc307378d4980d (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.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/jsmn.c b/jsmn.c
index a1c711624..14870aec6 100644
--- a/jsmn.c
+++ b/jsmn.c
@@ -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':