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

  1.  
  2. # include "y2.h"    
  3. # include <ctype.h> 
  4.  
  5. void defout( )
  6. {
  7.   /* write out the defines (at the end of the declaration section) */
  8.  
  9.   register int    i,
  10.                   c;
  11.   register char * cp;
  12.  
  13.   for ( i = ndefout; i <= ntokens; ++i )
  14.     {
  15.  
  16.       cp = tokset[ i ].name;
  17.       if ( *cp == ' ' )
  18.         ++cp; /* literals */
  19.  
  20.       for ( ; ( c = *cp ) != '\0'; ++cp )
  21.         {
  22.  
  23.           if ( islower( c ) ||\
  24.                isupper( c ) ||\
  25.                isdigit( c ) ||\
  26.                c == '_' )
  27.             ; /* VOID */
  28.           else
  29.             goto nodef;
  30.         }
  31.  
  32.       fprintf( ftable,
  33.                "# define %s %d\n",
  34.                tokset[ i ].name,
  35.                tokset[ i ].value );
  36.       if ( fdefine != NULL )
  37.         fprintf( fdefine,
  38.                  "# define %s %d\n",
  39.                  tokset[ i ].name,
  40.                  tokset[ i ].value );
  41.  
  42.       nodef : ;
  43.     }
  44.  
  45.   ndefout = ntokens + 1;
  46.  
  47. }
  48.