home *** CD-ROM | disk | FTP | other *** search
/ Frostbyte's 1980s DOS Shareware Collection / floppyshareware.zip / floppyshareware / USCX / YACC.ARC / YWRITM.1C < prev    next >
Text File  |  1986-03-29  |  768b  |  35 lines

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