From 5544615a599622a1c01195ae4018ed68e06cada2 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Wed, 15 Jul 2020 07:43:49 +0200 Subject: [PATCH] cex: use the glyphs * src/derivation.c: here. * src/gram.h, src/gram.c (print_arrow, print_dot, print_fallback): Remove. --- src/derivation.c | 7 +++---- src/gram.c | 4 ++-- src/gram.h | 37 ------------------------------------- 3 files changed, 5 insertions(+), 43 deletions(-) diff --git a/src/derivation.c b/src/derivation.c index 39f66211..235333cc 100644 --- a/src/derivation.c +++ b/src/derivation.c @@ -20,6 +20,7 @@ #include #include "derivation.h" +#include "glyphs.h" #include @@ -145,9 +146,7 @@ derivation_print_impl (const derivation *deriv, FILE *out, { fputs (prefix, out); begin_use_class ("cex-step", out); - fprintf (out, "%s ", sym->tag); - print_arrow (out); - fprintf (out, " [ "); + fprintf (out, "%s %s [ ", sym->tag, arrow); end_use_class ("cex-step", out); prefix = ""; } @@ -181,7 +180,7 @@ derivation_print_impl (const derivation *deriv, FILE *out, { fputs (prefix, out); begin_use_class ("cex-dot", out); - print_dot (out); + fputs (dot, out); end_use_class ("cex-dot", out); } else // leaf. diff --git a/src/gram.c b/src/gram.c index f81192cb..cc5e54b5 100644 --- a/src/gram.c +++ b/src/gram.c @@ -23,6 +23,7 @@ #include "complain.h" #include "getargs.h" +#include "glyphs.h" #include "gram.h" #include "print-xml.h" #include "reader.h" @@ -56,8 +57,7 @@ item_print (item_number *item, rule const *previous_rule, FILE *out) for (item_number *sp = r->rhs; sp < item; sp++) fprintf (out, " %s", symbols[*sp]->tag); - putc (' ', out); - print_dot (out); + fprintf (out, " %s", dot); if (0 <= *r->rhs) for (item_number *sp = item; 0 <= *sp; ++sp) fprintf (out, " %s", symbols[*sp]->tag); diff --git a/src/gram.h b/src/gram.h index 71e3db94..c6ce4194 100644 --- a/src/gram.h +++ b/src/gram.h @@ -103,8 +103,6 @@ # include "system.h" -# include - # include "location.h" # include "symtab.h" @@ -217,41 +215,6 @@ typedef struct extern rule *rules; extern rule_number nrules; -/* Fallback in case we can't print "•" or "→". */ -static inline long -print_fallback (unsigned int code _GL_UNUSED, - const char *msg _GL_UNUSED, - void *callback_arg) -{ - FILE *out = (FILE *) callback_arg; - switch (code) - { - case 0x2022: - putc ('.', out); - break; - case 0x2192: - fputs ("->", out); - break; - default: - abort (); - } - return -1; -} - -static inline void -print_arrow (FILE *out) -{ - unicode_to_mb (0x2192, fwrite_success_callback, print_fallback, out); -} - -/* Print "•", the symbol used to represent a point in an item (aka, a - dotted rule). */ -static inline void -print_dot (FILE *out) -{ - unicode_to_mb (0x2022, fwrite_success_callback, print_fallback, out); -} - /* Get the rule associated to this item. ITEM points inside RITEM. */ static inline rule const * item_rule (item_number const *item)