From 57052d556c36baf81e66ade16839552b0ab37afb Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Fri, 5 Mar 2021 19:17:27 +1100 Subject: [PATCH] parsergen: rename item_index() to item_dot() The name "dot" fits better with documentation which described the nature of an "item" when generating LR parsing tables. Also change the arg to item_num() from 'index' to 'dot'. Signed-off-by: NeilBrown --- csrc/parsergen.mdc | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/csrc/parsergen.mdc b/csrc/parsergen.mdc index 742996e..fa4e5c7 100644 --- a/csrc/parsergen.mdc +++ b/csrc/parsergen.mdc @@ -1168,15 +1168,15 @@ the end of the list in the symset, and then only compare items before the first "0". ###### declarations - static inline unsigned short item_num(int production, int index) + static inline unsigned short item_num(int production, int dot) { - return production | ((31-index) << 11); + return production | ((31-dot) << 11); } static inline int item_prod(unsigned short item) { return item & 0x7ff; } - static inline int item_index(unsigned short item) + static inline int item_dot(unsigned short item) { return (31-(item >> 11)) & 0x1f; } @@ -1194,8 +1194,8 @@ can just compare the symset and the data values together. for (i = 0; i < a.cnt && i < b.cnt && - item_index(a.syms[i]) > 0 && - item_index(b.syms[i]) > 0; + item_dot(a.syms[i]) > 0 && + item_dot(b.syms[i]) > 0; i++) { int diff = a.syms[i] - b.syms[i]; if (diff) @@ -1206,11 +1206,11 @@ can just compare the symset and the data values together. return diff; } } - if (i == a.cnt || item_index(a.syms[i]) == 0) + if (i == a.cnt || item_dot(a.syms[i]) == 0) av = -1; else av = a.syms[i]; - if (i == b.cnt || item_index(b.syms[i]) == 0) + if (i == b.cnt || item_dot(b.syms[i]) == 0) bv = -1; else bv = b.syms[i]; @@ -1366,7 +1366,7 @@ into the go to set, so the item is ineffective. ###### complete itemset for (i = 0; i < is->items.cnt; i++) { int p = item_prod(is->items.syms[i]); - int bs = item_index(is->items.syms[i]); + int bs = item_dot(is->items.syms[i]); struct production *pr = g->productions[p]; int p2; struct symbol *s; @@ -1471,7 +1471,7 @@ with a pre-existing itemset). for (j = 0; j < is->items.cnt; j++) { int itm = is->items.syms[j]; int p = item_prod(itm); - int bp = item_index(itm); + int bp = item_dot(itm); struct production *pr = g->productions[p]; unsigned short la = 0; int pos; @@ -1696,7 +1696,7 @@ it up a bit. First the items, with production number and associativity. static void report_item(struct grammar *g, int itm) { int p = item_prod(itm); - int dot = item_index(itm); + int dot = item_dot(itm); struct production *pr = g->productions[p]; int i; @@ -1825,7 +1825,7 @@ as shifts always over-ride reductions. for (j = 0; j < is->items.cnt; j++) { int itm = is->items.syms[j]; int p = item_prod(itm); - int bp = item_index(itm); + int bp = item_dot(itm); struct production *pr = g->productions[p]; if (bp == pr->body_size) { @@ -1882,7 +1882,7 @@ but handled internally. for (j = 0; j < is->items.cnt; j++) { unsigned short itm = is->items.syms[j]; int p = item_prod(itm); - int bp = item_index(itm); + int bp = item_dot(itm); struct production *pr = g->productions[p]; struct symbol *s; @@ -1903,7 +1903,7 @@ but handled internally. for (j = 0; j < is->items.cnt; j++) { unsigned short itm = is->items.syms[j]; int p = item_prod(itm); - int bp = item_index(itm); + int bp = item_dot(itm); struct production *pr = g->productions[p]; if (bp < pr->body_size) @@ -2118,7 +2118,7 @@ The go to table is stored in a simple array of `sym` and corresponding for (j = 0; j < is->items.cnt; j++) { int itm = is->items.syms[j]; int p = item_prod(itm); - int bp = item_index(itm); + int bp = item_dot(itm); struct production *pr = g->productions[p]; if (bp < pr->body_size) -- 2.43.0