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

  1.  
  2. # include "y1.h" 
  3.  
  4. extern char sarr[ ISIZE ];
  5.  
  6. char * writem( pp )
  7. int * pp;
  8.  
  9. {
  10.   /* creates output string for item pointed to by pp */
  11.   int    i,
  12.        * p;
  13.   char * q;
  14.  
  15.   for ( p = pp; *p > 0; ++p )
  16.     ;
  17.   p = prdptr[ -*p ];
  18.   q = chcopy( sarr, nontrst[ *p - NTBASE ].name );
  19.   q = chcopy( q, " : " );
  20.  
  21.   for ( ; ; )
  22.     {
  23.       *q++ = ( ( ++p ) == pp ) ? '_' : ' ';
  24.       *q   = '\0';
  25.       if ( ( i = *p ) <= 0 )
  26.         break ;
  27.       q    = chcopy( q, symnam( i ) );
  28.       if ( q > &sarr[ ISIZE - 30 ] )
  29.         error( "item too big" );
  30.     }
  31.  
  32.   if ( ( i = *pp ) < 0 )
  33.     {
  34.       /* an item calling for a reduction */
  35.       q = chcopy( q, "    (" );
  36.       sprintf( q, "%d)", -i );
  37.     }
  38.  
  39.   return ( sarr );
  40. }
  41.