Ignore:
Timestamp:
Jun 12, 2008, 11:30:50 PM (16 years ago)
Author:
dai_9181
Message:

静的リンクリンカの依存関係解決モジュールを製作中

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/ab_common/src/Lexical/Procedure.cpp

    r637 r639  
    1111    }
    1212}
     13
     14bool Procedure::Resolve( const ObjectModule &resolver )
     15{
     16    BOOST_FOREACH( Parameter *pParameter, params )
     17    {
     18        pParameter->Resolve( resolver );
     19    }
     20
     21    returnType.Resolve( resolver );
     22
     23    return true;
     24}
     25
    1326
    1427void UserProc::ResetRelationalObjectModuleIndex( const std::vector<int> &relationTable )
     
    157170}
    158171
    159 bool UserProc::Resolve()
    160 {
    161     // TODO: Resolve
     172bool UserProc::Resolve( const ObjectModule &resolver )
     173{
     174    Procedure::Resolve( resolver );
     175
     176    if( pParentClass )
     177    {
     178        if( pParentClass->IsNeedResolve() )
     179        {
     180            pParentClass = resolver.meta.GetClasses().FindLike( pParentClass );
     181        }
     182    }
     183
     184    if( pInterface )
     185    {
     186        const_cast<Interface *>(pInterface)->Resolve( resolver );
     187    }
     188
     189    if( pMethod )
     190    {
     191        pMethod->Resolve( resolver );
     192    }
     193
     194    BOOST_FOREACH( Parameter *pParameter, realParams )
     195    {
     196        pParameter->Resolve( resolver );
     197    }
     198
     199    BOOST_FOREACH( Variable *pLocalVar, localVars )
     200    {
     201        pLocalVar->Resolve( resolver );
     202    }
     203
     204    nativeCode.Resolve( resolver );
    162205    return true;
    163206}
     
    185228}
    186229
    187 bool DllProc::Resolve()
    188 {
    189     // TODO: Resolve
    190     return true;
    191 }
    192 
    193 bool ProcPointer::Resolve()
    194 {
    195     // TODO: Resolve
     230bool DllProc::Resolve( const ObjectModule &resolver )
     231{
     232    Procedure::Resolve( resolver );
     233    return true;
     234}
     235
     236bool ProcPointer::Resolve( const ObjectModule &resolver )
     237{
     238    Procedure::Resolve( resolver );
    196239    return true;
    197240}
Note: See TracChangeset for help on using the changeset viewer.