Esempio n. 1
0
pch_status PCHWriteRewrites( void )
{
    carve_walk_base data;

    CarveWalkAllFree( carveREWRITE, markFreeRewrite );
    CarveWalkAll( carveREWRITE, saveRewrite, &data );
    PCHWriteCVIndexTerm();
    CarveWalkAllFree( carveREWRITE_TOKENS, markFreeRewriteTokens );
    CarveWalkAll( carveREWRITE_TOKENS, saveRewriteTokens, &data );
    PCHWriteCVIndexTerm();
    return( PCHCB_OK );
}
Esempio n. 2
0
pch_status PCHWriteGenerators( void )
{
    RTN_GEN *c;

    for( c = useSYMBOL; c != NULL; c = c->next ) {
        SymbolPCHWrite( c->parm );
        PCHWriteUInt( c->index );
    }
    PCHWriteCVIndexTerm();
    for( c = useTYPE; c != NULL; c = c->next ) {
        TypePCHWrite( c->parm );
        PCHWriteUInt( c->index );
    }
    PCHWriteCVIndexTerm();
    return( PCHCB_OK );
}
Esempio n. 3
0
static void saveRewrite( void *e, carve_walk_base *d )
{
    REWRITE *s = e;
    REWRITE_TOKENS *save_list;
    REWRITE_TOKENS *save_curr;
    SRCFILE_HANDLE *h;
    uint_8 *save_stream;

    if( s->free ) {
        return;
    }
    save_stream = s->stream;
    save_list = s->list;
    save_curr = s->curr;
    s->stream = _TokenPosGetIndex( s );  // must be first
    s->list = RewriteTokensGetIndex( save_list );
    s->curr = RewriteTokensGetIndex( save_curr );
    PCHWriteCVIndex( d->index );
    PCHWriteVar( *s );
    for( h = s->srcfiles_refd; h != NULL; h = h->next ) {
        SrcFilePCHWrite( h->srcfile );
    }
    PCHWriteCVIndexTerm();
    s->list = save_list;
    s->curr = save_curr;
    s->stream = save_stream;
}
Esempio n. 4
0
pch_status PCHWriteTokenLocns( void )
{
    auto carve_walk_base data;

    CarveWalkAllFree( carveSYMBOL_LOCN, markFreeTokenLocn );
    CarveWalkAll( carveSYMBOL_LOCN, saveTokenLocn, &data );
    PCHWriteCVIndexTerm();
    return( PCHCB_OK );
}
Esempio n. 5
0
pch_status PCHWriteTypeSigs( void )
{
    auto carve_walk_base data;

    TypeSigPCHWrite( type_sigs );
    CarveWalkAllFree( carveTYPE_SIG, markFreeTypeSig );
    CarveWalkAll( carveTYPE_SIG, saveTypeSig, &data );
    PCHWriteCVIndexTerm();
    return( PCHCB_OK );
}
Esempio n. 6
0
pch_status PCHWriteConstantPool( void )
{
    auto carve_walk_base data;

    ConstantPoolPCHWrite( pool_float );
    ConstantPoolPCHWrite( pool_int64 );
    CarveWalkAllFree( carvePOOL_CON, markFreeConstant );
    CarveWalkAll( carvePOOL_CON, saveConstant, &data );
    PCHWriteCVIndexTerm();
    return( PCHCB_OK );
}
Esempio n. 7
0
static void writeExtrefs( void )
{
    unsigned        len;
    PRAG_EXT_REF    *e;

    RingIterBeg( pragmaExtrefs, e ) {
        if( e->symbol != NULL ) {
            SymbolPCHWrite( e->symbol );
        }
    } RingIterEnd( e )
    PCHWriteCVIndexTerm();
    RingIterBeg( pragmaExtrefs, e ) {
        if( e->symbol == NULL ) {
            len = strlen( e->name );
            PCHWriteUInt( len );
            PCHWrite( e->name, len + 1 );
        }
    } RingIterEnd( e )
    PCHWriteUInt( 0 );
}