]> git.saurik.com Git - bison.git/blobdiff - src/reduce.c
* src/reduce.c (reduce_grammar): First reduce the nonterminals,
[bison.git] / src / reduce.c
index 256817505722905f706b36c7ae396237443168bd..565cd57257bbea6e68f929fcf29aa3f458d23554 100644 (file)
@@ -487,10 +487,13 @@ reduce_grammar (void)
     fatal (_("Start symbol %s does not derive any sentence"),
           quotearg_style (escape_quoting_style, symbols[start_symbol]->tag));
 
-  if (nuseless_productions > 0)
-    reduce_grammar_tables ();
+  /* First reduce the nonterminals, as they renumber themselves in the
+     whole grammar.  If you change the order, nonterms would be
+     renumbered only in the reduced grammar.  */
   if (nuseless_nonterminals > 0)
     nonterminals_reduce ();
+  if (nuseless_productions > 0)
+    reduce_grammar_tables ();
 
   if (trace_flag)
     {