/[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.46 by akim, Sun Apr 7 15:29:36 2002 UTC revision 1.47 by akim, Sun Apr 7 15:30:20 2002 UTC
# Line 114  useless_nonterminals (void) Line 114  useless_nonterminals (void)
114    while (1)    while (1)
115      {      {
116        bitset_copy (Np, N);        bitset_copy (Np, N);
117        for (i = 1; i <= nrules; i++)        for (i = 1; i < nrules + 1; i++)
118          if (!bitset_test (P, i)          if (!bitset_test (P, i)
119              && useful_production (i, N))              && useful_production (i, N))
120            {            {
# Line 174  inaccessable_symbols (void) Line 174  inaccessable_symbols (void)
174        while (1)        while (1)
175          {          {
176            bitset_copy (Vp, V);            bitset_copy (Vp, V);
177            for (i = 1; i <= nrules; i++)            for (i = 1; i < nrules + 1; i++)
178              {              {
179                if (!bitset_test (Pp, i)                if (!bitset_test (Pp, i)
180                    && bitset_test (P, i)                    && bitset_test (P, i)
# Line 241  reduce_grammar_tables (void) Line 241  reduce_grammar_tables (void)
241    
242          np = 0;          np = 0;
243          ni = 0;          ni = 0;
244          for (pn = 1; pn <= nrules; pn++)          for (pn = 1; pn < nrules + 1; pn++)
245            if (bitset_test (P, pn))            if (bitset_test (P, pn))
246              {              {
247                np++;                np++;
# Line 281  reduce_grammar_tables (void) Line 281  reduce_grammar_tables (void)
281    if (nuseless_productions > 0)    if (nuseless_productions > 0)
282      {      {
283        int pn;        int pn;
284        for (pn = 1; pn <= nrules; pn++)        for (pn = 1; pn < nrules + 1; pn++)
285          rules[pn].useful = bitset_test (P, pn);          rules[pn].useful = bitset_test (P, pn);
286      }      }
287  }  }
# Line 322  nonterminals_reduce (void) Line 322  nonterminals_reduce (void)
322    
323    /* Replace all symbol numbers in valid data structures.  */    /* Replace all symbol numbers in valid data structures.  */
324    
325    for (i = 1; i <= nrules; i++)    for (i = 1; i < nrules + 1; i++)
326      {      {
327        rules[i].lhs = nontermmap[rules[i].lhs];        rules[i].lhs = nontermmap[rules[i].lhs];
328        if (ISVAR (rules[i].precsym))        if (ISVAR (rules[i].precsym))
# Line 378  reduce_output (FILE *out) Line 378  reduce_output (FILE *out)
378      {      {
379        int i;        int i;
380        fprintf (out, "%s\n\n", _("Useless rules:"));        fprintf (out, "%s\n\n", _("Useless rules:"));
381        for (i = 1; i <= nrules; i++)        for (i = 1; i < nrules + 1; i++)
382          if (!rules[i].useful)          if (!rules[i].useful)
383            {            {
384              rule r;              rule r;
# Line 411  dump_grammar (FILE *out) Line 411  dump_grammar (FILE *out)
411    fprintf (out, "\n\n");    fprintf (out, "\n\n");
412    fprintf (out, "Rules\n-----\n\n");    fprintf (out, "Rules\n-----\n\n");
413    fprintf (out, "Num (Prec, Assoc, Useful, Ritem Range) Lhs -> Rhs (Ritem range) [Num]\n");    fprintf (out, "Num (Prec, Assoc, Useful, Ritem Range) Lhs -> Rhs (Ritem range) [Num]\n");
414    for (i = 1; i <= nrules; i++)    for (i = 1; i < nrules + 1; i++)
415      {      {
416        int rhs_count = 0;        int rhs_count = 0;
417        /* Find the last RHS index in ritems. */        /* Find the last RHS index in ritems. */
# Line 429  dump_grammar (FILE *out) Line 429  dump_grammar (FILE *out)
429      }      }
430    fprintf (out, "\n\n");    fprintf (out, "\n\n");
431    fprintf (out, "Rules interpreted\n-----------------\n\n");    fprintf (out, "Rules interpreted\n-----------------\n\n");
432    for (i = 1; i <= nrules; i++)    for (i = 1; i < nrules + 1; i++)
433      {      {
434        fprintf (out, "%-5d  %s :", i, symbols[rules[i].lhs]->tag);        fprintf (out, "%-5d  %s :", i, symbols[rules[i].lhs]->tag);
435        for (r = rules[i].rhs; *r >= 0; r++)        for (r = rules[i].rhs; *r >= 0; r++)

Legend:
Removed from v.1.46  
changed lines
  Added in v.1.47

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