report: put the dot after %empty in items

When printing items, it is clearer to put the dot after %emtpy rather
than before:

     0 $accept: . unit "end of file"
     1 unit: . assignments exp
-    2 assignments: . %empty
+    2 assignments: %empty .
     3            | . assignments assignment

Also, use the Unicode characters if they are supported.

* src/gram.c (item_print): Put the dot after %emtpy.
* tests/conflicts.at, tests/reduce.at, tests/report.at: Adjust.
This commit is contained in:
Akim Demaille
2020-10-04 14:35:46 +02:00
parent 7cd195b30a
commit 36143b5ecc
4 changed files with 38 additions and 35 deletions

View File

@@ -55,14 +55,17 @@ item_print (item_number *item, rule const *previous_rule, FILE *out)
rule const *r = item_rule (item);
rule_lhs_print (r, previous_rule ? previous_rule->lhs : NULL, out);
for (item_number *sp = r->rhs; sp < item; sp++)
fprintf (out, " %s", symbols[*sp]->tag);
fprintf (out, " %s", dot);
if (0 <= *r->rhs)
for (item_number *sp = item; 0 <= *sp; ++sp)
fprintf (out, " %s", symbols[*sp]->tag);
{
// Non-empty rhs.
for (item_number *sp = r->rhs; sp < item; sp++)
fprintf (out, " %s", symbols[*sp]->tag);
fprintf (out, " %s", dot);
for (item_number *sp = item; 0 <= *sp; ++sp)
fprintf (out, " %s", symbols[*sp]->tag);
}
else
fprintf (out, " %%empty");
fprintf (out, " %s %s", empty, dot);
}
@@ -122,7 +125,7 @@ rule_rhs_print (rule const *r, FILE *out)
for (item_number *rhsp = r->rhs; 0 <= *rhsp; ++rhsp)
fprintf (out, " %s", symbols[*rhsp]->tag);
else
fputs (" %empty", out);
fprintf (out, " %s", empty);
}
static void