Ignore:
Timestamp:
Jun 11, 2008, 10:10:26 PM (16 years ago)
Author:
dai_9181
Message:

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

Location:
trunk/ab5.0/abdev/BasicCompiler_Common/src
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/BasicCompiler_Common/src/Compiler.cpp

    r636 r637  
    5050
    5151        // メタ情報
    52         this->GetObjectModule().StaticLink( *pStaticLibrary );
     52        this->GetObjectModule().StaticLink( *pStaticLibrary, this->IsSll() );
    5353    }
    5454}
  • trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Class.cpp

    r632 r637  
    117117
    118118            //クラスを追加
    119             CClass *pClass = new CClass( namespaceScopes, importedNamespaces, temporary );
     119            CClass *pClass = new CClass( Symbol( namespaceScopes, temporary ), importedNamespaces );
    120120            if( classes.IsExist( pClass ) )
    121121            {
     
    575575        //関数ハッシュへ登録
    576576        UserProc *pUserProc = new UserProc(
    577             NamespaceScopes(),
     577            Symbol( NamespaceScopes(), methodName ),
    578578            NamespaceScopesCollection(),
    579             methodName,
    580579            Procedure::Function,
    581580            false,
     
    14341433    // クラスをコピー
    14351434    CClass *pNewClass = new CClass(
    1436         _class.GetNamespaceScopes(),
     1435        _class,
    14371436        _class.GetImportedNamespaces(),
    1438         _class.GetName(),
    14391437        _class.GetClassType(),
    14401438        _class.GetFormalGenericTypes(),
  • trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Const.cpp

    r600 r637  
    7474
    7575        //定数を追加
    76         consts.Add( namespaceScopes, temporary, NextValue);
     76        consts.Add( Symbol( namespaceScopes, temporary ), NextValue);
    7777    }
    7878}
     
    178178                    if( StaticCalculation(false, expression, 0, &i64data, resultType) )
    179179                    {
    180                         consts.Add( namespaceScopes, name, i64data, resultType );
     180                        consts.Add( Symbol( namespaceScopes, name ), i64data, resultType );
    181181                    }
    182182                }
     
    185185                    // 定数マクロ
    186186                    const char *params = temporary + i2;
    187                     if( !constMacros.Add( namespaceScopes, name, params ) )
     187                    if( !constMacros.Add( Symbol( namespaceScopes, name ), params ) )
    188188                    {
    189189                        compiler.errorMessenger.Output( 1, NULL, i );
  • trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Delegate.cpp

    r625 r637  
    115115            }
    116116
    117             delegates.Put( new Delegate( namespaceScopes, importedNamespaces, name, procKind, paramStr, returnTypeName, nowLine ) );
     117            delegates.Put( new Delegate( Symbol( namespaceScopes, name ), importedNamespaces, procKind, paramStr, returnTypeName, nowLine ) );
    118118        }
    119119    }
     
    131131        const Delegate &dg = *delegates.Iterator_GetNext();
    132132
    133         if( !dg.isTargetObjectModule )
     133        if( dg.IsExternal() )
    134134        {
    135135            // 静的リンクライブラリの場合は飛ばす(既にインスタンスが定義済みであるため)
  • trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Procedure.cpp

    r632 r637  
    156156
    157157    //ソースコードの位置
    158     userProc.SetSourceCodePosition( SourceCodePosition( compiler.GetObjectModule().GetName(), nowLine ) );
     158    userProc.SetSourceCodePosition( SourceCodePosition( compiler.GetCurrentRelationalObjectModuleIndexForSource(), nowLine ) );
    159159
    160160    //パラメータ
     
    286286
    287287    //ソースコードの位置
    288     pProc->SetSourceCodePosition( SourceCodePosition( compiler.GetObjectModule().GetName(), nowLine ) );
     288    pProc->SetSourceCodePosition( SourceCodePosition( compiler.GetCurrentRelationalObjectModuleIndexForSource(), nowLine ) );
    289289
    290290    //パラメータ
     
    615615    }
    616616
    617     UserProc *pUserProc = new UserProc( namespaceScopes, importedNamespaces, temporary, kind, isMacro, isCdecl, isExport );
     617    UserProc *pUserProc = new UserProc( Symbol( namespaceScopes, temporary ), importedNamespaces, kind, isMacro, isCdecl, isExport );
    618618    pUserProc->SetParentClass( pobj_c );
    619619
     
    737737
    738738    // オブジェクトを生成
    739     DllProc *pDllProc = new DllProc( namespaceScopes, procName, kind, isCdecl, dllFileName, alias );
     739    DllProc *pDllProc = new DllProc( Symbol( namespaceScopes, procName ), kind, isCdecl, dllFileName, alias );
    740740
    741741    // パラメータを解析
  • trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_TypeDef.cpp

    r546 r637  
    7575    typeDefs.push_back(
    7676        TypeDef(
    77             namespaceScopes,
    78             temporary,
     77            Symbol( namespaceScopes, temporary ),
    7978            pTemp,
    8079            baseType
     
    176175                typeDefs.push_back(
    177176                    TypeDef(
    178                         namespaceScopes,
    179                         temporary,
     177                        Symbol( namespaceScopes, temporary ),
    180178                        "Long",
    181179                        baseType
  • trunk/ab5.0/abdev/BasicCompiler_Common/src/ProcedureGenerator.cpp

    r589 r637  
    2121    while(classes.Iterator_HasNext()){
    2222        CClass &objClass = *classes.Iterator_GetNext();
    23         if( objClass.isTargetObjectModule == false )
     23        if( objClass.IsExternal() )
    2424        {
    2525            // 静的リンクライブラリの場合は飛ばす(既にインスタンスが定義済みであるため)
Note: See TracChangeset for help on using the changeset viewer.