mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-21 10:13:03 +00:00
cex: use the glyphs
* src/derivation.c: here. * src/gram.h, src/gram.c (print_arrow, print_dot, print_fallback): Remove.
This commit is contained in:
@@ -20,6 +20,7 @@
|
|||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
#include "derivation.h"
|
#include "derivation.h"
|
||||||
|
#include "glyphs.h"
|
||||||
|
|
||||||
#include <gl_linked_list.h>
|
#include <gl_linked_list.h>
|
||||||
|
|
||||||
@@ -145,9 +146,7 @@ derivation_print_impl (const derivation *deriv, FILE *out,
|
|||||||
{
|
{
|
||||||
fputs (prefix, out);
|
fputs (prefix, out);
|
||||||
begin_use_class ("cex-step", out);
|
begin_use_class ("cex-step", out);
|
||||||
fprintf (out, "%s ", sym->tag);
|
fprintf (out, "%s %s [ ", sym->tag, arrow);
|
||||||
print_arrow (out);
|
|
||||||
fprintf (out, " [ ");
|
|
||||||
end_use_class ("cex-step", out);
|
end_use_class ("cex-step", out);
|
||||||
prefix = "";
|
prefix = "";
|
||||||
}
|
}
|
||||||
@@ -181,7 +180,7 @@ derivation_print_impl (const derivation *deriv, FILE *out,
|
|||||||
{
|
{
|
||||||
fputs (prefix, out);
|
fputs (prefix, out);
|
||||||
begin_use_class ("cex-dot", out);
|
begin_use_class ("cex-dot", out);
|
||||||
print_dot (out);
|
fputs (dot, out);
|
||||||
end_use_class ("cex-dot", out);
|
end_use_class ("cex-dot", out);
|
||||||
}
|
}
|
||||||
else // leaf.
|
else // leaf.
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
#include "complain.h"
|
#include "complain.h"
|
||||||
#include "getargs.h"
|
#include "getargs.h"
|
||||||
|
#include "glyphs.h"
|
||||||
#include "gram.h"
|
#include "gram.h"
|
||||||
#include "print-xml.h"
|
#include "print-xml.h"
|
||||||
#include "reader.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++)
|
for (item_number *sp = r->rhs; sp < item; sp++)
|
||||||
fprintf (out, " %s", symbols[*sp]->tag);
|
fprintf (out, " %s", symbols[*sp]->tag);
|
||||||
putc (' ', out);
|
fprintf (out, " %s", dot);
|
||||||
print_dot (out);
|
|
||||||
if (0 <= *r->rhs)
|
if (0 <= *r->rhs)
|
||||||
for (item_number *sp = item; 0 <= *sp; ++sp)
|
for (item_number *sp = item; 0 <= *sp; ++sp)
|
||||||
fprintf (out, " %s", symbols[*sp]->tag);
|
fprintf (out, " %s", symbols[*sp]->tag);
|
||||||
|
|||||||
37
src/gram.h
37
src/gram.h
@@ -103,8 +103,6 @@
|
|||||||
|
|
||||||
# include "system.h"
|
# include "system.h"
|
||||||
|
|
||||||
# include <unicodeio.h>
|
|
||||||
|
|
||||||
# include "location.h"
|
# include "location.h"
|
||||||
# include "symtab.h"
|
# include "symtab.h"
|
||||||
|
|
||||||
@@ -217,41 +215,6 @@ typedef struct
|
|||||||
extern rule *rules;
|
extern rule *rules;
|
||||||
extern rule_number nrules;
|
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. */
|
/* Get the rule associated to this item. ITEM points inside RITEM. */
|
||||||
static inline rule const *
|
static inline rule const *
|
||||||
item_rule (item_number const *item)
|
item_rule (item_number const *item)
|
||||||
|
|||||||
Reference in New Issue
Block a user