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

Diff of /bison/src/closure.c

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

revision 1.52 by akim, Mon Apr 8 11:45:59 2002 UTC revision 1.53 by akim, Mon May 6 08:42:24 2002 UTC
# Line 22  Line 22 
22  #include "quotearg.h"  #include "quotearg.h"
23  #include "bitset.h"  #include "bitset.h"
24  #include "bitsetv.h"  #include "bitsetv.h"
25    #include "bitsetv-print.h"
26  #include "getargs.h"  #include "getargs.h"
27  #include "symtab.h"  #include "symtab.h"
28  #include "gram.h"  #include "gram.h"
# Line 78  print_firsts (void) Line 79  print_firsts (void)
79                 quotearg_style (escape_quoting_style, symbols[i]->tag));                 quotearg_style (escape_quoting_style, symbols[i]->tag));
80        for (j = 0; j < nvars; j++)        for (j = 0; j < nvars; j++)
81          if (bitset_test (FIRSTS (i), j))          if (bitset_test (FIRSTS (i), j))
82            fprintf (stderr, "\t\t%d (%s)\n",            fprintf (stderr, "\t\t%s\n",
                    j + ntokens,  
83                     quotearg_style (escape_quoting_style,                     quotearg_style (escape_quoting_style,
84                                     symbols[j + ntokens]->tag));                                     symbols[j + ntokens]->tag));
85      }      }
# Line 111  print_fderives (void) Line 111  print_fderives (void)
111      }      }
112    fprintf (stderr, "\n\n");    fprintf (stderr, "\n\n");
113  }  }
   
 /*--------------------------------------------------------.  
 | Display the MATRIX array of SIZE bitsets of size SIZE.  |  
 `--------------------------------------------------------*/  
   
 static void  
 bitmatrix_print (const char *title, bitsetv matrix)  
 {  
   size_t i, j;  
   size_t size = bitset_size (matrix[0]);  
   
   /* Title. */  
   fprintf (stderr, "%s BEGIN\n", title);  
   
   /* Column numbers. */  
   fputs ("   ", stderr);  
   for (i = 0; i < size; ++i)  
     putc (i / 10 ? '0' + i / 10 : ' ', stderr);  
   putc ('\n', stderr);  
   fputs ("   ", stderr);  
   for (i = 0; i < size; ++i)  
     fprintf (stderr, "%d", i % 10);  
   putc ('\n', stderr);  
   
   /* Bar. */  
   fputs ("  .", stderr);  
   for (i = 0; i < size; ++i)  
     putc ('-', stderr);  
   fputs (".\n", stderr);  
   
   /* Contents. */  
   for (i = 0; i < size; ++i)  
     {  
       fprintf (stderr, "%2d|", i);  
       for (j = 0; j < size; ++j)  
         fputs (bitset_test (matrix[i], j) ? "1" : " ", stderr);  
       fputs ("|\n", stderr);  
     }  
   
   /* Bar. */  
   fputs ("  `", stderr);  
   for (i = 0; i < size; ++i)  
     putc ('-', stderr);  
   fputs ("'\n", stderr);  
   
   /* End title. */  
   fprintf (stderr, "%s END\n\n", title);  
 }  
114    
115  /*------------------------------------------------------------------.  /*------------------------------------------------------------------.
116  | Set FIRSTS to be an NVARS array of NVARS bitsets indicating which |  | Set FIRSTS to be an NVARS array of NVARS bitsets indicating which |
# Line 187  set_firsts (void) Line 139  set_firsts (void)
139        }        }
140    
141    if (trace_flag)    if (trace_flag)
142      bitmatrix_print ("RTC: Input", firsts);      bitsetv_matrix_dump (stderr, "RTC: Firsts Input", firsts);
143    bitsetv_reflexive_transitive_closure (firsts);    bitsetv_reflexive_transitive_closure (firsts);
144    if (trace_flag)    if (trace_flag)
145      bitmatrix_print ("RTC: Output", firsts);      bitsetv_matrix_dump (stderr, "RTC: Firsts Output", firsts);
146    
147    if (trace_flag)    if (trace_flag)
148      print_firsts ();      print_firsts ();
# Line 226  set_fderives (void) Line 178  set_fderives (void)
178    
179    bitsetv_free (firsts);    bitsetv_free (firsts);
180  }  }
181    
182    
183    
184  void  void

Legend:
Removed from v.1.52  
changed lines
  Added in v.1.53

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