Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
// Copyright (c) 1993-1999 Microsoft Corporation
#include "y2.h"
void cpyunion( void ) { /* copy the union declaration to the output, and the define file if present */
int level, c;
writeline(ftable);
fprintf( ftable, "\n#define UNION 1\n"); fprintf( ftable, "typedef union " ); if( fdefine ) fprintf( fdefine, "\ntypedef union " );
level = 0; for(;;) { if( (c=unix_getc(finput)) < 0 ) error( "EOF encountered while processing %%union" ); putc( c, ftable ); if( fdefine ) putc( c, fdefine );
switch( c ) {
case '\n': ++lineno; break;
case '{': ++level; break;
case '}': --level; if( level == 0 ) { /* we are finished copying */ fprintf( ftable, " YYSTYPE;\n" ); if( fdefine ) fprintf( fdefine, " YYSTYPE;\nextern YYSTYPE yylval;\n" ); return; } } } }
|