local void getPackArgs( void ) /****************************/ { struct pack_info *pi; /* check to make sure it is a numeric token */ if( PragIdRecog( "push" ) ) { /* 29-sep-94 */ pi = (struct pack_info *)CMemAlloc( sizeof( struct pack_info ) ); pi->next = PackInfo; pi->pack_amount = PackAmount; PackInfo = pi; if( CurToken == T_COMMA ) { PPCTL_ENABLE_MACROS(); NextToken(); PPCTL_DISABLE_MACROS(); if( ExpectingConstant() ) { SetPackAmount(); } NextToken(); } } else if( PragIdRecog( "pop" ) ) { pi = PackInfo; if( pi != NULL ) { PackAmount = pi->pack_amount; PackInfo = pi->next; CMemFree( pi ); } } else { CErr1( ERR_NOT_A_CONSTANT_EXPR ); } }
local void CLine( void ) { FNAMEPTR flist; unsigned long src_line; src_line = 0; PPCTL_ENABLE_MACROS(); PPNextToken(); if( ExpectingConstant() ) { if( CompFlags.cpp_ignore_line == 0 ) { src_line = Constant; // stash in case of side effects SrcFile->src_loc.line = src_line - 1; /* don't count this line */ } PPNextToken(); if( CurToken == T_NULL ) { if( CompFlags.cpp_ignore_line == 0 ) { if( CompFlags.cpp_output ) { EmitLine( src_line, SrcFile->src_name ); } } } else { if( ExpectingToken( T_STRING ) ) { if( CompFlags.wide_char_string ) { /* wide char string not allowed */ ExpectString(); } else { if( CompFlags.cpp_ignore_line == 0 ) { // RemoveEscapes( Buffer ); flist = AddFlist( Buffer ); flist->rwflag = FALSE; // not a real file so no autodep SrcFile->src_name = flist->name; SrcFile->src_loc.fno = flist->index; if( CompFlags.cpp_output ) { EmitLine( src_line, SrcFile->src_name ); } } } } PPNextToken(); ChkEOL(); } } PPCTL_DISABLE_MACROS(); }