aboutsummaryrefslogtreecommitdiffstats
path: root/print-syntax.c
diff options
context:
space:
mode:
authorMattias Andrée <m@maandree.se>2026-01-05 14:35:26 +0100
committerMattias Andrée <m@maandree.se>2026-02-23 07:53:08 +0100
commit208594ca9f95a87f60ff052490a4d5824dc23801 (patch)
tree915a17b51f62b289ba4115214a057610416d755e /print-syntax.c
parentAdd committed-operator (diff)
downloadlibparser-208594ca9f95a87f60ff052490a4d5824dc23801.tar.gz
libparser-208594ca9f95a87f60ff052490a4d5824dc23801.tar.bz2
libparser-208594ca9f95a87f60ff052490a4d5824dc23801.tar.xz
Make deterministic the default
Signed-off-by: Mattias Andrée <m@maandree.se>
Diffstat (limited to 'print-syntax.c')
-rw-r--r--print-syntax.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/print-syntax.c b/print-syntax.c
index 3228401..07b3858 100644
--- a/print-syntax.c
+++ b/print-syntax.c
@@ -26,6 +26,15 @@ print_sentence(const union libparser_sentence *sentence, int indent)
indent += 1;
break;
+ case LIBPARSER_SENTENCE_TYPE_ND_ALTERNATION:
+ printf("(");
+ print_sentence(sentence->binary.left, indent + 1);
+ printf(" ?| \n%*.s", indent + 1, "");
+ indent = print_sentence(sentence->binary.right, indent + 1);
+ printf(")");
+ indent += 1;
+ break;
+
case LIBPARSER_SENTENCE_TYPE_ALTERNATION:
printf("(");
print_sentence(sentence->binary.left, indent + 1);
@@ -49,6 +58,9 @@ print_sentence(const union libparser_sentence *sentence, int indent)
indent += 1;
break;
+ case LIBPARSER_SENTENCE_TYPE_ND_OPTIONAL:
+ printf("?");
+ /* fall through */
case LIBPARSER_SENTENCE_TYPE_OPTIONAL:
printf("[");
indent = print_sentence(sentence->unary.sentence, indent + 1);
@@ -56,6 +68,9 @@ print_sentence(const union libparser_sentence *sentence, int indent)
indent += 1;
break;
+ case LIBPARSER_SENTENCE_TYPE_ND_REPEATED:
+ printf("?");
+ /* fall through */
case LIBPARSER_SENTENCE_TYPE_REPEATED:
printf("{");
indent = print_sentence(sentence->unary.sentence, indent + 1);