Improve some comments in parser table construction.

* src/LR0.c (new_itemsets): Explain sorting of itemset and kernel_base.
(generate_states): Don't mention ruleset, which is internal to closure.
* src/closure.c (closure): Explain sorting of core and itemset, which
is required for this function to behave correctly.
* src/closure.h (closure): Mention sorting.
This commit is contained in:
Joel E. Denny
2007-05-29 04:24:17 +00:00
parent b1a8161341
commit 71b61d4db5
4 changed files with 17 additions and 6 deletions

View File

@@ -169,6 +169,10 @@ free_storage (void)
| shifted. For each symbol in the grammar, kernel_base[symbol] |
| points to a vector of item numbers activated if that symbol is |
| shifted, and kernel_size[symbol] is their numbers. |
| |
| itemset is sorted on item number from ritem, which is sorted |
| on rule number. Compute each kernel_base[symbol] with the |
| same sort. |
`---------------------------------------------------------------*/
static void
@@ -351,10 +355,8 @@ generate_states (void)
fprintf (stderr, "Processing state %d (reached by %s)\n",
s->number,
symbols[s->accessing_symbol]->tag);
/* Set up ruleset and itemset for the transitions out of this
state. ruleset gets a 1 bit for each rule that could reduce
now. itemset gets a vector of all the items that could be
accepted next. */
/* Set up itemset for the transitions out of this state. itemset gets a
vector of all the items that could be accepted next. */
closure (s->items, s->nitems);
/* Record the reductions allowed out of this state. */
save_reductions (s);