From 019e3cf1cd22a7af2f52f8c26cfa3312fe3ae96b Mon Sep 17 00:00:00 2001 From: "Sven M. Hallberg" <pesco@khjk.org> Date: Mon, 17 Feb 2020 13:05:32 +0100 Subject: [PATCH] properly print empty choices --- src/cfgrammar.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/cfgrammar.c b/src/cfgrammar.c index f9ece03..e24c8b2 100644 --- a/src/cfgrammar.c +++ b/src/cfgrammar.c @@ -823,13 +823,15 @@ static void pprint_ntrules(FILE *f, const HCFGrammar *g, const HCFChoice *nt, fputs(name, f); i += strlen(name); for(; i<column; i++) fputc(' ', f); - fputs(" ->", f); assert(nt->type == HCF_CHOICE); HCFSequence **p = nt->seq; if (*p == NULL) { - return; // shouldn't happen + fputs(" -x\n", f); // empty choice, e.g. h_nothing_p() + return; } + + fputs(" ->", f); pprint_sequence(f, g, *p++); // print first production on the same line for(; *p; p++) { // print the rest below with "or" bars for(i=0; i<column; i++) fputc(' ', f); // indent -- GitLab