diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2020-12-14 21:58:38 -0800 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2020-12-14 21:58:38 -0800 |
| commit | e638a517bfe60af1975d793bfbfda4d64428d15f (patch) | |
| tree | 00a3db3a77dde3ce88e3cf88d3cefce7bcae03ce /bpeg.c | |
| parent | 1ff4a9eb0548b94839cc936f932f75af38a00f51 (diff) | |
Re-hooked up JSON output
Diffstat (limited to 'bpeg.c')
| -rw-r--r-- | bpeg.c | 13 |
1 files changed, 2 insertions, 11 deletions
@@ -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"); |
