Changeset 266 in dev for trunk/abdev/BasicCompiler64


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

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

Location:
trunk/abdev/BasicCompiler64
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • 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,
Note: See TracChangeset for help on using the changeset viewer.