return NULL;
json_lex_scan(lex);
- if(lex->token != ']') {
- while(1) {
- json_t *elem = json_parse(lex, error);
- if(!elem)
- goto error;
-
- if(json_array_append(array, elem)) {
- json_decref(elem);
- goto error;
- }
- json_decref(elem);
+ if(lex->token == ']')
+ return array;
- if(lex->token != ',')
- break;
+ while(lex->token) {
+ json_t *elem = json_parse(lex, error);
+ if(!elem)
+ goto error;
- json_lex_scan(lex);
+ if(json_array_append(array, elem)) {
+ json_decref(elem);
+ goto error;
}
+ json_decref(elem);
+
+ if(lex->token != ',')
+ break;
+
+ json_lex_scan(lex);
}
+
if(lex->token != ']') {
json_set_error(error, lex, "']' expected");
goto error;