Demo: declarations moved to the top of functions.

master
Serge A. Zaitsev 14 years ago
parent 7a027a4dd2
commit b91dee9102

@ -13,6 +13,7 @@
static void jsmn_dump_obj(jsontok_t *obj, const char *js) {
size_t len;
char *s;
if (obj->end < 0 || obj->start < 0) {
return;
@ -20,27 +21,19 @@ static void jsmn_dump_obj(jsontok_t *obj, const char *js) {
len = obj->end - obj->start;
printf("[%3d,%3d]\t", obj->start, obj->end);
char *type;
printf("[%3d,%3d] (%c)\t", obj->start, obj->end,
({
char c;
switch (obj->type) {
case JSON_PRIMITIVE:
type = "(.)";
break;
case JSON_STRING:
type = "(s)";
break;
case JSON_ARRAY:
type = "(A)";
break;
case JSON_OBJECT:
type = "(O)";
break;
}
printf("%s ", type);
char *s = strndup((const char *) &js[obj->start], len);
case JSON_PRIMITIVE: c = '.'; break;
case JSON_STRING: c = 's'; break;
case JSON_ARRAY: c = 'A'; break;
case JSON_OBJECT: c = 'O'; break;
default: c = '?';
}; c;
}));
s = strndup((const char *) &js[obj->start], len);
printf("%s\n", s);
free(s);
}
@ -54,11 +47,14 @@ int main(int argc, char *argv[]) {
int i;
int r;
int c;
jsontok_t *tokens;
int num_tokens = 100;
FILE *f;
int filesize = 0;
jsmn_parser parser;
char *js = NULL;
jsontok_t *tokens;
int num_tokens = 100;
while ((c = getopt(argc, argv, "ht:")) != -1) {
switch (c) {
@ -95,7 +91,6 @@ int main(int argc, char *argv[]) {
exit(EXIT_FAILURE);
}
jsmn_parser parser;
jsmn_init_parser(&parser, js, tokens, num_tokens);
while (1) {

Loading…
Cancel
Save