/[bison]/bison/src/reduce.c
ViewVC logotype

Diff of /bison/src/reduce.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.30 by akim, Fri Nov 30 10:48:14 2001 UTC revision 1.31 by akim, Fri Nov 30 10:49:01 2001 UTC
# Line 407  nonterminals_reduce (void) Line 407  nonterminals_reduce (void)
407  void  void
408  reduce_output (FILE *out)  reduce_output (FILE *out)
409  {  {
   int i;  
   rule r;  
   bool b;  
   
410    if (nuseless_nonterminals > 0)    if (nuseless_nonterminals > 0)
411      {      {
412        fprintf (out, _("Useless nonterminals:"));        int i;
413        fprintf (out, "\n\n");        fprintf (out, "%s\n\n", _("Useless nonterminals:"));
414        for (i = 0; i < nuseless_nonterminals; ++i)        for (i = 0; i < nuseless_nonterminals; ++i)
415          fprintf (out, "   %s\n", tags[nsyms + i]);          fprintf (out, "   %s\n", tags[nsyms + i]);
416          fputs ("\n\n", out);
417      }      }
418    b = FALSE;  
419    for (i = 0; i < ntokens; i++)    {
420      {      bool b = FALSE;
421        int i;
422        for (i = 0; i < ntokens; i++)
423        if (!BITISSET (V, i) && !BITISSET (V1, i))        if (!BITISSET (V, i) && !BITISSET (V1, i))
424          {          {
425            if (!b)            if (!b)
426              {              fprintf (out, "%s\n\n", _("Terminals which are not used:"));
427                fprintf (out, "\n\n");            b = TRUE;
               fprintf (out, _("Terminals which are not used:"));  
               fprintf (out, "\n\n");  
               b = TRUE;  
             }  
428            fprintf (out, "   %s\n", tags[i]);            fprintf (out, "   %s\n", tags[i]);
429          }          }
430      }      if (b)
431          fputs ("\n\n", out);
432      }
433    
434    if (nuseless_productions > 0)    if (nuseless_productions > 0)
435      {      {
436        fprintf (out, "\n\n");        int i;
437        fprintf (out, _("Useless rules:"));        fprintf (out, "%s\n\n", _("Useless rules:"));
       fprintf (out, "\n\n");  
438        for (i = 1; i <= nrules; i++)        for (i = 1; i <= nrules; i++)
439          if (!BITISSET (P, i))          if (!BITISSET (P, i))
440            {            {
441                rule r;
442              fprintf (out, "#%-4d  ", i);              fprintf (out, "#%-4d  ", i);
443              fprintf (out, "%s :\t", tags[rule_table[i].lhs]);              fprintf (out, "%s :\t", tags[rule_table[i].lhs]);
444              for (r = &ritem[rule_table[i].rhs]; *r >= 0; r++)              for (r = &ritem[rule_table[i].rhs]; *r >= 0; r++)
445                fprintf (out, " %s", tags[*r]);                fprintf (out, " %s", tags[*r]);
446              fprintf (out, ";\n");              fputs (";\n", out);
447            }            }
448          fputs ("\n\n", out);
449      }      }
   if (nuseless_nonterminals > 0 || nuseless_productions > 0 || b)  
     fprintf (out, "\n\n");  
450  }  }
451    
452  static void  static void

Legend:
Removed from v.1.30  
changed lines
  Added in v.1.31

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26