Changeset 266 in dev for trunk/abdev


Ignore:
Timestamp:
Aug 7, 2007, 4:14:06 AM (17 years ago)
Author:
dai_9181
Message:

BasicSourceのシリアライズがうまくいっていない

Location:
trunk/abdev
Files:
2 added
31 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler32/BasicCompiler.vcproj

    r260 r266  
    13251325                    </File>
    13261326                    <File
     1327                        RelativePath="..\BasicCompiler_Common\src\Source.cpp"
     1328                        >
     1329                    </File>
     1330                    <File
    13271331                        RelativePath="..\BasicCompiler_Common\src\Symbol.cpp"
    13281332                        >
     
    14941498                    </File>
    14951499                    <File
     1500                        RelativePath="..\BasicCompiler_Common\include\Source.h"
     1501                        >
     1502                    </File>
     1503                    <File
    14961504                        RelativePath="..\BasicCompiler_Common\include\Symbol.h"
    14971505                        >
  • trunk/abdev/BasicCompiler32/Compile_ProcOp.cpp

    r265 r266  
    2828        ////////////////////////////////////////
    2929
    30         extern BOOL bDll;
    31         if(!bDll){
     30        if( !compiler.IsDll() ){
    3231            //ret
    3332            compiler.codeGenerator.op_ret();
     
    757756}
    758757void CompileLocal(){
    759     extern BOOL bDll;
    760     if(bDll){
     758    if( compiler.IsDll() ){
    761759        //DLLの場合はグローバル変数を初期化するための関数を一番初めにコンパイルする
    762760        const UserProc *pUserProc=GetSubHash("_System_InitDllGlobalVariables");
  • trunk/abdev/BasicCompiler32/MakePeHdr.cpp

    r265 r266  
    121121    extern HANDLE hHeap;
    122122    extern BOOL bDebugCompile;
    123     extern BOOL bDll;
    124123    extern DWORD ImageBase;
    125124    extern int obp_AllocSize;
     
    140139
    141140    //エクスポート セクションを利用するかどうか
    142     if(bDll) bUse_ExportSection=1;
     141    if( compiler.IsDll() ) bUse_ExportSection=1;
    143142    else bUse_ExportSection=0;
    144143
     
    176175    // 名前空間情報を取得
    177176    NamespaceSupporter::CollectNamespaces(
    178         Smoothie::Lexical::source.GetBuffer(),
     177        compiler.GetObjectModule().source.GetBuffer(),
    179178        compiler.GetObjectModule().meta.GetNamespaces()
    180179    );
     
    183182    //   CollectProcedures関数の中で参照されるオブジェクト名を事前に取得する。
    184183    //     ※オブジェクトの内容までは取得しない
    185     compiler.GetObjectModule().meta.GetClasses().CollectClassesForNameOnly( Smoothie::Lexical::source );
     184    compiler.GetObjectModule().meta.GetClasses().CollectClassesForNameOnly( compiler.GetObjectModule().source );
    186185
    187186    //TypeDef情報を初期化
     
    194193    compiler.pCompilingClass = NULL;
    195194    CollectProcedures(
    196         Smoothie::Lexical::source,
     195        compiler.GetObjectModule().source,
    197196        compiler.GetObjectModule().meta.GetUserProcs(),
    198197        compiler.GetObjectModule().meta.GetDllProcs()
     
    409408    UserProc::CompileStartForGlobalArea();
    410409
    411     if(!bDll){
     410    if( !compiler.IsDll() ){
    412411        // 名前空間が初期化されているかをチェック
    413412        if( compiler.GetNamespaceSupporter().GetLivingNamespaceScopes().size() ){
     
    864863
    865864
    866     if(bDll){
     865    if( compiler.IsDll() ){
    867866        //DLLの場合はリロケーション情報を仮生成
    868867        //※正式な生成は各セクションのメモリ上のサイズが決定してから再度行う。
     
    11601159
    11611160
    1162     if(bDll){
     1161    if( compiler.IsDll() ){
    11631162        //DLLの場合はリロケーション情報を生成
    11641163        pobj_Reloc->ResetRelocBuffer();
     
    12991298    ImagePeHdr.FileHeader.NumberOfSymbols=      0x00000000;
    13001299    ImagePeHdr.FileHeader.SizeOfOptionalHeader= IMAGE_SIZEOF_NT_OPTIONAL32_HEADER;
    1301     if(bDll){
     1300    if( compiler.IsDll() ){
    13021301        ImagePeHdr.FileHeader.Characteristics=  IMAGE_FILE_EXECUTABLE_IMAGE|
    13031302                                                IMAGE_FILE_32BIT_MACHINE|
     
    13191318    ImagePeHdr.OptionalHeader.SizeOfInitializedData=FileSize_DataSection;   //データサイズ(.dataのセッションサイズ)
    13201319    ImagePeHdr.OptionalHeader.SizeOfUninitializedData=0;                    //未初期化データのサイズ(なし)
    1321     if(bDll){
     1320    if( compiler.IsDll() ){
    13221321        if(DllMain_EntryPoint==-1)
    13231322            ImagePeHdr.OptionalHeader.AddressOfEntryPoint=0;
  • trunk/abdev/BasicCompiler64/BasicCompiler.vcproj

    r257 r266  
    388388                    </File>
    389389                    <File
     390                        RelativePath="..\BasicCompiler_Common\include\Source.h"
     391                        >
     392                    </File>
     393                    <File
    390394                        RelativePath="..\BasicCompiler_Common\include\Symbol.h"
    391395                        >
     
    11801184                    </File>
    11811185                    <File
     1186                        RelativePath="..\BasicCompiler_Common\src\Source.cpp"
     1187                        >
     1188                    </File>
     1189                    <File
    11821190                        RelativePath="..\BasicCompiler_Common\src\Symbol.cpp"
    11831191                        >
  • trunk/abdev/BasicCompiler64/Compile_Calc.cpp

    r257 r266  
    9696            }
    9797            else{
    98                 if( compiler.objectModule.meta.GetGlobalConsts().IsExist(variable)
    99                     || compiler.objectModule.meta.GetGlobalConstMacros().IsExist(variable) )
     98                if( compiler.GetObjectModule().meta.GetGlobalConsts().IsExist(variable)
     99                    || compiler.GetObjectModule().meta.GetGlobalConstMacros().IsExist(variable) )
    100100                {
    101101                    //定数リストに該当したとき
     
    236236    }
    237237
    238     if( varType.IsObject() && compiler.objectModule.meta.GetBlittableTypes().IsExist( calcType ) ){
     238    if( varType.IsObject() && compiler.GetObjectModule().meta.GetBlittableTypes().IsExist( calcType ) ){
    239239        // Blittable型をオブジェクトとして扱う
    240240        vector<const UserProc *> userProcs;
    241         compiler.objectModule.meta.GetBlittableTypes().GetClass( calcType ).GetStaticMethods().Enum( "_Create", userProcs );
     241        compiler.GetObjectModule().meta.GetBlittableTypes().GetClass( calcType ).GetStaticMethods().Enum( "_Create", userProcs );
    242242        if( userProcs.size() != 1 ){
    243243            SetError();
  • trunk/abdev/BasicCompiler64/Compile_CallProc.cpp

    r257 r266  
    126126                pobj_c = &varType.GetClass();
    127127                if( NATURAL_TYPE( varType.GetBasicType() ) != DEF_OBJECT ){
    128                     pobj_c=compiler.objectModule.meta.GetClasses().Find(ObjectName);
     128                    pobj_c=compiler.GetObjectModule().meta.GetClasses().Find(ObjectName);
    129129                    if( pobj_c ){
    130130                        isStatic = true;
  • trunk/abdev/BasicCompiler64/Compile_Func.cpp

    r262 r266  
    3636        tempParm=temp2;
    3737
    38         type.SetType( DEF_OBJECT, compiler.objectModule.meta.GetClasses().GetStringClassPtr() );
     38        type.SetType( DEF_OBJECT, compiler.GetObjectModule().meta.GetClasses().GetStringClassPtr() );
    3939    }
    4040
     
    8484
    8585        //オーバーロードを解決
    86         pUserProc=OverloadSolution(name,subs,compiler.objectModule.meta.GetProcPointers()[ProcPtr_BaseIndex]->Params(), Type() );
     86        pUserProc=OverloadSolution(name,subs,compiler.GetObjectModule().meta.GetProcPointers()[ProcPtr_BaseIndex]->Params(), Type() );
    8787
    8888        if(!pUserProc){
  • trunk/abdev/BasicCompiler64/Compile_ProcOp.cpp

    r263 r266  
    2323        // DLLのグローバル領域をコンパイル
    2424        ////////////////////////////////////////
    25         extern BOOL bDll;
    26         if(!bDll){
     25        if(!compiler.IsDll()){
    2726            //ret
    2827            compiler.codeGenerator.op_ret();
     
    5554
    5655        //クラスに属する静的メンバを定義
    57         compiler.objectModule.meta.GetClasses().InitStaticMember();
     56        compiler.GetObjectModule().meta.GetClasses().InitStaticMember();
    5857
    5958        GetGlobalDataForDll();
     
    7776        const PertialSchedule *pStackFramePertialSchedule = compiler.codeGenerator.op_sub_rsp( 0, true );
    7877
    79         BOOST_FOREACH( Variable *pVar, compiler.objectModule.meta.GetGlobalVars() ){
     78        BOOST_FOREACH( Variable *pVar, compiler.GetObjectModule().meta.GetGlobalVars() ){
    8079            if(memicmp(pVar->GetName().c_str(),"Static%",7)==0){
    8180                //コンストラクタ呼び出し
     
    140139        && userProc.HasParentClass()
    141140        && userProc.GetParentClass().GetName() == "_System_TypeBase" ){
    142             compiler.objectModule.meta.GetClasses().Compile_System_InitializeUserTypes();
     141            compiler.GetObjectModule().meta.GetClasses().Compile_System_InitializeUserTypes();
    143142    }
    144143    else if( userProc.GetName() == "RegisterGlobalRoots"
     
    189188
    190189    //コンパイルスタートをクラス管理クラスに追加
    191     compiler.objectModule.meta.GetClasses().StartCompile( pUserProc );
     190    compiler.GetObjectModule().meta.GetClasses().StartCompile( pUserProc );
    192191
    193192    //コンパイル中の関数
     
    693692}
    694693void CompileLocal(){
    695     extern BOOL bDll;
    696     if(bDll){
     694    if( compiler.IsDll() ){
    697695        //DLLの場合はグローバル変数を初期化するための関数を一番初めにコンパイルする
    698696        const UserProc *pUserProc = GetSubHash("_System_InitDllGlobalVariables");
     
    717715
    718716repeat:
    719     compiler.objectModule.meta.GetUserProcs().Iterator_Reset();
    720     while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() )
     717    compiler.GetObjectModule().meta.GetUserProcs().Iterator_Reset();
     718    while( compiler.GetObjectModule().meta.GetUserProcs().Iterator_HasNext() )
    721719    {
    722         UserProc *pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext();
     720        UserProc *pUserProc = compiler.GetObjectModule().meta.GetUserProcs().Iterator_GetNext();
    723721        CompileBufferInProcedure( *pUserProc );
    724722    }
     
    736734        //プロシージャコンパイルによって、プロシージャコンパイルが必要になる場合
    737735
    738         compiler.objectModule.meta.GetUserProcs().Iterator_Reset();
    739         while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() )
     736        compiler.GetObjectModule().meta.GetUserProcs().Iterator_Reset();
     737        while( compiler.GetObjectModule().meta.GetUserProcs().Iterator_HasNext() )
    740738        {
    741             UserProc *pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext();
     739            UserProc *pUserProc = compiler.GetObjectModule().meta.GetUserProcs().Iterator_GetNext();
    742740            CompileBufferInProcedure( *pUserProc );
    743741        }
  • trunk/abdev/BasicCompiler64/Compile_Statement.cpp

    r263 r266  
    136136    if(resultType.IsDouble()){
    137137        double dbl=0;
    138         offset=compiler.objectModule.dataTable.Add( dbl );
     138        offset=compiler.GetObjectModule().dataTable.Add( dbl );
    139139
    140140        //comisd xmm0,qword ptr[data table offset]
     
    153153    else if(resultType.IsSingle()){
    154154        float flt=0;
    155         offset=compiler.objectModule.dataTable.Add( flt );
     155        offset=compiler.GetObjectModule().dataTable.Add( flt );
    156156
    157157        //comiss xmm0,dword ptr[data table offset]
  • trunk/abdev/BasicCompiler64/Compile_Var.cpp

    r257 r266  
    389389    // 名前空間を分離
    390390    char namespaceStr[VN_SIZE]="", simpleName[VN_SIZE];
    391     compiler.objectModule.meta.GetNamespaces().SplitNamespace( variable, namespaceStr, simpleName );
     391    compiler.GetObjectModule().meta.GetNamespaces().SplitNamespace( variable, namespaceStr, simpleName );
    392392
    393393    // 先頭オブジェクトまたはクラス名と入れ子メンバに分割
     
    482482        //Const修飾子のメソッド内でメンバ書き込みアクセスが発生したとき
    483483        //(コンストラクタ、デストラクタ内を除く)
    484         const CMethod *pMethod = compiler.objectModule.meta.GetClasses().GetNowCompilingMethodInfo();
     484        const CMethod *pMethod = compiler.GetObjectModule().meta.GetClasses().GetNowCompilingMethodInfo();
    485485        if( isWriteAccess &&
    486486            pMethod->IsConst() &&
     
    519519            GetNowStaticVarFullName(VarName,temporary);
    520520
    521             pVar = compiler.objectModule.meta.GetGlobalVars().Find( Symbol( temporary ) );
     521            pVar = compiler.GetObjectModule().meta.GetGlobalVars().Find( Symbol( temporary ) );
    522522            if( pVar ){
    523523                goto GlobalOk;
     
    542542            }
    543543
    544             int typeDefIndex = compiler.objectModule.meta.GetTypeDefs().GetIndex( VarName );
     544            int typeDefIndex = compiler.GetObjectModule().meta.GetTypeDefs().GetIndex( VarName );
    545545            if( typeDefIndex != -1 ){
    546546                // TypeDef後の型名だったとき
    547                 lstrcpy( VarName, compiler.objectModule.meta.GetTypeDefs()[typeDefIndex].GetBaseName().c_str() );
     547                lstrcpy( VarName, compiler.GetObjectModule().meta.GetTypeDefs()[typeDefIndex].GetBaseName().c_str() );
    548548            }
    549549
    550550            char temp2[VN_SIZE];
    551551            sprintf(temp2,"%s.%s",VarName,temporary);
    552             pVar = compiler.objectModule.meta.GetGlobalVars().Find( Symbol( temp2 ) );
     552            pVar = compiler.GetObjectModule().meta.GetGlobalVars().Find( Symbol( temp2 ) );
    553553            if( pVar ){
    554554                lstrcpy(member,tempMember);
     
    562562            char temp2[VN_SIZE];
    563563            sprintf(temp2,"%s.%s",compiler.pCompilingClass->GetName().c_str(),VarName);
    564             pVar = compiler.objectModule.meta.GetGlobalVars().Find( Symbol( temp2 ) );
     564            pVar = compiler.GetObjectModule().meta.GetGlobalVars().Find( Symbol( temp2 ) );
    565565            if( pVar ){
    566566                goto GlobalOk;
     
    572572        /////////////////////
    573573
    574         pVar = compiler.objectModule.meta.GetGlobalVars().BackSearch( Symbol( VarName ) );
     574        pVar = compiler.GetObjectModule().meta.GetGlobalVars().BackSearch( Symbol( VarName ) );
    575575        if( pVar ){
    576576            goto GlobalOk;
     
    857857            char *temp;
    858858            temp=(char *)i64data;
    859             i2=compiler.objectModule.dataTable.AddString( temp );
     859            i2=compiler.GetObjectModule().dataTable.AddString( temp );
    860860            HeapDefaultFree(temp);
    861861
     
    10071007            char *temp;
    10081008            temp=(char *)i64data;
    1009             i2=compiler.objectModule.dataTable.AddString( temp );
     1009            i2=compiler.GetObjectModule().dataTable.AddString( temp );
    10101010            HeapDefaultFree(temp);
    10111011
     
    12781278    }
    12791279
    1280     BOOST_FOREACH( const Variable *pVar, compiler.objectModule.meta.GetGlobalVars() ){
     1280    BOOST_FOREACH( const Variable *pVar, compiler.GetObjectModule().meta.GetGlobalVars() ){
    12811281        if( pVar->GetType().IsObject() || pVar->GetType().IsPointer() || pVar->GetType().IsStruct() ){
    12821282            // オブジェクトまたはポインタだったとき
  • trunk/abdev/BasicCompiler64/MakePeHdr.cpp

    r263 r266  
    105105    extern HANDLE hHeap;
    106106    extern BOOL bDebugCompile;
    107     extern BOOL bDll;
    108107    extern DWORD ImageBase;
    109108    extern int obp_AllocSize;
     
    123122
    124123    //エクスポート セクションを利用するかどうか
    125     if(bDll) bUse_ExportSection=1;
     124    if( compiler.IsDll() ) bUse_ExportSection=1;
    126125    else bUse_ExportSection=0;
    127126
     
    129128    //////////////////
    130129    // データテーブル
    131     compiler.objectModule.dataTable.Clear();
     130    compiler.GetObjectModule().dataTable.Clear();
    132131    if(bDebugCompile){
    133         compiler.objectModule.dataTable.Add( (long)0x00000002 );
     132        compiler.GetObjectModule().dataTable.Add( (long)0x00000002 );
    134133    }
    135134
     
    155154
    156155    //関数ポインタ情報を初期化
    157     compiler.objectModule.meta.GetProcPointers().clear();
     156    compiler.GetObjectModule().meta.GetProcPointers().clear();
    158157
    159158    // 名前空間情報を取得
    160159    NamespaceSupporter::CollectNamespaces(
    161         Smoothie::Lexical::source.GetBuffer(),
    162         compiler.objectModule.meta.GetNamespaces()
     160        compiler.GetObjectModule().source.GetBuffer(),
     161        compiler.GetObjectModule().meta.GetNamespaces()
    163162    );
    164163
     
    166165    //   CollectProcedures関数の中で参照されるオブジェクト名を事前に取得する。
    167166    //     ※オブジェクトの内容までは取得しない
    168     compiler.objectModule.meta.GetClasses().CollectClassesForNameOnly( Smoothie::Lexical::source );
     167    compiler.GetObjectModule().meta.GetClasses().CollectClassesForNameOnly( compiler.GetObjectModule().source );
    169168
    170169    //TypeDef情報を初期化
    171     compiler.objectModule.meta.GetTypeDefs().Init();
     170    compiler.GetObjectModule().meta.GetTypeDefs().Init();
    172171
    173172    //定数情報を取得
     
    177176    compiler.pCompilingClass = NULL;
    178177    CollectProcedures(
    179         Smoothie::Lexical::source,
    180         compiler.objectModule.meta.GetUserProcs(),
    181         compiler.objectModule.meta.GetDllProcs()
     178        compiler.GetObjectModule().source,
     179        compiler.GetObjectModule().meta.GetUserProcs(),
     180        compiler.GetObjectModule().meta.GetDllProcs()
    182181    );
    183182
    184183    // クラス情報を取得(※注 - CollectProceduresの後に呼び出す)
    185     compiler.objectModule.meta.GetClasses().GetAllClassInfo();
     184    compiler.GetObjectModule().meta.GetClasses().GetAllClassInfo();
    186185
    187186    // サブルーチン(ユーザー定義、DLL関数)のイテレータの準備
    188     compiler.objectModule.meta.GetUserProcs().Iterator_Init();
    189     compiler.objectModule.meta.GetDllProcs().Iterator_Init();
     187    compiler.GetObjectModule().meta.GetUserProcs().Iterator_Init();
     188    compiler.GetObjectModule().meta.GetDllProcs().Iterator_Init();
    190189
    191190/*
    192     if( !compiler.objectModule.meta.WriteXml( Jenga::Common::Environment::GetAppDir() + "\\meta_test.xml" ) )
     191    if( !compiler.GetObjectModule().meta.WriteXml( Jenga::Common::Environment::GetAppDir() + "\\meta_test.xml" ) )
    193192    {
    194193        MessageBox(0,"XML書き込みに失敗","test",0);
     
    200199    }
    201200
    202     if( !compiler.objectModule.meta.WriteBinaly( Jenga::Common::Environment::GetAppDir() + "\\meta_test.dat" ) )
     201    if( !compiler.GetObjectModule().meta.WriteBinaly( Jenga::Common::Environment::GetAppDir() + "\\meta_test.dat" ) )
    203202    {
    204203        MessageBox(0,"バイナリ書き込みに失敗","test",0);
     
    209208        MessageBox(0,"バイナリ読み込みに失敗","test",0);
    210209    }
    211     if( !compiler.objectModule.meta.WriteText( Jenga::Common::Environment::GetAppDir() + "\\meta_test.dat" ) )
     210    if( !compiler.GetObjectModule().meta.WriteText( Jenga::Common::Environment::GetAppDir() + "\\meta_test.dat" ) )
    212211    {
    213212        MessageBox(0,"バイナリ書き込みに失敗","test",0);
     
    218217        MessageBox(0,"バイナリ読み込みに失敗","test",0);
    219218    }
    220     compiler.objectModule.meta = (*pTempMeta);*/
     219    compiler.GetObjectModule().meta = (*pTempMeta);*/
    221220
    222221
     
    353352    UserProc::CompileStartForGlobalArea();
    354353
    355     if(!bDll){
     354    if( !compiler.IsDll() ){
    356355        // 名前空間が初期化されているかをチェック
    357356        if( compiler.GetNamespaceSupporter().GetLivingNamespaceScopes().size() ){
     
    379378
    380379        // コード生成対象を選択
    381         compiler.codeGenerator.Select( compiler.objectModule.globalNativeCode );
     380        compiler.codeGenerator.Select( compiler.GetObjectModule().globalNativeCode );
    382381
    383382        trace_for_sourcecodestep( "★★★ グローバル領域のコンパイルを開始" );
     
    402401
    403402        //クラスに属する静的メンバを定義
    404         compiler.objectModule.meta.GetClasses().InitStaticMember();
     403        compiler.GetObjectModule().meta.GetClasses().InitStaticMember();
    405404
    406405        //グローバル実行領域をコンパイル開始
     
    506505
    507506    vector<ObjectModule *> masterObjectModules;
    508     masterObjectModules.push_back( &compiler.objectModule );
     507    masterObjectModules.push_back( &compiler.GetObjectModule() );
    509508    compiler.linker.Link( masterObjectModules );
    510509
     
    520519    // 使用するDLL関数のチェック
    521520    ////////////////////////////////
    522     compiler.objectModule.meta.GetDllProcs().Iterator_Reset();
    523     while( compiler.objectModule.meta.GetDllProcs().Iterator_HasNext() )
     521    compiler.GetObjectModule().meta.GetDllProcs().Iterator_Reset();
     522    while( compiler.GetObjectModule().meta.GetDllProcs().Iterator_HasNext() )
    524523    {
    525         const DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().Iterator_GetNext();
     524        const DllProc *pDllProc = compiler.GetObjectModule().meta.GetDllProcs().Iterator_GetNext();
    526525
    527526        if( !pDllProc->IsUsing() ){
     
    594593            //辞書順にサーチ
    595594            temporary[0]=0;
    596             compiler.objectModule.meta.GetUserProcs().Iterator_Reset();
    597             while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() )
     595            compiler.GetObjectModule().meta.GetUserProcs().Iterator_Reset();
     596            while( compiler.GetObjectModule().meta.GetUserProcs().Iterator_HasNext() )
    598597            {
    599                 pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext();
     598                pUserProc = compiler.GetObjectModule().meta.GetUserProcs().Iterator_GetNext();
    600599                if(pUserProc->IsExport()){
    601600                    if(temporary[0]=='\0'){
     
    698697    int ImportDllNum=0;
    699698
    700     compiler.objectModule.meta.GetDllProcs().Iterator_Reset();
    701     while( compiler.objectModule.meta.GetDllProcs().Iterator_HasNext() )
     699    compiler.GetObjectModule().meta.GetDllProcs().Iterator_Reset();
     700    while( compiler.GetObjectModule().meta.GetDllProcs().Iterator_HasNext() )
    702701    {
    703         const DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().Iterator_GetNext();
     702        const DllProc *pDllProc = compiler.GetObjectModule().meta.GetDllProcs().Iterator_GetNext();
    704703
    705704        if( !pDllProc->IsUsing() ){
     
    737736        pImportDescriptor[i].Name=i*0x10;   //※すぐ下で再計算
    738737
    739         compiler.objectModule.meta.GetDllProcs().Iterator_Reset();
    740         while( compiler.objectModule.meta.GetDllProcs().Iterator_HasNext() )
     738        compiler.GetObjectModule().meta.GetDllProcs().Iterator_Reset();
     739        while( compiler.GetObjectModule().meta.GetDllProcs().Iterator_HasNext() )
    741740        {
    742             const DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().Iterator_GetNext();
     741            const DllProc *pDllProc = compiler.GetObjectModule().meta.GetDllProcs().Iterator_GetNext();
    743742
    744743            if( !pDllProc->IsUsing() ){
     
    775774    pHintTable=(char *)HeapAlloc(hHeap,0,HintAllocSize);
    776775    for(i=0,i5=0;i<ImportDllNum;i++){
    777         compiler.objectModule.meta.GetDllProcs().Iterator_Reset();
    778         while( compiler.objectModule.meta.GetDllProcs().Iterator_HasNext() )
     776        compiler.GetObjectModule().meta.GetDllProcs().Iterator_Reset();
     777        while( compiler.GetObjectModule().meta.GetDllProcs().Iterator_HasNext() )
    779778        {
    780             DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().Iterator_GetNext();
     779            DllProc *pDllProc = compiler.GetObjectModule().meta.GetDllProcs().Iterator_GetNext();
    781780
    782781            if( !pDllProc->IsUsing() ){
     
    815814
    816815
    817     if(bDll){
     816    if( compiler.IsDll() ){
    818817        //DLLの場合はリロケーション情報を仮生成
    819818        //※正式な生成は各セクションのメモリ上のサイズが決定してから再度行う。
     
    826825    //(デバッグ情報で利用される)
    827826    extern int AllInitGlobalVarSize;
    828     BOOST_FOREACH( Variable *pVar, compiler.objectModule.meta.GetGlobalVars() ){
     827    BOOST_FOREACH( Variable *pVar, compiler.GetObjectModule().meta.GetGlobalVars() ){
    829828        if(pVar->GetOffsetAddress()&0x80000000){
    830829            pVar->SetOffsetAddress(
     
    839838    // デバッグセクションを生成
    840839    ////////////////////////////////////
    841 
    842     //機械語コードとBasicコードの関係を整理
    843     extern SourceLines oldSourceLines;
    844     int MinObp,MaxObp;
    845     SourceLines tempSourceLines;
    846     MaxObp=0;
    847     while(1){
    848         for(i3=0,MinObp=0x0FFFFFFF;i3<oldSourceLines.size();i3++){
    849             if(oldSourceLines[i3].GetNativeCodePos()<MinObp&&MaxObp<oldSourceLines[i3].GetNativeCodePos()){
    850                 MinObp=oldSourceLines[i3].GetNativeCodePos();
    851                 i4=i3;
    852             }
    853         }
    854         if(MinObp==0x0FFFFFFF) break;
    855         tempSourceLines.push_back( oldSourceLines[i4] );
    856         MaxObp=tempSourceLines.back().GetNativeCodePos();
    857     }
    858     oldSourceLines = tempSourceLines;
    859840
    860841    //デバッグセクションを生成
     
    903884
    904885    //データセクションのファイル上のサイズ
    905     if(compiler.objectModule.dataTable.GetSize()%FILE_ALIGNMENT) FileSize_DataSection=compiler.objectModule.dataTable.GetSize()+(FILE_ALIGNMENT-compiler.objectModule.dataTable.GetSize()%FILE_ALIGNMENT);
    906     else FileSize_DataSection=compiler.objectModule.dataTable.GetSize();
     886    if(compiler.GetObjectModule().dataTable.GetSize()%FILE_ALIGNMENT) FileSize_DataSection=compiler.GetObjectModule().dataTable.GetSize()+(FILE_ALIGNMENT-compiler.GetObjectModule().dataTable.GetSize()%FILE_ALIGNMENT);
     887    else FileSize_DataSection=compiler.GetObjectModule().dataTable.GetSize();
    907888    if(FileSize_DataSection) bUse_DataSection=1;
    908889    else bUse_DataSection=0;
     
    10651046            LookupSize;         //ルックアップテーブル
    10661047
    1067         compiler.objectModule.meta.GetDllProcs().Iterator_Reset();
    1068         while( compiler.objectModule.meta.GetDllProcs().Iterator_HasNext() )
     1048        compiler.GetObjectModule().meta.GetDllProcs().Iterator_Reset();
     1049        while( compiler.GetObjectModule().meta.GetDllProcs().Iterator_HasNext() )
    10691050        {
    1070             const DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().Iterator_GetNext();
     1051            const DllProc *pDllProc = compiler.GetObjectModule().meta.GetDllProcs().Iterator_GetNext();
    10711052
    10721053            if( !pDllProc->IsUsing() ){
     
    10861067    ////////////////////////////////////////
    10871068    //仮想関数データテーブルスケジュール
    1088     compiler.objectModule.meta.GetClasses().ActionVtblSchedule(ImageBase,MemPos_CodeSection);
     1069    compiler.GetObjectModule().meta.GetClasses().ActionVtblSchedule(ImageBase,MemPos_CodeSection);
    10891070
    10901071
     
    11301111
    11311112
    1132     if(bDll){
     1113    if( compiler.IsDll() ){
    11331114        //DLLの場合はリロケーション情報を生成
    11341115        pobj_Reloc->ResetRelocBuffer();
     
    12691250    ImagePeHdr.FileHeader.NumberOfSymbols=      0x00000000;
    12701251    ImagePeHdr.FileHeader.SizeOfOptionalHeader= IMAGE_SIZEOF_NT_OPTIONAL64_HEADER;
    1271     if(bDll){
     1252    if( compiler.IsDll() ){
    12721253        ImagePeHdr.FileHeader.Characteristics=  IMAGE_FILE_EXECUTABLE_IMAGE|
    12731254                                                IMAGE_FILE_DLL|
     
    12861267    ImagePeHdr.OptionalHeader.SizeOfInitializedData=FileSize_DataSection;   //データサイズ(.dataのセッションサイズ)
    12871268    ImagePeHdr.OptionalHeader.SizeOfUninitializedData=0;                    //未初期化データのサイズ(なし)
    1288     if(bDll){
     1269    if( compiler.IsDll() ){
    12891270        if(DllMain_EntryPoint==-1)
    12901271            ImagePeHdr.OptionalHeader.AddressOfEntryPoint=0;
     
    16361617    if(bUse_DataSection){
    16371618        //データ テーブル
    1638         WriteFile(hFile,compiler.objectModule.dataTable.GetPtr(),compiler.objectModule.dataTable.GetSize(),(DWORD *)&i2,NULL);
     1619        WriteFile(hFile,compiler.GetObjectModule().dataTable.GetPtr(),compiler.GetObjectModule().dataTable.GetSize(),(DWORD *)&i2,NULL);
    16391620        i+=i2;
    16401621    }
     
    17481729
    17491730    //クラスに関するメモリを解放
    1750     compiler.objectModule.meta.GetClasses().Clear();
     1731    compiler.GetObjectModule().meta.GetClasses().Clear();
    17511732}
  • trunk/abdev/BasicCompiler64/NumOpe.cpp

    r257 r266  
    2525        SetStringQuotes( parameter );
    2626
    27         Operator_New( *compiler.objectModule.meta.GetClasses().GetStringClassPtr(), "", parameter, Type( DEF_OBJECT, *compiler.objectModule.meta.GetClasses().GetStringClassPtr() ) );
     27        Operator_New( *compiler.GetObjectModule().meta.GetClasses().GetStringClassPtr(), "", parameter, Type( DEF_OBJECT, *compiler.GetObjectModule().meta.GetClasses().GetStringClassPtr() ) );
    2828
    2929        free( parameter );
     
    259259        Type leftType;
    260260        if( GetTermType( termLeft, leftType, isLiteral, &isClassName ) ){
    261             if( isClassName == false && compiler.objectModule.meta.GetBlittableTypes().IsExist( leftType ) ){
     261            if( isClassName == false && compiler.GetObjectModule().meta.GetBlittableTypes().IsExist( leftType ) ){
    262262                // 左側のオブジェクト部分がBlittable型のとき
    263263
     
    265265                lstrcpy( temporary, termLeft );
    266266                sprintf( termLeft, "%s(%s)",
    267                     compiler.objectModule.meta.GetBlittableTypes().Find( leftType ).GetCreateStaticMethodFullName().c_str(),
     267                    compiler.GetObjectModule().meta.GetBlittableTypes().Find( leftType ).GetCreateStaticMethodFullName().c_str(),
    268268                    temporary );
    269269            }
     
    293293
    294294    if( pIsClassName ){
    295         if( compiler.objectModule.meta.GetClasses().Find( termFull ) ){
     295        if( compiler.GetObjectModule().meta.GetClasses().Find( termFull ) ){
    296296            *pIsClassName = true;
    297297            return true;
     
    387387        }
    388388
    389         ConstMacro *pConstMacro = compiler.objectModule.meta.GetGlobalConstMacros().Find( procName );
     389        ConstMacro *pConstMacro = compiler.GetObjectModule().meta.GetGlobalConstMacros().Find( procName );
    390390        if( pConstMacro )
    391391        {
     
    574574        }
    575575
    576         i2 = compiler.objectModule.dataTable.AddBinary( binary, num * tempBaseType.GetSize() );
     576        i2 = compiler.GetObjectModule().dataTable.AddBinary( binary, num * tempBaseType.GetSize() );
    577577
    578578        //mov reg,i2
     
    603603
    604604            if(resultType.IsDouble()){
    605                 i3 = compiler.objectModule.dataTable.Add( i64data );
     605                i3 = compiler.GetObjectModule().dataTable.Add( i64data );
    606606
    607607                //movlpd xmm_reg,qword ptr[data table offset]
     
    617617                memcpy(&i32data,&flt,sizeof(long));
    618618
    619                 i3 = compiler.objectModule.dataTable.Add( i32data );
     619                i3 = compiler.GetObjectModule().dataTable.Add( i32data );
    620620
    621621                //movss xmm_reg,dword ptr[data table offset]
     
    798798
    799799                        type_stack[sp]=DEF_OBJECT;
    800                         index_stack[sp]=(LONG_PTR)compiler.objectModule.meta.GetClasses().GetStringClassPtr();
     800                        index_stack[sp]=(LONG_PTR)compiler.GetObjectModule().meta.GetClasses().GetStringClassPtr();
    801801                        bLiteralCalculation=0;
    802802
     
    811811                    bLiteralCalculation=0;
    812812
    813                     i2 = compiler.objectModule.dataTable.AddString( term, i3 );
     813                    i2 = compiler.GetObjectModule().dataTable.AddString( term, i3 );
    814814
    815815                    //mov reg,i2
     
    904904                        }
    905905                        else{
    906                             index_stack[sp] = (LONG_PTR)compiler.objectModule.meta.GetClasses().GetObjectClassPtr();
     906                            index_stack[sp] = (LONG_PTR)compiler.GetObjectModule().meta.GetClasses().GetObjectClassPtr();
    907907                        }
    908908
     
    927927                    //////////////
    928928
    929                     i3 = compiler.objectModule.meta.GetGlobalConsts().GetBasicType(term);
     929                    i3 = compiler.GetObjectModule().meta.GetGlobalConsts().GetBasicType(term);
    930930                    if(i3){
    931                         if( compiler.objectModule.meta.GetGlobalConsts().IsStringPtr( term ) ){
     931                        if( compiler.GetObjectModule().meta.GetGlobalConsts().IsStringPtr( term ) ){
    932932                            //リテラル文字列
    933933
    934                             double dbl = compiler.objectModule.meta.GetGlobalConsts().GetDoubleData(term);
     934                            double dbl = compiler.GetObjectModule().meta.GetGlobalConsts().GetDoubleData(term);
    935935                            memcpy(&i64data,&dbl,sizeof(double));
    936936
     
    946946                        if(IsRealNumberType(i3)){
    947947                            //実数
    948                             double dbl = compiler.objectModule.meta.GetGlobalConsts().GetDoubleData(term);
     948                            double dbl = compiler.GetObjectModule().meta.GetGlobalConsts().GetDoubleData(term);
    949949                            memcpy(&i64data,&dbl,sizeof(double));
    950950                            goto Literal;
     
    952952                        else if(IsWholeNumberType(i3)){
    953953                            //整数
    954                             i64data = compiler.objectModule.meta.GetGlobalConsts().GetWholeData(term);
     954                            i64data = compiler.GetObjectModule().meta.GetGlobalConsts().GetWholeData(term);
    955955                            goto Literal;
    956956                        }
     
    993993                        }
    994994                        else{
    995                             i3 = compiler.objectModule.dataTable.Add( i64data );
     995                            i3 = compiler.GetObjectModule().dataTable.Add( i64data );
    996996
    997997                            //movlpd xmm_reg,qword ptr[data table offset]
     
    10151015                        }
    10161016                        else{
    1017                             i3=compiler.objectModule.dataTable.Add( i32data );
     1017                            i3=compiler.GetObjectModule().dataTable.Add( i32data );
    10181018
    10191019                            //movss xmm_reg,dword ptr[data table offset]
  • trunk/abdev/BasicCompiler64/NumOpe_Arithmetic.cpp

    r257 r266  
    470470        double dbl;
    471471        dbl=-1;
    472         i32data = compiler.objectModule.dataTable.Add( dbl );
     472        i32data = compiler.GetObjectModule().dataTable.Add( dbl );
    473473
    474474        //mulsd xmm_reg,qword ptr[data table offset]   ※data = -1
     
    495495        float flt;
    496496        flt=-1;
    497         i32data = compiler.objectModule.dataTable.Add( flt );
     497        i32data = compiler.GetObjectModule().dataTable.Add( flt );
    498498
    499499        //mulss xmm_reg,dword ptr[data table offset]   ※data = -1
  • trunk/abdev/BasicCompiler64/NumOpe_TypeOperation.cpp

    r257 r266  
    8989            //addsd xmm_reg,qword ptr[offset]   ※offset value:43f0000000000000
    9090            _int64 i64data=0x43f0000000000000;
    91             long temp=compiler.objectModule.dataTable.Add( i64data );
     91            long temp=compiler.GetObjectModule().dataTable.Add( i64data );
    9292            compiler.codeGenerator.PutOld(
    9393                (char)0xF2,
     
    149149            //addss xmm_reg,dword ptr[offset]   ※offset value:5f800000
    150150            long i32data=0x5f800000;
    151             long temp=compiler.objectModule.dataTable.Add( i32data );
     151            long temp=compiler.GetObjectModule().dataTable.Add( i32data );
    152152            compiler.codeGenerator.PutOld(
    153153                (char)0xF3,
  • trunk/abdev/BasicCompiler_Common/BasicCompiler.cpp

    r232 r266  
    44
    55#include <Program.h>
     6#include <Compiler.h>
    67
    78#include "BasicCompiler.h"
     
    306307}
    307308void MakeMessageText(char *buffer,char *msg,int flag){
    308     extern BOOL bDll;
    309309    char temporary[MAX_PATH];
    310310    if(bClipCompileView){
     
    321321        //日本語
    322322        if(flag==0){
    323             if(bDll) sprintf(buffer,"DLLファイル \"%s\"     [ %s ]",temporary,msg);
     323            if(compiler.IsDll())
     324            {
     325                sprintf(buffer,"DLLファイル \"%s\"     [ %s ]",temporary,msg);
     326            }
    324327            else sprintf(buffer,"実行ファイル \"%s\"     [ %s ]",temporary,msg);
    325328        }
     
    329332        //英語
    330333        if(flag==0){
    331             if(bDll) sprintf(buffer,"DLL file \"%s\"     [ %s ]",temporary,msg);
     334            if(compiler.IsDll()) sprintf(buffer,"DLL file \"%s\"     [ %s ]",temporary,msg);
    332335            else sprintf(buffer,"Execution file \"%s\"     [ %s ]",temporary,msg);
    333336        }
     
    563566    //_Test();
    564567
    565     //MessageBox(0,"starting compiler/debugger","ActiveBasic",MB_OK);
     568    MessageBox(0,"starting compiler/debugger","ActiveBasic",MB_OK);
    566569    trace( "Start ActiveBasic Compiler!" );
    567570
     
    608611
    609612    BOOL bFromEditor=0;
    610     bDll=0;
    611613    OutputFileName[0]=0;
    612614    if(lpCmdLine[i]&&lpCmdLine[i]!='/'){
     
    711713
    712714        //DLL生成
    713         else if(lstrcmp(temp2,"dll")==0) bDll=1;
     715        else if(lstrcmp(temp2,"dll")==0)
     716        {
     717            compiler.SetTargetModuleType( Compiler::Dll );
     718        }
     719
     720        // StaticLibrary生成
     721        else if( lstrcmp( temp2, "static_library" ) ==0 )
     722        {
     723            compiler.SetTargetModuleType( Compiler::StaticLibrary );
     724        }
    714725
    715726        //Unicode
     
    752763    GetFullPath(szIncludeDir,(Jenga::Common::Environment::GetAppDir()+"\\").c_str());
    753764
    754     if(bDll){
     765    if( compiler.IsDll() ){
    755766        //DLLファイル名を取得
    756767        _splitpath(OutputFileName,NULL,NULL,szDllName,temporary);
  • trunk/abdev/BasicCompiler_Common/BasicCompiler.h

    r263 r266  
    2222BOOL bStrict;
    2323DWORD ImageBase;
    24 INCLUDEFILEINFO IncludeFileInfo;
    2524
    2625ERRORINFO *pErrorInfo;
     
    6867int cp;
    6968
    70 BOOL bDll;
    7169int typeOfPtrChar = MAKE_PTR_TYPE(DEF_SBYTE,1);
    7270int typeOfPtrUChar = MAKE_PTR_TYPE(DEF_BYTE,1);
  • trunk/abdev/BasicCompiler_Common/BreakPoint.cpp

    r263 r266  
    22
    33#include <jenga/include/common/Environment.h>
    4 #include <jenga/include/smoothie/Source.h>
    54
     5#include <Source.h>
    66#include <Compiler.h>
    77
  • trunk/abdev/BasicCompiler_Common/Debug.cpp

    r265 r266  
    350350    char temporary[1024];
    351351
    352     extern BOOL bDll;
    353352    char ExeFilePathForDll[MAX_PATH];
    354     if(bDll){
     353    if( compiler.IsDll() ){
    355354        //DLLをデバッグする場合
    356355        extern char szDebugExeForDll[1024];
     
    428427        memset(&si,0,sizeof(STARTUPINFO));
    429428        si.cb=sizeof(STARTUPINFO);
    430         if(!bDll){
     429        if( !compiler.IsDll() ){
    431430            //EXEファイルをデバッグ
    432431            CreateProcess(OutputFileName,szDebugCmdLine,NULL,NULL,0,NORMAL_PRIORITY_CLASS|DEBUG_ONLY_THIS_PROCESS,NULL,NULL,&si,&pi);
  • trunk/abdev/BasicCompiler_Common/DebugMiddleFile.cpp

    r265 r266  
    8484
    8585        // サイズ
    86         *(long *)(buffer+i2) = textString.size();
     86        *(long *)(buffer+i2) = (long)textString.size();
    8787        i2+=sizeof(long);
    8888
     
    9999        // バッファ
    100100        memcpy( buffer+i2, textString.c_str(), textString.size() );
    101         i2 += textString.size();
     101        i2 += (int)textString.size();
    102102    }
    103103
     
    111111        i2+=lstrlen(buffer+i2)+1;
    112112    }
    113     buffer[i2++]=0;
    114113    for(i3=0;;i3++){
    115114        buffer[i2++]=(char)IncludeFileInfo.LineOfFile[i3];
     
    122121        }
    123122    }
    124 
    125     //ソースコード
    126     {
    127         //バッファが足りない場合は再確保
    128         int bufferLen = lstrlen( basbuf );
    129         if(BufferSize<i2+(int)bufferLen+32768){
    130             while( BufferSize<i2+(int)bufferLen+32768 )
    131             {
    132                 BufferSize+=32768;
    133             }
    134 
    135             buffer=(char *)HeapReAlloc(hHeap,0,buffer,BufferSize);
    136         }
    137     }
    138     lstrcpy(buffer+i2,basbuf);
    139     i2+=lstrlen( buffer + i2 )+1;
    140123
    141124
     
    246229        if(_IncludeFileInfo.LineOfFile[i3]==-1) break;
    247230    }
    248 
    249     //ソースコード
    250     i2++;
    251     source.SetBuffer( buffer + i2 );
    252     i2+=lstrlen(buffer+i2)+1;
    253231
    254232    //コードと行番号の関係
     
    416394    IncludeFileInfo=this->_IncludeFileInfo;
    417395
    418     //ソースコード
    419     Smoothie::Lexical::source = source;
    420 
    421396    //コードと行番号の関係
    422397    extern SourceLines oldSourceLines;
  • trunk/abdev/BasicCompiler_Common/DebugSection.h

    r265 r266  
    11#pragma once
    22
    3 #include <jenga/include/smoothie/Source.h>
    4 
     3#include <Source.h>
    54#include <Compiler.h>
    65
     
    3130    //インクルード情報
    3231    INCLUDEFILEINFO _IncludeFileInfo;
    33 
    34     //ソースコード
    35     BasicSource source;
    3632
    3733    //コードと行番号の関係
  • trunk/abdev/BasicCompiler_Common/Enum.cpp

    r215 r266  
    115115    iEnumParentNum=0;
    116116
    117     const char *source = Smoothie::Lexical::source.GetBuffer();
     117    const char *source = compiler.GetObjectModule().source.GetBuffer();
    118118
    119119    // 名前空間管理
  • trunk/abdev/BasicCompiler_Common/MakeExe.cpp

    r265 r266  
    2424
    2525    //最後尾に貼り付け
    26     Smoothie::Lexical::source.Addition( temp );
     26    compiler.GetObjectModule().source.Addition( temp );
    2727
    2828    HeapDefaultFree(temp);
     
    3838    char temp2[MAX_PATH];
    3939
     40    // 開始時刻を記録
     41    DWORD beforeTickCount = GetTickCount();
     42
    4043    //プログレスバーの設定
    4144    PostMessage(GetDlgItem(hMainDlg,IDC_PROGRESS),PBM_SETRANGE,0,MAKELPARAM(0,6));
     
    5457    //プログラムをファイルから読み込む
    5558    extern char SourceFileName[MAX_PATH];
    56     if( !Smoothie::Lexical::source.ReadFile( SourceFileName ) ){
     59    if( !compiler.GetObjectModule().source.ReadFile( SourceFileName ) ){
    5760        SetError(201,SourceFileName,-1);
    5861        goto EndCompile;
     
    6164    //イメージベースの設定
    6265    extern DWORD ImageBase;
    63     extern BOOL bDll;
    64     if(bDll) ImageBase=0x10000000;
     66    if(compiler.IsDll()) ImageBase=0x10000000;
    6567    else ImageBase=0x00400000;
    6668
     
    179181        if(bError==0){
    180182            //"コンパイルは正常に完了しました(エラー:%d、警告:%d)"
    181             sprintf(temp2,STRING_COMPILE_SUCCESS,ErrorNum-CompileMsgNum-WarningNum,WarningNum);
     183            sprintf(temp2,
     184                STRING_COMPILE_SUCCESS,
     185                ErrorNum-CompileMsgNum-WarningNum,
     186                WarningNum,
     187                ((double)(GetTickCount() - beforeTickCount))/1000
     188            );
    182189        }
    183190        else{
  • trunk/abdev/BasicCompiler_Common/PESchedule.cpp

    r253 r266  
    11#include "stdafx.h"
     2
     3#include <Compiler.h>
    24
    35#include "../BasicCompiler_Common/common.h"
     
    5557
    5658void CReloc::AddSchedule_CodeSection(DWORD addr){
    57     extern BOOL bDll;
    58     if(!bDll) return;
     59    if( !compiler.IsDll() ) return;
    5960
    6061    codeSectionAddresses.push_back( addr );
    6162}
    6263void CReloc::AddSchedule_DataSection(DWORD addr){
    63     extern BOOL bDll;
    64     if(!bDll) return;
     64    if( !compiler.IsDll() ) return;
    6565
    6666    dataSectionAddresses.push_back( addr );
     
    6868
    6969void CReloc::__add(DWORD addr){
    70     extern BOOL bDll;
    71     if(!bDll) return;
     70    if( !compiler.IsDll() ) return;
    7271
    7372    BOOL sw;
  • trunk/abdev/BasicCompiler_Common/StrOperation.cpp

    r206 r266  
    22
    33#include <jenga/include/smoothie/LexicalAnalysis.h>
    4 #include <jenga/include/smoothie/Source.h>
     4
     5#include <Source.h>
    56
    67#include "../BasicCompiler_Common/common.h"
  • trunk/abdev/BasicCompiler_Common/common_msg_jpn.h

    r232 r266  
    3232
    3333#define STRING_COMPILE_STOP                 "コンパイルはユーザーにより中断されました。"
    34 #define STRING_COMPILE_SUCCESS              "コンパイルは正常に完了しました(エラー:%d、警告:%d)。"
     34#define STRING_COMPILE_SUCCESS              "コンパイルは正常に完了しました(エラー:%d、警告:%d、所要時間:%.2fsec)。"
    3535#define STRING_COMPILE_ERROR                "コンパイルは中断されました(エラー:%d、警告:%d)。"
    3636
  • trunk/abdev/BasicCompiler_Common/include/Class.h

    r232 r266  
    66#include <Method.h>
    77#include <Member.h>
     8#include <Source.h>
    89
    910class UserProc;
  • trunk/abdev/BasicCompiler_Common/include/Compiler.h

    r265 r266  
    2222        : pObjectModule( new ObjectModule )
    2323        , pNowObjectModule( pObjectModule )
     24        , targetModuleType( Exe )
    2425    {
    2526    }
     
    4041    Linker linker;
    4142
     43    // オブジェクトモジュール
    4244    ObjectModule &GetObjectModule()
    4345    {
     
    4951    }
    5052
     53
     54    // ターゲット
     55    enum TargetModuleType
     56    {
     57        Exe,
     58        Dll,
     59        StaticLibrary,
     60    };
     61
     62    TargetModuleType targetModuleType;
     63
     64    bool IsExe() const
     65    {
     66        if( targetModuleType == Exe )
     67        {
     68            return true;
     69        }
     70        return false;
     71    }
     72    bool IsDll() const
     73    {
     74        if( targetModuleType == Dll )
     75        {
     76            return true;
     77        }
     78        return false;
     79    }
     80    bool IsStaticLibrary() const
     81    {
     82        if( targetModuleType == StaticLibrary )
     83        {
     84            return true;
     85        }
     86        return false;
     87    }
     88    void SetTargetModuleType( TargetModuleType targetModuleType )
     89    {
     90        this->targetModuleType = targetModuleType;
     91    }
     92
     93
     94
    5195    static bool StringToType( const std::string &typeName, Type &type );
    5296    static const std::string TypeToString( const Type &type );
  • trunk/abdev/BasicCompiler_Common/include/Linker.h

    r263 r266  
    1212    // データテーブル
    1313    DataTable dataTable;
     14
     15    // ソースコード
     16    BasicSource source;
    1417
    1518    // XMLシリアライズ用
     
    2730        ar & BOOST_SERIALIZATION_NVP( globalNativeCode );
    2831        ar & BOOST_SERIALIZATION_NVP( dataTable );
     32        ar & BOOST_SERIALIZATION_NVP( source );
    2933    }
    3034};
  • trunk/abdev/BasicCompiler_Common/include/Member.h

    r206 r266  
    33#include <string>
    44#include <vector>
    5 
    6 #include <jenga/include/smoothie/Source.h>
    75
    86#include <option.h>
  • trunk/abdev/BasicCompiler_Common/include/Procedure.h

    r259 r266  
    11#pragma once
    2 
    3 #include <jenga/include/smoothie/Source.h>
    42
    53#include <Hashmap.h>
     
    1210#include <Variable.h>
    1311#include <CodeGenerator.h>
     12#include <Source.h>
    1413
    1514class CClass;
     
    4342
    4443    // XMLシリアライズ用
    45 private:
    4644private:
    4745    friend class boost::serialization::access;
  • trunk/abdev/BasicCompiler_Common/src/Class.cpp

    r265 r266  
    22
    33#include <jenga/include/smoothie/Smoothie.h>
    4 #include <jenga/include/smoothie/Source.h>
    54#include <jenga/include/smoothie/SmoothieException.h>
    65#include <jenga/include/smoothie/LexicalAnalysis.h>
    76
     7#include <Source.h>
    88#include <Class.h>
    99#include <Compiler.h>
Note: See TracChangeset for help on using the changeset viewer.