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

Diff of /bison/src/print.c

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

revision 1.75 by akim, Sun Jun 30 17:30:46 2002 UTC revision 1.76 by akim, Sun Jun 30 17:31:19 2002 UTC
# Line 354  static void Line 354  static void
354  print_grammar (FILE *out)  print_grammar (FILE *out)
355  {  {
356    symbol_number_t i;    symbol_number_t i;
   item_number_t *rule;  
357    char buffer[90];    char buffer[90];
358    int column = 0;    int column = 0;
359    
# Line 366  print_grammar (FILE *out) Line 365  print_grammar (FILE *out)
365      if (token_translations[i] != undeftoken->number)      if (token_translations[i] != undeftoken->number)
366        {        {
367          const char *tag = symbol_tag_get (symbols[token_translations[i]]);          const char *tag = symbol_tag_get (symbols[token_translations[i]]);
368          int r;          rule_number_t r;
369            item_number_t *rhsp;
370    
371          buffer[0] = 0;          buffer[0] = 0;
372          column = strlen (tag);          column = strlen (tag);
373          fputs (tag, out);          fputs (tag, out);
# Line 374  print_grammar (FILE *out) Line 375  print_grammar (FILE *out)
375          sprintf (buffer, " (%d)", i);          sprintf (buffer, " (%d)", i);
376    
377          for (r = 1; r < nrules + 1; r++)          for (r = 1; r < nrules + 1; r++)
378            for (rule = rules[r].rhs; *rule >= 0; rule++)            for (rhsp = rules[r].rhs; *rhsp >= 0; rhsp++)
379              if (item_number_as_symbol_number (*rule) == token_translations[i])              if (item_number_as_symbol_number (*rhsp) == token_translations[i])
380                {                {
381                  END_TEST (65);                  END_TEST (65);
382                  sprintf (buffer + strlen (buffer), " %d", r - 1);                  sprintf (buffer + strlen (buffer), " %d", r - 1);
# Line 390  print_grammar (FILE *out) Line 391  print_grammar (FILE *out)
391    for (i = ntokens; i < nsyms; i++)    for (i = ntokens; i < nsyms; i++)
392      {      {
393        int left_count = 0, right_count = 0;        int left_count = 0, right_count = 0;
394        int r;        rule_number_t r;
395        const char *tag = symbol_tag_get (symbols[i]);        const char *tag = symbol_tag_get (symbols[i]);
396    
397        for (r = 1; r < nrules + 1; r++)        for (r = 1; r < nrules + 1; r++)
398          {          {
399              item_number_t *rhsp;
400            if (rules[r].lhs->number == i)            if (rules[r].lhs->number == i)
401              left_count++;              left_count++;
402            for (rule = rules[r].rhs; *rule >= 0; rule++)            for (rhsp = rules[r].rhs; *rhsp >= 0; rhsp++)
403              if (item_number_as_symbol_number (*rule) == i)              if (item_number_as_symbol_number (*rhsp) == i)
404                {                {
405                  right_count++;                  right_count++;
406                  break;                  break;
# Line 432  print_grammar (FILE *out) Line 434  print_grammar (FILE *out)
434            sprintf (buffer + strlen (buffer), _(" on right:"));            sprintf (buffer + strlen (buffer), _(" on right:"));
435            for (r = 1; r < nrules + 1; r++)            for (r = 1; r < nrules + 1; r++)
436              {              {
437                for (rule = rules[r].rhs; *rule >= 0; rule++)                item_number_t *rhsp;
438                  if (item_number_as_symbol_number (*rule) == i)                for (rhsp = rules[r].rhs; *rhsp >= 0; rhsp++)
439                    if (item_number_as_symbol_number (*rhsp) == i)
440                    {                    {
441                      END_TEST (65);                      END_TEST (65);
442                      sprintf (buffer + strlen (buffer), " %d", r - 1);                      sprintf (buffer + strlen (buffer), " %d", r - 1);

Legend:
Removed from v.1.75  
changed lines
  Added in v.1.76

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