From 688289f1abb3fea7ee85cefccd9248fb9de0fe5c Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Sun, 12 Jun 2022 11:24:09 -0400 Subject: Implement output as JSON --- jdtalk.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'jdtalk.h') diff --git a/jdtalk.h b/jdtalk.h index ec629c6..1c79f75 100644 --- a/jdtalk.h +++ b/jdtalk.h @@ -24,6 +24,15 @@ #define WT_ADVERB 3 #define WT_VERB 4 +#define JSON_BEGIN(FP) fprintf(FP, "{\n"); +#define JSON_INDENT(FP, LEVEL) for (size_t indenter = 0; indenter < LEVEL; indenter++) { fprintf(FP, " "); } +#define JSON_NEXT_ITEM(FP) fprintf(FP, ",\n"); +#define JSON_NEXT_LINE(FP) fprintf(FP, "\n"); +#define JSON_LIST_BEGIN(FP, KEY) JSON_INDENT(FP, 1); fprintf(FP, "\"%s\": [", KEY); +#define JSON_LIST_APPEND(FP, VALUE) JSON_INDENT(FP, 2); fprintf(FP, "\"%s\"", VALUE); +#define JSON_LIST_END(FP) fprintf(FP, "]\n"); +#define JSON_END(FP) fprintf(FP, "}\n"); + struct Word { char *word; unsigned type; -- cgit