From: Akim Demaille Date: Wed, 5 Dec 2001 09:41:01 +0000 (+0000) Subject: * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount. X-Git-Tag: before-m4-back-end~185 X-Git-Url: https://git.saurik.com/bison.git/commitdiff_plain/b2872512f1fdfab1f8869abd3bad6373891c6cda * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount. * src/closure.c, src/closure.h (itemsetsize): Rename as... (nitemset): for consistency with the rest of the project. --- diff --git a/ChangeLog b/ChangeLog index 5f354478..e70da665 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2001-12-05 Akim Demaille + + * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount. + * src/closure.c, src/closure.h (itemsetsize): Rename as... + (nitemset): for consistency with the rest of the project. + + 2001-12-05 Akim Demaille * src/closure.c (print_closure): Improve. diff --git a/src/LR0.c b/src/LR0.c index f8fa5bd0..3fa5ba5b 100644 --- a/src/LR0.c +++ b/src/LR0.c @@ -141,7 +141,6 @@ static void new_itemsets (void) { int i; - int shiftcount; if (trace_flag) fprintf (stderr, "Entering new_itemsets, state = %d\n", @@ -151,25 +150,23 @@ new_itemsets (void) kernel_size[i] = 0; shift_symbol = XCALLOC (short, nsyms); - shiftcount = 0; + nshifts = 0; - for (i = 0; i < itemsetsize; ++i) + for (i = 0; i < nitemset; ++i) { int symbol = ritem[itemset[i]]; if (symbol > 0) { if (!kernel_size[symbol]) { - shift_symbol[shiftcount] = symbol; - shiftcount++; + shift_symbol[nshifts] = symbol; + nshifts++; } kernel_base[symbol][kernel_size[symbol]] = itemset[i] + 1; kernel_size[symbol]++; } } - - nshifts = shiftcount; } @@ -542,7 +539,7 @@ save_reductions (void) /* Find and count the active items that represent ends of rules. */ count = 0; - for (i = 0; i < itemsetsize; ++i) + for (i = 0; i < nitemset; ++i) { int item = ritem[itemset[i]]; if (item < 0) diff --git a/src/closure.c b/src/closure.c index ed35c730..77ca72c8 100644 --- a/src/closure.c +++ b/src/closure.c @@ -26,9 +26,9 @@ #include "derives.h" #include "warshall.h" -/* ITEMSETSIZE is the size of the array ITEMSET. */ +/* NITEMSET is the size of the array ITEMSET. */ short *itemset; -int itemsetsize; +int nitemset; static unsigned *ruleset; @@ -218,7 +218,7 @@ closure (short *core, int n) ruleset[r] |= FDERIVES (ritem[core[c]])[r]; } - itemsetsize = 0; + nitemset = 0; c = 0; for (ruleno = 0; ruleno < rulesetsize * BITS_PER_WORD; ++ruleno) if (BITISSET (ruleset, ruleno)) @@ -226,23 +226,23 @@ closure (short *core, int n) int itemno = rule_table[ruleno].rhs; while (c < n && core[c] < itemno) { - itemset[itemsetsize] = core[c]; - itemsetsize++; + itemset[nitemset] = core[c]; + nitemset++; c++; } - itemset[itemsetsize] = itemno; - itemsetsize++; + itemset[nitemset] = itemno; + nitemset++; } while (c < n) { - itemset[itemsetsize] = core[c]; - itemsetsize++; + itemset[nitemset] = core[c]; + nitemset++; c++; } if (trace_flag) - print_closure ("output", itemset, itemsetsize); + print_closure ("output", itemset, nitemset); } diff --git a/src/closure.h b/src/closure.h index 887f3da8..fdf4cc5e 100644 --- a/src/closure.h +++ b/src/closure.h @@ -30,18 +30,19 @@ void new_closure PARAMS ((int n)); -/* Given a vector of item numbers ITEMS, of length N, set up ruleset - and itemset to indicate what rules could be run and which items - could be accepted when those items are the active ones. +/* Given the kernel (aka core) of a state (a vector of item numbers + ITEMS, of length N), set up ruleset and itemset to indicate what + rules could be run and which items could be accepted when those + items are the active ones. ruleset contains a bit for each rule. closure sets the bits for all rules which could potentially describe the next input to be read. - itemset is a vector of item numbers; itemsetend points to just - beyond the end of the part of it that is significant. closure - places there the indices of all items which represent units of - input that could arrive next. */ + ITEMSET is a vector of item numbers; NITEMSET is its size + 9actually, points to just beyond the end of the part of it that is + significant). closure places there the indices of all items which + represent units of input that could arrive next. */ void closure PARAMS ((short *items, int n)); @@ -51,6 +52,6 @@ void closure PARAMS ((short *items, int n)); void free_closure PARAMS ((void)); extern short *itemset; -extern int itemsetsize; +extern int nitemset; #endif /* !CLOSURE_H_ */