Changeset 256 in dev for trunk/abdev/BasicCompiler32


Ignore:
Timestamp:
Aug 1, 2007, 11:19:01 PM (17 years ago)
Author:
dai_9181
Message:

MetaImplを廃止し、Metaにした。
ObjectModuleクラス、Linkerクラスを用意。

Location:
trunk/abdev/BasicCompiler32
Files:
8 edited

Legend:

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

    r248 r256  
    12541254                </File>
    12551255                <Filter
     1256                    Name="CoreClasses"
     1257                    >
     1258                    <File
     1259                        RelativePath="..\BasicCompiler_Common\src\CommonCodeGenerator.cpp"
     1260                        >
     1261                    </File>
     1262                </Filter>
     1263            </Filter>
     1264            <Filter
     1265                Name="Compiler Classes"
     1266                >
     1267                <Filter
    12561268                    Name="Langauge Classes"
    12571269                    >
     
    13261338                    <File
    13271339                        RelativePath="..\BasicCompiler_Common\src\Variable.cpp"
    1328                         >
    1329                     </File>
    1330                 </Filter>
    1331                 <Filter
    1332                     Name="CoreClasses"
    1333                     >
    1334                     <File
    1335                         RelativePath="..\BasicCompiler_Common\src\CommonCodeGenerator.cpp"
    13361340                        >
    13371341                    </File>
     
    13921396            </Filter>
    13931397            <Filter
    1394                 Name="Language Classes"
    1395                 >
    1396                 <File
    1397                     RelativePath="..\BasicCompiler_Common\include\Class.h"
    1398                     >
    1399                 </File>
    1400                 <File
    1401                     RelativePath="..\BasicCompiler_Common\include\CodeGenerator.h"
    1402                     >
    1403                 </File>
    1404                 <File
    1405                     RelativePath="..\BasicCompiler_Common\include\Compiler.h"
    1406                     >
    1407                 </File>
    1408                 <File
    1409                     RelativePath="..\BasicCompiler_Common\include\Const.h"
    1410                     >
    1411                 </File>
    1412                 <File
    1413                     RelativePath="..\BasicCompiler_Common\include\DataTable.h"
    1414                     >
    1415                 </File>
    1416                 <File
    1417                     RelativePath="..\BasicCompiler_Common\include\Exception.h"
    1418                     >
    1419                 </File>
    1420                 <File
    1421                     RelativePath="..\BasicCompiler_Common\include\LexicalScope.h"
    1422                     >
    1423                 </File>
    1424                 <File
    1425                     RelativePath="..\BasicCompiler_Common\include\Member.h"
    1426                     >
    1427                 </File>
    1428                 <File
    1429                     RelativePath="..\BasicCompiler_Common\include\MetaImpl.h"
    1430                     >
    1431                 </File>
    1432                 <File
    1433                     RelativePath="..\BasicCompiler_Common\include\Method.h"
    1434                     >
    1435                 </File>
    1436                 <File
    1437                     RelativePath="..\BasicCompiler_Common\include\Namespace.h"
    1438                     >
    1439                 </File>
    1440                 <File
    1441                     RelativePath="..\BasicCompiler_Common\include\NamespaceSupporter.h"
    1442                     >
    1443                 </File>
    1444                 <File
    1445                     RelativePath="..\BasicCompiler_Common\include\NativeCode.h"
    1446                     >
    1447                 </File>
    1448                 <File
    1449                     RelativePath="..\BasicCompiler_Common\include\Parameter.h"
    1450                     >
    1451                 </File>
    1452                 <File
    1453                     RelativePath="..\BasicCompiler_Common\include\Procedure.h"
    1454                     >
    1455                 </File>
    1456                 <File
    1457                     RelativePath="..\BasicCompiler_Common\include\Program.h"
    1458                     >
    1459                 </File>
    1460                 <File
    1461                     RelativePath="..\BasicCompiler_Common\include\Prototype.h"
    1462                     >
    1463                 </File>
    1464                 <File
    1465                     RelativePath="..\BasicCompiler_Common\include\SmoothieImpl.h"
    1466                     >
    1467                 </File>
    1468                 <File
    1469                     RelativePath="..\BasicCompiler_Common\include\Symbol.h"
    1470                     >
    1471                 </File>
    1472                 <File
    1473                     RelativePath="..\BasicCompiler_Common\include\Type.h"
    1474                     >
    1475                 </File>
    1476                 <File
    1477                     RelativePath="..\BasicCompiler_Common\include\TypeDef.h"
    1478                     >
    1479                 </File>
    1480                 <File
    1481                     RelativePath="..\BasicCompiler_Common\include\Variable.h"
     1398                Name="Common Classes"
     1399                >
     1400                <File
     1401                    RelativePath="..\BasicCompiler_Common\include\BoostSerializationSupport.h"
     1402                    >
     1403                </File>
     1404                <File
     1405                    RelativePath="..\BasicCompiler_Common\include\Hashmap.h"
     1406                    >
     1407                </File>
     1408                <File
     1409                    RelativePath="..\BasicCompiler_Common\include\logger.h"
    14821410                    >
    14831411                </File>
    14841412            </Filter>
    14851413            <Filter
    1486                 Name="Common Classes"
    1487                 >
    1488                 <File
    1489                     RelativePath="..\BasicCompiler_Common\include\BoostSerializationSupport.h"
    1490                     >
    1491                 </File>
    1492                 <File
    1493                     RelativePath="..\BasicCompiler_Common\include\Hashmap.h"
    1494                     >
    1495                 </File>
    1496                 <File
    1497                     RelativePath="..\BasicCompiler_Common\include\logger.h"
    1498                     >
    1499                 </File>
     1414                Name="Compiler Classes"
     1415                >
     1416                <File
     1417                    RelativePath="..\BasicCompiler_Common\include\CodeGenerator.h"
     1418                    >
     1419                </File>
     1420                <File
     1421                    RelativePath="..\BasicCompiler_Common\include\Compiler.h"
     1422                    >
     1423                </File>
     1424                <File
     1425                    RelativePath="..\BasicCompiler_Common\include\Linker.h"
     1426                    >
     1427                </File>
     1428                <Filter
     1429                    Name="Language Classes"
     1430                    >
     1431                    <File
     1432                        RelativePath="..\BasicCompiler_Common\include\Class.h"
     1433                        >
     1434                    </File>
     1435                    <File
     1436                        RelativePath="..\BasicCompiler_Common\include\Const.h"
     1437                        >
     1438                    </File>
     1439                    <File
     1440                        RelativePath="..\BasicCompiler_Common\include\DataTable.h"
     1441                        >
     1442                    </File>
     1443                    <File
     1444                        RelativePath="..\BasicCompiler_Common\include\Exception.h"
     1445                        >
     1446                    </File>
     1447                    <File
     1448                        RelativePath="..\BasicCompiler_Common\include\LexicalScope.h"
     1449                        >
     1450                    </File>
     1451                    <File
     1452                        RelativePath="..\BasicCompiler_Common\include\Member.h"
     1453                        >
     1454                    </File>
     1455                    <File
     1456                        RelativePath="..\BasicCompiler_Common\include\Meta.h"
     1457                        >
     1458                    </File>
     1459                    <File
     1460                        RelativePath="..\BasicCompiler_Common\include\Method.h"
     1461                        >
     1462                    </File>
     1463                    <File
     1464                        RelativePath="..\BasicCompiler_Common\include\Namespace.h"
     1465                        >
     1466                    </File>
     1467                    <File
     1468                        RelativePath="..\BasicCompiler_Common\include\NamespaceSupporter.h"
     1469                        >
     1470                    </File>
     1471                    <File
     1472                        RelativePath="..\BasicCompiler_Common\include\NativeCode.h"
     1473                        >
     1474                    </File>
     1475                    <File
     1476                        RelativePath="..\BasicCompiler_Common\include\Parameter.h"
     1477                        >
     1478                    </File>
     1479                    <File
     1480                        RelativePath="..\BasicCompiler_Common\include\Procedure.h"
     1481                        >
     1482                    </File>
     1483                    <File
     1484                        RelativePath="..\BasicCompiler_Common\include\Program.h"
     1485                        >
     1486                    </File>
     1487                    <File
     1488                        RelativePath="..\BasicCompiler_Common\include\Prototype.h"
     1489                        >
     1490                    </File>
     1491                    <File
     1492                        RelativePath="..\BasicCompiler_Common\include\SmoothieImpl.h"
     1493                        >
     1494                    </File>
     1495                    <File
     1496                        RelativePath="..\BasicCompiler_Common\include\Symbol.h"
     1497                        >
     1498                    </File>
     1499                    <File
     1500                        RelativePath="..\BasicCompiler_Common\include\Type.h"
     1501                        >
     1502                    </File>
     1503                    <File
     1504                        RelativePath="..\BasicCompiler_Common\include\TypeDef.h"
     1505                        >
     1506                    </File>
     1507                    <File
     1508                        RelativePath="..\BasicCompiler_Common\include\Variable.h"
     1509                        >
     1510                    </File>
     1511                </Filter>
    15001512            </Filter>
    15011513        </Filter>
  • trunk/abdev/BasicCompiler32/Compile_Calc.cpp

    r225 r256  
    461461            }
    462462            else{
    463                 if( compiler.GetMeta().GetGlobalConsts().IsExist(variable)
    464                     || compiler.GetMeta().GetGlobalConstMacros().IsExist(variable) )
     463                if( compiler.objectModule.meta.GetGlobalConsts().IsExist(variable)
     464                    || compiler.objectModule.meta.GetGlobalConstMacros().IsExist(variable) )
    465465                {
    466466                    //定数リストに該当したとき
     
    606606
    607607
    608     if( varType.IsObject() && compiler.GetMeta().GetBlittableTypes().IsExist( calcType ) ){
     608    if( varType.IsObject() && compiler.objectModule.meta.GetBlittableTypes().IsExist( calcType ) ){
    609609        // Blittable型をオブジェクトとして扱う
    610610        vector<const UserProc *> userProcs;
    611         compiler.GetMeta().GetBlittableTypes().GetClass( calcType ).GetStaticMethods().Enum( "_Create", userProcs );
     611        compiler.objectModule.meta.GetBlittableTypes().GetClass( calcType ).GetStaticMethods().Enum( "_Create", userProcs );
    612612        if( userProcs.size() != 1 ){
    613613            SetError();
  • trunk/abdev/BasicCompiler32/Compile_CallProc.cpp

    r253 r256  
    117117                pobj_c = &varType.GetClass();
    118118                if( NATURAL_TYPE( varType.GetBasicType() ) != DEF_OBJECT ){
    119                     pobj_c=compiler.GetMeta().GetClasses().Find(ObjectName);
     119                    pobj_c=compiler.objectModule.meta.GetClasses().Find(ObjectName);
    120120                    if( pobj_c ){
    121121                        isStatic = true;
  • trunk/abdev/BasicCompiler32/Compile_Func.cpp

    r250 r256  
    185185        tempParm=temp2;
    186186
    187         type.SetType( DEF_OBJECT, compiler.GetMeta().GetClasses().GetStringClassPtr() );
     187        type.SetType( DEF_OBJECT, compiler.objectModule.meta.GetClasses().GetStringClassPtr() );
    188188    }
    189189
     
    235235
    236236        //オーバーロードを解決
    237         pUserProc=OverloadSolution(name,subs,compiler.GetMeta().GetProcPointers()[ProcPtr_BaseIndex]->Params(), Type() );
     237        pUserProc=OverloadSolution(name,subs,compiler.objectModule.meta.GetProcPointers()[ProcPtr_BaseIndex]->Params(), Type() );
    238238
    239239        if(!pUserProc){
  • trunk/abdev/BasicCompiler32/Compile_ProcOp.cpp

    r253 r256  
    5858
    5959        //クラスに属する静的メンバを定義
    60         compiler.GetMeta().GetClasses().InitStaticMember();
     60        compiler.objectModule.meta.GetClasses().InitStaticMember();
    6161
    6262        GetGlobalDataForDll();
     
    7171        //静的ローカルオブジェクトのコンストラクタ呼び出し
    7272
    73         BOOST_FOREACH( Variable *pVar, compiler.GetMeta().GetGlobalVars() ){
     73        BOOST_FOREACH( Variable *pVar, compiler.objectModule.meta.GetGlobalVars() ){
    7474            if(memicmp(pVar->GetName().c_str(),"Static%",7)==0){
    7575                //コンストラクタ呼び出し
     
    219219        && userProc.GetParentClass().GetName() == "_System_TypeBase" ){
    220220
    221             compiler.GetMeta().GetClasses().Compile_System_InitializeUserTypes();
     221            compiler.objectModule.meta.GetClasses().Compile_System_InitializeUserTypes();
    222222    }
    223223    else if( userProc.GetName() == "RegisterGlobalRoots"
     
    270270
    271271    //コンパイルスタートをクラス管理クラスに追加
    272     compiler.GetMeta().GetClasses().StartCompile( pUserProc );
     272    compiler.objectModule.meta.GetClasses().StartCompile( pUserProc );
    273273
    274274    //コンパイル中の関数
     
    789789
    790790repeat:
    791     compiler.GetMeta().GetUserProcs().Iterator_Reset();
    792     while( compiler.GetMeta().GetUserProcs().Iterator_HasNext() )
     791    compiler.objectModule.meta.GetUserProcs().Iterator_Reset();
     792    while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() )
    793793    {
    794         UserProc *pUserProc = compiler.GetMeta().GetUserProcs().Iterator_GetNext();
     794        UserProc *pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext();
    795795        CompileBufferInProcedure( *pUserProc );
    796796    }
     
    808808        //プロシージャコンパイルによって、プロシージャコンパイルが必要になる場合
    809809
    810         compiler.GetMeta().GetUserProcs().Iterator_Reset();
    811         while( compiler.GetMeta().GetUserProcs().Iterator_HasNext() )
     810        compiler.objectModule.meta.GetUserProcs().Iterator_Reset();
     811        while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() )
    812812        {
    813             UserProc *pUserProc = compiler.GetMeta().GetUserProcs().Iterator_GetNext();
     813            UserProc *pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext();
    814814            CompileBufferInProcedure( *pUserProc );
    815815        }
  • trunk/abdev/BasicCompiler32/Compile_Var.cpp

    r253 r256  
    362362    // 名前空間を分離
    363363    char namespaceStr[VN_SIZE]="", simpleName[VN_SIZE];
    364     compiler.GetMeta().GetNamespaces().SplitNamespace( variable, namespaceStr, simpleName );
     364    compiler.objectModule.meta.GetNamespaces().SplitNamespace( variable, namespaceStr, simpleName );
    365365
    366366    // 先頭オブジェクトまたはクラス名と入れ子メンバに分割
     
    456456        //Const修飾子のメソッド内でメンバ書き込みアクセスが発生したとき
    457457        //(コンストラクタ、デストラクタ内を除く)
    458         const CMethod *pMethod = compiler.GetMeta().GetClasses().GetNowCompilingMethodInfo();
     458        const CMethod *pMethod = compiler.objectModule.meta.GetClasses().GetNowCompilingMethodInfo();
    459459        if( isWriteAccess &&
    460460            pMethod->IsConst() &&
     
    496496            GetNowStaticVarFullName(VarName,temporary);
    497497
    498             pVar = compiler.GetMeta().GetGlobalVars().Find( Symbol( temporary ) );
     498            pVar = compiler.objectModule.meta.GetGlobalVars().Find( Symbol( temporary ) );
    499499            if( pVar ){
    500500                goto GlobalOk;
     
    519519            }
    520520
    521             int typeDefIndex = compiler.GetMeta().GetTypeDefs().GetIndex( VarName );
     521            int typeDefIndex = compiler.objectModule.meta.GetTypeDefs().GetIndex( VarName );
    522522            if( typeDefIndex != -1 ){
    523523                // TypeDef後の型名だったとき
    524                 lstrcpy( VarName, compiler.GetMeta().GetTypeDefs()[typeDefIndex].GetBaseName().c_str() );
     524                lstrcpy( VarName, compiler.objectModule.meta.GetTypeDefs()[typeDefIndex].GetBaseName().c_str() );
    525525            }
    526526
    527527            char temp2[VN_SIZE];
    528528            sprintf(temp2,"%s.%s",VarName,temporary);
    529             pVar = compiler.GetMeta().GetGlobalVars().Find( Symbol( temp2 ) );
     529            pVar = compiler.objectModule.meta.GetGlobalVars().Find( Symbol( temp2 ) );
    530530            if( pVar ){
    531531                lstrcpy(member,tempMember);
     
    539539            char temp2[VN_SIZE];
    540540            sprintf(temp2,"%s.%s",compiler.pCompilingClass->GetName().c_str(),VarName);
    541             pVar = compiler.GetMeta().GetGlobalVars().Find( Symbol( temp2 ) );
     541            pVar = compiler.objectModule.meta.GetGlobalVars().Find( Symbol( temp2 ) );
    542542            if( pVar ){
    543543                goto GlobalOk;
     
    549549        /////////////////////
    550550
    551         pVar = compiler.GetMeta().GetGlobalVars().BackSearch( Symbol( VarName ) );
     551        pVar = compiler.objectModule.meta.GetGlobalVars().BackSearch( Symbol( VarName ) );
    552552        if( pVar ){
    553553            goto GlobalOk;
     
    837837            char *temp;
    838838            temp=(char *)i64data;
    839             i2=compiler.GetDataTable().AddString(temp,lstrlen(temp));
     839            i2=compiler.objectModule.dataTable.AddString(temp,lstrlen(temp));
    840840            HeapDefaultFree(temp);
    841841
     
    10101010            char *temp;
    10111011            temp=(char *)i64data;
    1012             i2=compiler.GetDataTable().AddString(temp,lstrlen(temp));
     1012            i2=compiler.objectModule.dataTable.AddString(temp,lstrlen(temp));
    10131013            HeapDefaultFree(temp);
    10141014
     
    12671267    }
    12681268
    1269     BOOST_FOREACH( const Variable *pVar, compiler.GetMeta().GetGlobalVars() ){
     1269    BOOST_FOREACH( const Variable *pVar, compiler.objectModule.meta.GetGlobalVars() ){
    12701270        if( pVar->GetType().IsObject() || pVar->GetType().IsPointer() || pVar->GetType().IsStruct() ){
    12711271            // オブジェクトまたはポインタだったとき
  • trunk/abdev/BasicCompiler32/MakePeHdr.cpp

    r253 r256  
    146146    //////////////////
    147147    // データテーブル
    148     compiler.GetDataTable().Init();
     148    compiler.objectModule.dataTable.Clear();
    149149    if(bDebugCompile){
    150         compiler.GetDataTable().Add( (long)0x00000002 );
     150        compiler.objectModule.dataTable.Add( (long)0x00000002 );
    151151    }
    152152
     
    172172
    173173    //関数ポインタ情報を初期化
    174     compiler.GetMeta().GetProcPointers().clear();
     174    compiler.objectModule.meta.GetProcPointers().clear();
    175175
    176176    // 名前空間情報を取得
    177177    NamespaceSupporter::CollectNamespaces(
    178178        Smoothie::Lexical::source.GetBuffer(),
    179         compiler.GetMeta().GetNamespaces()
     179        compiler.objectModule.meta.GetNamespaces()
    180180    );
    181181
     
    183183    //   CollectProcedures関数の中で参照されるオブジェクト名を事前に取得する。
    184184    //     ※オブジェクトの内容までは取得しない
    185     compiler.GetMeta().GetClasses().CollectClassesForNameOnly( Smoothie::Lexical::source );
     185    compiler.objectModule.meta.GetClasses().CollectClassesForNameOnly( Smoothie::Lexical::source );
    186186
    187187    //TypeDef情報を初期化
    188     compiler.GetMeta().GetTypeDefs().Init();
     188    compiler.objectModule.meta.GetTypeDefs().Init();
    189189
    190190    //定数情報を取得
     
    195195    CollectProcedures(
    196196        Smoothie::Lexical::source,
    197         compiler.GetMeta().GetUserProcs(),
    198         compiler.GetMeta().GetDllProcs()
     197        compiler.objectModule.meta.GetUserProcs(),
     198        compiler.objectModule.meta.GetDllProcs()
    199199    );
    200200
    201201    // クラス情報を取得(※注 - CollectProceduresの後に呼び出す)
    202     compiler.GetMeta().GetClasses().GetAllClassInfo();
     202    compiler.objectModule.meta.GetClasses().GetAllClassInfo();
    203203
    204204    // サブルーチン(ユーザー定義、DLL関数)のイテレータの準備
    205     compiler.GetMeta().GetUserProcs().Iterator_Init();
    206     compiler.GetMeta().GetDllProcs().Iterator_Init();
     205    compiler.objectModule.meta.GetUserProcs().Iterator_Init();
     206    compiler.objectModule.meta.GetDllProcs().Iterator_Init();
    207207
    208208/*
    209     if( !compiler.GetMeta().WriteXml( Jenga::Common::Environment::GetAppDir() + "\\meta_test.xml" ) )
     209    if( !compiler.objectModule.WriteXml( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.xml" ) )
    210210    {
    211211        MessageBox(0,"XML書き込みに失敗","test",0);
    212212    }
    213     MetaImpl *pTempMeta = new MetaImpl();
    214     if( !pTempMeta->ReadXml( Jenga::Common::Environment::GetAppDir() + "\\meta_test.xml" ) )
     213    ObjectModule *pTempObjectModule = new ObjectModule();
     214    if( !pTempObjectModule->ReadXml( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.xml" ) )
    215215    {
    216216        MessageBox(0,"XML読み込みに失敗","test",0);
    217217    }
    218218
    219     if( !compiler.GetMeta().WriteBinaly( Jenga::Common::Environment::GetAppDir() + "\\meta_test.dat" ) )
     219    if( !compiler.objectModule.meta.WriteBinary( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.dat" ) )
    220220    {
    221221        MessageBox(0,"バイナリ書き込みに失敗","test",0);
    222222    }
    223     MetaImpl *pTempMeta = new MetaImpl();
    224     if( !pTempMeta->ReadBinaly( Jenga::Common::Environment::GetAppDir() + "\\meta_test.dat" ) )
     223    Meta *pTempMeta = new Meta();
     224    if( !pTempMeta->ReadBinary( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.dat" ) )
    225225    {
    226226        MessageBox(0,"バイナリ読み込みに失敗","test",0);
    227227    }
    228     if( !compiler.GetMeta().WriteText( Jenga::Common::Environment::GetAppDir() + "\\meta_test.dat" ) )
     228    if( !compiler.objectModule.meta.WriteText( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.dat" ) )
    229229    {
    230230        MessageBox(0,"バイナリ書き込みに失敗","test",0);
    231231    }
    232     MetaImpl *pTempMeta = new MetaImpl();
    233     if( !pTempMeta->ReadText( Jenga::Common::Environment::GetAppDir() + "\\meta_test.dat" ) )
     232    Meta *pTempMeta = new Meta();
     233    if( !pTempMeta->ReadText( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.dat" ) )
    234234    {
    235235        MessageBox(0,"バイナリ読み込みに失敗","test",0);
    236236    }
    237     compiler.GetMeta() = (*pTempMeta);*/
     237    compiler.objectModule = (*pTempObjectModule);*/
    238238
    239239
     
    436436
    437437        // コード生成対象を選択
    438         compiler.codeGenerator.Select( compiler.globalNativeCode );
     438        compiler.codeGenerator.Select( compiler.objectModule.globalNativeCode );
    439439
    440440        trace_for_sourcecodestep( "★★★ グローバル領域のコンパイルを開始" );
     
    461461
    462462        //クラスに属する静的メンバを定義
    463         compiler.GetMeta().GetClasses().InitStaticMember();
     463        compiler.objectModule.meta.GetClasses().InitStaticMember();
    464464
    465465        //グローバル実行領域をコンパイル開始
     
    550550
    551551
     552    trace( "コード生成が終了しました。" );
     553
     554
     555/*
     556    int t,t2;
     557    t=GetTickCount();
     558    if( !compiler.objectModule.WriteText( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.xml" ) )
     559    {
     560        MessageBox(0,"XML書き込みに失敗","test",0);
     561    }
     562    if( !compiler.objectModule.ReadText( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.xml" ) )
     563    {
     564        MessageBox(0,"XML読み込みに失敗","test",0);
     565    }
     566    t2=GetTickCount();
     567    t2-=t;
     568    char s[100];
     569    sprintf(s,"%d",t2);
     570    MessageBox(0,s,"test",0);
     571   
     572    if( !compiler.objectModule.meta.WriteBinary( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.dat" ) )
     573    {
     574        MessageBox(0,"バイナリ書き込みに失敗","test",0);
     575    }
     576    Meta *pTempMeta = new Meta();
     577    if( !pTempMeta->ReadBinary( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.dat" ) )
     578    {
     579        MessageBox(0,"バイナリ読み込みに失敗","test",0);
     580    }
     581    if( !compiler.objectModule.meta.WriteText( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.dat" ) )
     582    {
     583        MessageBox(0,"バイナリ書き込みに失敗","test",0);
     584    }
     585    Meta *pTempMeta = new Meta();
     586    if( !pTempMeta->ReadText( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.dat" ) )
     587    {
     588        MessageBox(0,"バイナリ読み込みに失敗","test",0);
     589    }*/
     590
     591
    552592
    553593    ////////////////////////////////
     
    561601    // 使用するDLL関数のチェック
    562602    ////////////////////////////////
    563     compiler.GetMeta().GetDllProcs().Iterator_Reset();
    564     while( compiler.GetMeta().GetDllProcs().Iterator_HasNext() )
     603    compiler.objectModule.meta.GetDllProcs().Iterator_Reset();
     604    while( compiler.objectModule.meta.GetDllProcs().Iterator_HasNext() )
    565605    {
    566         const DllProc *pDllProc = compiler.GetMeta().GetDllProcs().Iterator_GetNext();
     606        const DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().Iterator_GetNext();
    567607
    568608        if( !pDllProc->IsUsing() ){
     
    634674            //辞書順にサーチ
    635675            temporary[0]=0;
    636             compiler.GetMeta().GetUserProcs().Iterator_Reset();
    637             while( compiler.GetMeta().GetUserProcs().Iterator_HasNext() )
     676            compiler.objectModule.meta.GetUserProcs().Iterator_Reset();
     677            while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() )
    638678            {
    639                 pUserProc = compiler.GetMeta().GetUserProcs().Iterator_GetNext();
     679                pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext();
    640680                if(pUserProc->IsExport()){
    641681                    if(temporary[0]=='\0'){
     
    724764    int ImportDllNum=0;
    725765
    726     compiler.GetMeta().GetDllProcs().Iterator_Reset();
    727     while( compiler.GetMeta().GetDllProcs().Iterator_HasNext() )
     766    compiler.objectModule.meta.GetDllProcs().Iterator_Reset();
     767    while( compiler.objectModule.meta.GetDllProcs().Iterator_HasNext() )
    728768    {
    729         const DllProc *pDllProc = compiler.GetMeta().GetDllProcs().Iterator_GetNext();
     769        const DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().Iterator_GetNext();
    730770
    731771        if( !pDllProc->IsUsing() ){
     
    764804        pImportTable[i].Name=i3+i*0x10;
    765805
    766         compiler.GetMeta().GetDllProcs().Iterator_Reset();
    767         while( compiler.GetMeta().GetDllProcs().Iterator_HasNext() )
     806        compiler.objectModule.meta.GetDllProcs().Iterator_Reset();
     807        while( compiler.objectModule.meta.GetDllProcs().Iterator_HasNext() )
    768808        {
    769             const DllProc *pDllProc = compiler.GetMeta().GetDllProcs().Iterator_GetNext();
     809            const DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().Iterator_GetNext();
    770810
    771811            if( !pDllProc->IsUsing() ){
     
    793833    i3+=ImportDllNum*0x10;
    794834    for(i=0,i5=0;i<ImportDllNum;i++){
    795         compiler.GetMeta().GetDllProcs().Iterator_Reset();
    796         while( compiler.GetMeta().GetDllProcs().Iterator_HasNext() )
     835        compiler.objectModule.meta.GetDllProcs().Iterator_Reset();
     836        while( compiler.objectModule.meta.GetDllProcs().Iterator_HasNext() )
    797837        {
    798             DllProc *pDllProc = compiler.GetMeta().GetDllProcs().Iterator_GetNext();
     838            DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().Iterator_GetNext();
    799839
    800840            if( !pDllProc->IsUsing() ){
     
    839879    //(デバッグ情報で利用される)
    840880    extern int AllInitGlobalVarSize;
    841     BOOST_FOREACH( Variable *pVar, compiler.GetMeta().GetGlobalVars() ){
     881    BOOST_FOREACH( Variable *pVar, compiler.objectModule.meta.GetGlobalVars() ){
    842882        if(pVar->GetOffsetAddress()&0x80000000){
    843883            pVar->SetOffsetAddress( (pVar->GetOffsetAddress()&0x7FFFFFFF)+AllInitGlobalVarSize );
     
    921961
    922962    //データセクションのファイル上のサイズ
    923     if(compiler.GetDataTable().GetSize()%FILE_ALIGNMENT) FileSize_DataSection=compiler.GetDataTable().GetSize()+(FILE_ALIGNMENT-compiler.GetDataTable().GetSize()%FILE_ALIGNMENT);
    924     else FileSize_DataSection=compiler.GetDataTable().GetSize();
     963    if(compiler.objectModule.dataTable.GetSize()%FILE_ALIGNMENT) FileSize_DataSection=compiler.objectModule.dataTable.GetSize()+(FILE_ALIGNMENT-compiler.objectModule.dataTable.GetSize()%FILE_ALIGNMENT);
     964    else FileSize_DataSection=compiler.objectModule.dataTable.GetSize();
    925965    if(FileSize_DataSection) bUse_DataSection=1;
    926966    else bUse_DataSection=0;
     
    10841124            HintSize;           //ヒント名(関数名)テーブル
    10851125
    1086         compiler.GetMeta().GetDllProcs().Iterator_Reset();
    1087         while( compiler.GetMeta().GetDllProcs().Iterator_HasNext() )
     1126        compiler.objectModule.meta.GetDllProcs().Iterator_Reset();
     1127        while( compiler.objectModule.meta.GetDllProcs().Iterator_HasNext() )
    10881128        {
    1089             const DllProc *pDllProc = compiler.GetMeta().GetDllProcs().Iterator_GetNext();
     1129            const DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().Iterator_GetNext();
    10901130
    10911131            if( !pDllProc->IsUsing() ){
     
    11051145    ////////////////////////////////////////
    11061146    //仮想関数データテーブルスケジュール
    1107     compiler.GetMeta().GetClasses().ActionVtblSchedule(ImageBase,MemPos_CodeSection);
     1147    compiler.objectModule.meta.GetClasses().ActionVtblSchedule(ImageBase,MemPos_CodeSection);
    11081148
    11091149
     
    16401680    if(bUse_DataSection){
    16411681        //データ テーブル
    1642         WriteFile(hFile,compiler.GetDataTable().GetPtr(),compiler.GetDataTable().GetSize(),(DWORD *)&i2,NULL);
     1682        WriteFile(hFile,compiler.objectModule.dataTable.GetPtr(),compiler.objectModule.dataTable.GetSize(),(DWORD *)&i2,NULL);
    16431683        i+=i2;
    16441684    }
     
    17521792
    17531793    //クラスに関するメモリを解放
    1754     compiler.GetMeta().GetClasses().Clear();
     1794    compiler.objectModule.meta.GetClasses().Clear();
    17551795}
  • trunk/abdev/BasicCompiler32/NumOpe.cpp

    r254 r256  
    7676    SetStringQuotes( parameter );
    7777
    78     Operator_New( *compiler.GetMeta().GetClasses().GetStringClassPtr(), "", parameter, Type( DEF_OBJECT, *compiler.GetMeta().GetClasses().GetStringClassPtr() ) );
     78    Operator_New( *compiler.objectModule.meta.GetClasses().GetStringClassPtr(), "", parameter, Type( DEF_OBJECT, *compiler.objectModule.meta.GetClasses().GetStringClassPtr() ) );
    7979
    8080    free( parameter );
     
    254254        Type leftType;
    255255        if( GetTermType( termLeft, leftType, isLiteral, &isClassName ) ){
    256             if( isClassName == false && compiler.GetMeta().GetBlittableTypes().IsExist( leftType ) ){
     256            if( isClassName == false && compiler.objectModule.meta.GetBlittableTypes().IsExist( leftType ) ){
    257257                // 左側のオブジェクト部分がBlittable型のとき
    258258
     
    260260                lstrcpy( temporary, termLeft );
    261261                sprintf( termLeft, "%s(%s)",
    262                     compiler.GetMeta().GetBlittableTypes().Find( leftType ).GetCreateStaticMethodFullName().c_str(),
     262                    compiler.objectModule.meta.GetBlittableTypes().Find( leftType ).GetCreateStaticMethodFullName().c_str(),
    263263                    temporary );
    264264            }
     
    289289
    290290    if( pIsClassName ){
    291         if( compiler.GetMeta().GetClasses().Find( termFull ) ){
     291        if( compiler.objectModule.meta.GetClasses().Find( termFull ) ){
    292292            *pIsClassName = true;
    293293            return true;
     
    380380        }
    381381
    382         ConstMacro *pConstMacro = compiler.GetMeta().GetGlobalConstMacros().Find( procName );
     382        ConstMacro *pConstMacro = compiler.objectModule.meta.GetGlobalConstMacros().Find( procName );
    383383        if( pConstMacro )
    384384        {
     
    582582        }
    583583
    584         i2 = compiler.GetDataTable().AddBinary( binary, num * tempBaseType.GetSize() );
     584        i2 = compiler.objectModule.dataTable.AddBinary( binary, num * tempBaseType.GetSize() );
    585585
    586586        //mov eax,i2
     
    784784
    785785                        type_stack[sp]=DEF_OBJECT;
    786                         index_stack[sp]=(LONG_PTR)compiler.GetMeta().GetClasses().GetStringClassPtr();
     786                        index_stack[sp]=(LONG_PTR)compiler.objectModule.meta.GetClasses().GetStringClassPtr();
    787787                        bLiteralCalculation=0;
    788788
     
    795795                    bLiteralCalculation=0;
    796796
    797                     i2=compiler.GetDataTable().AddString(term,i3);
     797                    i2=compiler.objectModule.dataTable.AddString(term,i3);
    798798
    799799                    //push DataSize
     
    879879                        }
    880880                        else{
    881                             index_stack[sp] = (LONG_PTR)compiler.GetMeta().GetClasses().GetObjectClassPtr();
     881                            index_stack[sp] = (LONG_PTR)compiler.objectModule.meta.GetClasses().GetObjectClassPtr();
    882882                        }
    883883
     
    896896                    //////////////
    897897
    898                     i3 = compiler.GetMeta().GetGlobalConsts().GetBasicType(term);
     898                    i3 = compiler.objectModule.meta.GetGlobalConsts().GetBasicType(term);
    899899                    if(i3){
    900                         if( compiler.GetMeta().GetGlobalConsts().IsStringPtr( term ) ){
     900                        if( compiler.objectModule.meta.GetGlobalConsts().IsStringPtr( term ) ){
    901901                            //リテラル文字列
    902902
    903                             double dbl = compiler.GetMeta().GetGlobalConsts().GetDoubleData(term);
     903                            double dbl = compiler.objectModule.meta.GetGlobalConsts().GetDoubleData(term);
    904904                            memcpy(&i64data,&dbl,sizeof(double));
    905905
     
    915915                        if(IsRealNumberType(i3)){
    916916                            //実数
    917                             double dbl = compiler.GetMeta().GetGlobalConsts().GetDoubleData(term);
     917                            double dbl = compiler.objectModule.meta.GetGlobalConsts().GetDoubleData(term);
    918918                            memcpy(&i64data,&dbl,sizeof(double));
    919919                            goto Literal;
     
    921921                        else if(IsWholeNumberType(i3)){
    922922                            //整数
    923                             i64data = compiler.GetMeta().GetGlobalConsts().GetWholeData(term);
     923                            i64data = compiler.objectModule.meta.GetGlobalConsts().GetWholeData(term);
    924924                            goto Literal;
    925925                        }
Note: See TracChangeset for help on using the changeset viewer.