* src/gram.c (ritem_print): Be sure to subtract 1 when displaying

rule line numbers.
* src/closure.c (print_closure): Likewise.
* src/derives.c (print_derives): Likewise.
* tests/sets.at (Nullable): Adjust: the rule numbers are correct
now.
This commit is contained in:
Akim Demaille
2001-12-29 14:16:46 +00:00
parent 7c6b64d023
commit 29d29c8fff
5 changed files with 31 additions and 22 deletions

View File

@@ -1,3 +1,12 @@
2001-12-29 Akim Demaille <akim@epita.fr>
* src/gram.c (ritem_print): Be sure to subtract 1 when displaying
rule line numbers.
* src/closure.c (print_closure): Likewise.
* src/derives.c (print_derives): Likewise.
* tests/sets.at (Nullable): Adjust: the rule numbers are correct
now.
2001-12-29 Akim Demaille <akim@epita.fr>
* src/lalr.c (lookaheads_print): New.

View File

@@ -62,7 +62,7 @@ print_closure (const char *title, short *array, size_t size)
fprintf (stderr, " %2d: .", array[i]);
for (rp = &ritem[array[i]]; *rp >= 0; ++rp)
fprintf (stderr, " %s", tags[*rp]);
fprintf (stderr, " (rule %d)\n", -*rp);
fprintf (stderr, " (rule %d)\n", -*rp - 1);
}
fputs ("\n\n", stderr);
}
@@ -100,8 +100,8 @@ print_fderives (void)
if (BITISSET (FDERIVES (i), j))
{
short *rhsp;
fprintf (stderr, "\t\t%d:", j);
for (rhsp = ritem + rule_table[j].rhs; *rhsp >= 0; ++rhsp)
fprintf (stderr, "\t\t%d:", j - 1);
for (rhsp = &ritem[rule_table[j].rhs]; *rhsp >= 0; ++rhsp)
fprintf (stderr, " %s", tags[*rhsp]);
fputc ('\n', stderr);
}

View File

@@ -43,7 +43,7 @@ print_derives (void)
{
short *rhsp;
fprintf (stderr, "\t\t%d:", *sp);
for (rhsp = ritem + rule_table[*sp].rhs; *rhsp >= 0; ++rhsp)
for (rhsp = &ritem[rule_table[*sp].rhs]; *rhsp >= 0; ++rhsp)
fprintf (stderr, " %s", tags[*rhsp]);
fprintf (stderr, " (rule %d)\n", -*rhsp - 1);
}

View File

@@ -66,7 +66,7 @@ ritem_print (FILE *out)
if (ritem[i] >= 0)
fprintf (out, " %s", tags[ritem[i]]);
else
fprintf (out, " (rule %d)\n", -ritem[i]);
fprintf (out, " (rule %d)\n", -ritem[i] - 1);
fputs ("\n\n", out);
}

View File

@@ -42,9 +42,9 @@ AT_CHECK([[bison --trace input.y]], [], [], [stderr])
AT_CHECK([[sed 's/[ ]*$//' stderr]], [],
[[RITEM
e $ (rule 1)
'e' (rule 2)
(rule 3)
e $ (rule 0)
'e' (rule 1)
(rule 2)
DERIVES
@@ -89,12 +89,12 @@ FIRSTS
FDERIVES
$axiom derives
1: e $
2: 'e'
3:
0: e $
1: 'e'
2:
e derives
2: 'e'
3:
1: 'e'
2:
Processing state 0 (reached by $)
@@ -102,9 +102,9 @@ Closure: input
Closure: output
0: . e $ (rule 1)
3: . 'e' (rule 2)
5: . (rule 3)
0: . e $ (rule 0)
3: . 'e' (rule 1)
5: . (rule 2)
Entering new_itemsets, state = 0
@@ -117,22 +117,22 @@ Entering new_state, state = 0, symbol = 5 (e)
Exiting get_state => 2
Processing state 1 (reached by 'e')
Closure: input
4: . (rule 2)
4: . (rule 1)
Closure: output
4: . (rule 2)
4: . (rule 1)
Entering new_itemsets, state = 1
Entering append_states, state = 1
Processing state 2 (reached by e)
Closure: input
1: . $ (rule 1)
1: . $ (rule 0)
Closure: output
1: . $ (rule 1)
1: . $ (rule 0)
Entering new_itemsets, state = 2
@@ -142,11 +142,11 @@ Entering new_state, state = 2, symbol = 0 ($)
Exiting get_state => 3
Processing state 3 (reached by $)
Closure: input
2: . (rule 1)
2: . (rule 0)
Closure: output
2: . (rule 1)
2: . (rule 0)
Entering new_itemsets, state = 3