/[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.32 by akim, Wed Dec 5 09:34:55 2001 UTC revision 1.33 by akim, Wed Dec 5 09:41:15 2001 UTC
# Line 30  Line 30 
30  #include "reader.h"  #include "reader.h"
31  #include "print.h"  #include "print.h"
32  #include "reduce.h"  #include "reduce.h"
33    #include "closure.h"
34    
35  #if 0  #if 0
36  static void  static void
# Line 48  static void Line 49  static void
49  print_core (FILE *out, int state)  print_core (FILE *out, int state)
50  {  {
51    int i;    int i;
52    core *statep = state_table[state].state;    short *sitems = state_table[state].state->items;
53      int snitems   = state_table[state].state->nitems;
54    
55    if (!statep->nitems)    /* New experimental feature: if TRACE_FLAGS output all the items of
56      return;       a state, not only its kernel.  */
57      if (trace_flag)
58        {
59          closure (sitems, snitems);
60          sitems = itemset;
61          snitems = nitemset;
62        }
63    
64    for (i = 0; i < statep->nitems; i++)    if (snitems)
65      {      {
66        short *sp;        for (i = 0; i < snitems; i++)
67        short *sp1;          {
68        int rule;            short *sp;
69              short *sp1;
70              int rule;
71    
72        sp1 = sp = ritem + statep->items[i];            sp1 = sp = ritem + sitems[i];
73    
74        while (*sp > 0)            while (*sp > 0)
75          sp++;              sp++;
76    
77        rule = -(*sp);            rule = -(*sp);
78        fprintf (out, "    %s  ->  ", tags[rule_table[rule].lhs]);            fprintf (out, "    %s  ->  ", tags[rule_table[rule].lhs]);
79    
80        for (sp = ritem + rule_table[rule].rhs; sp < sp1; sp++)            for (sp = ritem + rule_table[rule].rhs; sp < sp1; sp++)
81          fprintf (out, "%s ", tags[*sp]);              fprintf (out, "%s ", tags[*sp]);
82    
83        fputc ('.', out);            fputc ('.', out);
84    
85        for (/* Nothing */; *sp > 0; ++sp)            for (/* Nothing */; *sp > 0; ++sp)
86          fprintf (out, " %s", tags[*sp]);              fprintf (out, " %s", tags[*sp]);
87    
88              fprintf (out, _("   (rule %d)"), rule);
89              fputc ('\n', out);
90            }
91    
       fprintf (out, _("   (rule %d)"), rule);  
92        fputc ('\n', out);        fputc ('\n', out);
93      }      }
   
   fputc ('\n', out);  
94  }  }
95    
96  static void  static void
# Line 321  print_results (void) Line 332  print_results (void)
332    
333        print_grammar (out);        print_grammar (out);
334    
335          /* New experimental feature: output all the items of a state,
336             not only its kernel.  Requires to run closure, which need
337             memory allocation/deallocation.  */
338          if (trace_flag)
339            new_closure (nitems);
340        for (i = 0; i < nstates; i++)        for (i = 0; i < nstates; i++)
341          print_state (out, i);          print_state (out, i);
342          if (trace_flag)
343            free_closure ();
344    
345        xfclose (out);        xfclose (out);
346      }      }

Legend:
Removed from v.1.32  
changed lines
  Added in v.1.33

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