diff options
author | Akim Demaille <akim@epita.fr> | 2001-12-29 14:15:33 +0000 |
---|---|---|
committer | Akim Demaille <akim@epita.fr> | 2001-12-29 14:15:33 +0000 |
commit | 3d4daee37491bab92ce270b37b257aadcf709c3c (patch) | |
tree | 6eb5455f4506f9fd1de9f0ea2e4d594479ec52a2 /src/nullable.c | |
parent | 9e7f6bbd5930d4d7365f65d33721cfbf651ca487 (diff) | |
download | bison-3d4daee37491bab92ce270b37b257aadcf709c3c.tar.gz |
* src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
when walking through ritem, even via rule->rhs.
* src/reduce.c (dump_grammar, useful_production, reduce_output)
(useful_production, useless_nonterminals): Likewise.
(reduce_grammar_tables): Likewise, plus update nritems.
* src/nullable.c (set_nullable): Likewise.
* src/lalr.c (build_relations): Likewise.
* tests/sets.at (Nullable): Adjust.
Fortunately, now, the $axiom is no longer nullable.
Diffstat (limited to 'src/nullable.c')
-rw-r--r-- | src/nullable.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/nullable.c b/src/nullable.c index bce291ca..0b6d614f 100644 --- a/src/nullable.c +++ b/src/nullable.c @@ -71,19 +71,19 @@ set_nullable (void) for (ruleno = 1; ruleno < nrules + 1; ++ruleno) if (rule_table[ruleno].useful) { - if (ritem[rule_table[ruleno].rhs] > 0) + if (ritem[rule_table[ruleno].rhs] >= 0) { /* This rule has a non empty RHS. */ short *r; int any_tokens = 0; - for (r = ritem + rule_table[ruleno].rhs; *r > 0; ++r) + for (r = &ritem[rule_table[ruleno].rhs]; *r >= 0; ++r) if (ISTOKEN (*r)) any_tokens = 1; /* This rule has only nonterminals: schedule it for the second pass. */ if (!any_tokens) - for (r = ritem + rule_table[ruleno].rhs; *r > 0; ++r) + for (r = &ritem[rule_table[ruleno].rhs]; *r >= 0; ++r) { rcount[ruleno]++; p->next = rsets[*r]; |