* src/LR0.c (new_state): Recognize the final state by the fact it

is reached by eoftoken.
(insert_start_shifting_state, insert_eof_shifting_state)
(insert_accepting_state, augment_automaton): Remove, since now
these states are automatically computed from the initial state.
(generate_states): Adjust.
* src/print.c: When reporting a rule number to the user, substract
1, so that the axiom rule is rule 0, and the first user rule is 1.
* src/reduce.c: Likewise.
* src/print_graph.c (print_core): For the time being, just as for
the report, depend upon --trace-flags to dump the full set of
items.
* src/reader.c (readgram): Once the grammar read, insert the rule
0: `$axiom: START-SYMBOL $'.
* tests/set.at: Adjust: rule 0 is now displayed, and since the
number of the states has changed (the final state is no longer
necessarily the last), catch up.
This commit is contained in:
Akim Demaille
2001-12-27 18:13:47 +00:00
parent 75142d452b
commit 30171f79ab
7 changed files with 154 additions and 241 deletions

View File

@@ -53,9 +53,12 @@ print_core (state_t *state, struct obstack *node_obstack)
int snitems = state->nitems;
/* Output all the items of a state, not only its kernel. */
closure (sitems, snitems);
sitems = itemset;
snitems = nitemset;
if (trace_flag)
{
closure (sitems, snitems);
sitems = itemset;
snitems = nitemset;
}
obstack_fgrow1 (node_obstack, "state %2d\n", state->number);
for (i = 0; i < snitems; i++)