From e638a517bfe60af1975d793bfbfda4d64428d15f Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Mon, 14 Dec 2020 21:58:38 -0800 Subject: Re-hooked up JSON output --- bpeg.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/bpeg.c b/bpeg.c index ac6adb0..bdb0099 100644 --- a/bpeg.c +++ b/bpeg.c @@ -86,17 +86,8 @@ static int run_match(grammar_t *g, const char *filename, vm_op_t *pattern, unsig } else if (flags & BPEG_JSON) { if (printed_matches > 1) fprintf(stdout, ",\n"); - printf("{\"filename\":\"%s\",\"text\":\"", filename ? filename : "-"); - for (char *c = f->contents; c < f->end; c++) { - switch (*c) { - case '"': printf("\\\""); break; - case '\n': printf("\\n"); break; - case '\t': printf("\\t"); break; - case '\\': printf("\\\\"); break; - default: printf("%c", *c); break; - } - } - printf("\",\n\"tree\":{\"rule\":\"text\",\"start\":%d,\"end\":%ld,\"children\":[", + printf("{\"filename\":\"%s\",", filename ? filename : "-"); + printf("\"tree\":{\"rule\":\"text\",\"start\":%d,\"end\":%ld,\"children\":[", 0, f->end - f->contents); json_match(stdout, f->contents, m, (flags & BPEG_VERBOSE) ? 1 : 0); printf("]}}\n"); -- cgit v1.2.3