mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-13 22:33:03 +00:00
Try to make the use of the eoftoken valid. Given that its value
is 0 which was also used as a sentinel in ritem, (i) make sure >= 0 is used instead of > 0 where appropriate, (ii), depend upon nritems instead of the 0-sentinel. * src/gram.h, src/gram.c (nritems): New. Expected to be duplication of nitems, but for the time being... * src/reader.c (packgram): Assert nritems and nitems are equal. * src/LR0.c (allocate_itemsets, new_itemsets): Adjust. * src/closure.c (print_closure, print_fderives): Likewise. * src/gram.c (ritem_print): Likewise. * src/print.c (print_core, print_grammar): Likewise. * src/print_graph.c: Likewise.
This commit is contained in:
@@ -32,6 +32,8 @@ int ntokens;
|
||||
int nvars;
|
||||
|
||||
short *ritem = NULL;
|
||||
int nritems;
|
||||
|
||||
rule_t *rule_table = NULL;
|
||||
short *rprec = NULL;
|
||||
short *rprecsym = NULL;
|
||||
@@ -60,8 +62,8 @@ ritem_print (FILE *out)
|
||||
{
|
||||
int i;
|
||||
fputs ("RITEM\n", out);
|
||||
for (i = 0; ritem[i]; ++i)
|
||||
if (ritem[i] > 0)
|
||||
for (i = 0; i < nritems; ++i)
|
||||
if (ritem[i] >= 0)
|
||||
fprintf (out, " %s", tags[ritem[i]]);
|
||||
else
|
||||
fprintf (out, " (rule %d)\n", -ritem[i]);
|
||||
|
||||
Reference in New Issue
Block a user