home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 2 / crawlyvol2.bin / program / c / yaccsrc2 / ysumry.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-05-19  |  1.9 KB  |  67 lines

  1.  
  2. # include "y1.h" 
  3.  
  4. void summary( )
  5. {
  6.   /* output the summary on the tty */
  7.  
  8.   if ( foutput != NULL )
  9.     {
  10.       fprintf( foutput,
  11.                "\n%d/%d terminals, %d/%d nonterminals\n",
  12.                ntokens,
  13.                NTERMS,
  14.                nnonter,
  15.                NNONTERM );
  16.       fprintf( foutput,
  17.                "%d/%d grammar rules, %d/%d states\n",
  18.                nprod,
  19.                NPROD,
  20.                nstate,
  21.                NSTATES );
  22.       fprintf( foutput,
  23.                "%d shift/reduce, %d reduce/reduce conflicts reported\n",
  24.                zzsrconf,
  25.                zzrrconf );
  26.       fprintf( foutput,
  27.                "%d/%d working sets used\n",
  28.                ( int )( zzcwp - wsets ),
  29.                WSETSIZE );
  30.       fprintf( foutput,
  31.                "memory: states,etc. %d/%d, parser %d/%d\n",
  32.                ( int )( zzmemsz - mem0 ),
  33.                MEMSIZE,
  34.                ( int )( memp - amem ),
  35.                ACTSIZE );
  36.       fprintf( foutput,
  37.                "%d/%d distinct lookahead sets\n",
  38.                nlset,
  39.                LSETSIZE );
  40.       fprintf( foutput,
  41.                "%d extra closures\n",
  42.                ( int )( zzclose - 2 * nstate ) );
  43.       fprintf( foutput,
  44.                "%d shift entries, %d exceptions\n",
  45.                zzacent,
  46.                zzexcp );
  47.       fprintf( foutput, "%d goto entries\n", zzgoent );
  48.       fprintf( foutput, "%d entries saved by goto default\n", zzgobest );
  49.     }
  50.   if ( zzsrconf != 0 || zzrrconf != 0 )
  51.     {
  52.       fprintf( stdout, "\nconflicts: " );
  53.       if ( zzsrconf )
  54.         fprintf( stdout, "%d shift/reduce", zzsrconf );
  55.       if ( zzsrconf && zzrrconf )
  56.         fprintf( stdout, ", " );
  57.       if ( zzrrconf )
  58.         fprintf( stdout, "%d reduce/reduce", zzrrconf );
  59.       fprintf( stdout, "\n" );
  60.     }
  61.  
  62.   if ( ftemp != NULL )
  63.     fclose( ftemp );
  64.   if ( fdefine != NULL )
  65.     fclose( fdefine );
  66. }
  67.