]> git.saurik.com Git - bison.git/blobdiff - src/reduce.c
* doc/bison.texinfo (Debugging): Split into...
[bison.git] / src / reduce.c
index 61ad2b2e0657046058ae292827697f888a28ad96..fd6f9e15c1921b6fa2ffabf6da7d1f9bdbafbbf0 100644 (file)
@@ -258,7 +258,7 @@ reduce_grammar_tables (void)
     nrules -= nuseless_productions;
   }
 
-  /* Adjust NRITEMS and NITEMS.  */
+  /* Adjust NRITEMS.  */
   {
     int r;
     int length;
@@ -306,11 +306,17 @@ nonterminals_reduce (void)
     free (symbols_sorted + ntokens);
   }
 
-  for (i = 0; i < nritems; ++i)
-    if (ISVAR (ritem[i]))
-      ritem[i] = token_number_as_item_number (nontermmap[ritem[i]]);
-
-  start_symbol = nontermmap[start_symbol];
+  {
+    int r;
+    for (r = 1; r < nrules + 1; ++r)
+      {
+       item_number_t *rhsp;
+       for (rhsp = rules[r].rhs; *rhsp >= 0; ++rhsp)
+         if (ISVAR (*rhsp))
+           *rhsp =  token_number_as_item_number (nontermmap[*rhsp]);
+      }
+    start_symbol = nontermmap[start_symbol];
+  }
 
   nsyms -= nuseless_nonterminals;
   nvars -= nuseless_nonterminals;