WindowsXP-SP1/com/rpc/tools/yacc/ywritm.c
2020-09-30 16:53:49 +02:00

39 lines
782 B
C

// Copyright (c) 1993-1999 Microsoft Corporation
#include "y1.h"
char *chcopy(char *, char *);
extern char sarr[ISIZE];
char *writem(pp) SSIZE_T *pp;
{
/* creates output string for item pointed to by pp */
SSIZE_T i,*p;
char *q;
for( p=pp; *p>0 ; ++p ) ;
p = prdptr[-*p];
q = chcopy( sarr, nontrst[*p-NTBASE].name );
q = chcopy( q, " : " );
for(;;)
{
*q++ = ++p==pp ? '_' : ' ';
*q = '\0';
if((i = *p) <= 0) break;
q = chcopy( q, symnam(i) );
if( q> &sarr[ISIZE-30] ) error( "item too big" );
}
if( (i = *pp) < 0 )
{
/* an item calling for a reduction */
q = chcopy( q, " (" );
sprintf( q, "%d)", -i );
}
return( sarr );
}