Changeset 256 in dev for trunk


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

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

Location:
trunk/abdev
Files:
1 added
34 edited
1 moved

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                        }
  • trunk/abdev/BasicCompiler_Common/BreakPoint.cpp

    r206 r256  
    4242}
    4343
    44 void CFileBreakPoint::update(char *OpBuffer){
     44void CFileBreakPoint::update(char *nativeCodeBuffer){
    4545    extern INCLUDEFILEINFO IncludeFileInfo;
    4646
     
    8585            }
    8686
    87             OpBuffer[pLineInfo[i3].TopObp]=(char)0xCC;
     87            nativeCodeBuffer[pLineInfo[i3].TopObp]=(char)0xCC;
    8888
    8989            nCount++;
     
    177177}
    178178
    179 char *CDBBreakPoint::update(char *OpBuffer,int SizeOf_CodeSection){
     179char *CDBBreakPoint::update(char *nativeCodeBuffer,int SizeOf_CodeSection){
    180180    char *buffer;
    181181    buffer=(char *)HeapAlloc(hHeap,0,SizeOf_CodeSection);
    182     memcpy(buffer,OpBuffer,SizeOf_CodeSection);
     182    memcpy(buffer,nativeCodeBuffer,SizeOf_CodeSection);
    183183
    184184    int i;
  • trunk/abdev/BasicCompiler_Common/BreakPoint.h

    r4 r256  
    1414    void remove(int iLineNum);
    1515
    16     void update(char *OpBuffer);
     16    void update(char *nativeCodeBuffer);
    1717};
    1818
     
    2828    void remove(char *lpszFileName,int iLineNum);
    2929
    30     char *update(char *OpBuffer,int SizeOf_CodeSection);
     30    char *update(char *nativeCodeBuffer,int SizeOf_CodeSection);
    3131};
    3232
  • trunk/abdev/BasicCompiler_Common/Debug.cpp

    r233 r256  
    230230}
    231231UserProc *GetSubFromObp(ULONG_PTR pos){
    232     compiler.GetMeta().GetUserProcs().Iterator_Reset();
    233     while( compiler.GetMeta().GetUserProcs().Iterator_HasNext() )
     232    compiler.objectModule.meta.GetUserProcs().Iterator_Reset();
     233    while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() )
    234234    {
    235         UserProc *pUserProc = compiler.GetMeta().GetUserProcs().Iterator_GetNext();
     235        UserProc *pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext();
    236236
    237237        if(rva_to_real(pUserProc->GetBeginOpAddress()) <= pos  &&
  • trunk/abdev/BasicCompiler_Common/DebugMiddleFile.cpp

    r232 r256  
    3737        (*p)+=lstrlen(buffer+(*p))+1;
    3838
    39         type.SetClassPtr( compiler.GetMeta().GetClasses().Find(szClassName) );
     39        type.SetClassPtr( compiler.objectModule.meta.GetClasses().Find(szClassName) );
    4040    }
    4141    else{
     
    121121
    122122    //イテレータをリセット
    123     compiler.GetMeta().GetClasses().Iterator_Reset();
     123    compiler.objectModule.meta.GetClasses().Iterator_Reset();
    124124
    125125    //個数
    126     *(long *)(buffer+i2)=compiler.GetMeta().GetClasses().Iterator_GetMaxCount();
    127     i2+=sizeof(long);
    128 
    129     while(compiler.GetMeta().GetClasses().Iterator_HasNext()){
     126    *(long *)(buffer+i2)=compiler.objectModule.meta.GetClasses().Iterator_GetMaxCount();
     127    i2+=sizeof(long);
     128
     129    while(compiler.objectModule.meta.GetClasses().Iterator_HasNext()){
    130130        CClass *pobj_c;
    131         pobj_c=compiler.GetMeta().GetClasses().Iterator_GetNext();
     131        pobj_c=compiler.objectModule.meta.GetClasses().Iterator_GetNext();
    132132
    133133        //クラス名
     
    141141    // TypeDef情報
    142142    //////////////////
    143     *(long *)(buffer+i2)=(int)compiler.GetMeta().GetTypeDefs().size();
    144     i2+=sizeof(long);
    145     for(i3=0;i3<(int)compiler.GetMeta().GetTypeDefs().size();i3++){
    146         lstrcpy(buffer+i2,compiler.GetMeta().GetTypeDefs()[i3].GetName().c_str() );
    147         i2+=lstrlen(buffer+i2)+1;
    148 
    149         lstrcpy(buffer+i2,compiler.GetMeta().GetTypeDefs()[i3].GetBaseName().c_str() );
     143    *(long *)(buffer+i2)=(int)compiler.objectModule.meta.GetTypeDefs().size();
     144    i2+=sizeof(long);
     145    for(i3=0;i3<(int)compiler.objectModule.meta.GetTypeDefs().size();i3++){
     146        lstrcpy(buffer+i2,compiler.objectModule.meta.GetTypeDefs()[i3].GetName().c_str() );
     147        i2+=lstrlen(buffer+i2)+1;
     148
     149        lstrcpy(buffer+i2,compiler.objectModule.meta.GetTypeDefs()[i3].GetBaseName().c_str() );
    150150        i2+=lstrlen(buffer+i2)+1;
    151151
     
    159159
    160160    //グローバル変数情報
    161     *(long *)(buffer+i2)=(int)compiler.GetMeta().GetGlobalVars().size();
    162     i2+=sizeof(long);
    163     BOOST_FOREACH( Variable *pVar, compiler.GetMeta().GetGlobalVars() ){
     161    *(long *)(buffer+i2)=(int)compiler.objectModule.meta.GetGlobalVars().size();
     162    i2+=sizeof(long);
     163    BOOST_FOREACH( Variable *pVar, compiler.objectModule.meta.GetGlobalVars() ){
    164164        //変数名
    165165        lstrcpy(buffer+i2,pVar->GetName().c_str());
     
    212212
    213213    //プロシージャ情報
    214     *(long *)(buffer+i2) = compiler.GetMeta().GetUserProcs().Iterator_GetMaxCount();
    215     i2+=sizeof(long);
    216     compiler.GetMeta().GetUserProcs().Iterator_Reset();
    217     while( compiler.GetMeta().GetUserProcs().Iterator_HasNext() )
     214    *(long *)(buffer+i2) = compiler.objectModule.meta.GetUserProcs().Iterator_GetMaxCount();
     215    i2+=sizeof(long);
     216    compiler.objectModule.meta.GetUserProcs().Iterator_Reset();
     217    while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() )
    218218    {
    219         UserProc *pUserProc = compiler.GetMeta().GetUserProcs().Iterator_GetNext();
     219        UserProc *pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext();
    220220
    221221        if(pUserProc->GetParentClassPtr()){
     
    309309
    310310    //イテレータをリセット
    311     compiler.GetMeta().GetClasses().Iterator_Reset();
    312 
    313     while(compiler.GetMeta().GetClasses().Iterator_HasNext()){
     311    compiler.objectModule.meta.GetClasses().Iterator_Reset();
     312
     313    while(compiler.objectModule.meta.GetClasses().Iterator_HasNext()){
    314314        CClass *pobj_c;
    315         pobj_c=compiler.GetMeta().GetClasses().Iterator_GetNext();
     315        pobj_c=compiler.objectModule.meta.GetClasses().Iterator_GetNext();
    316316
    317317
     
    510510    }
    511511
    512     compiler.GetMeta().SetClasses( this->pobj_DBClass );
     512    compiler.objectModule.meta.SetClasses( this->pobj_DBClass );
    513513
    514514
     
    518518
    519519    //初期化
    520     compiler.GetMeta().GetTypeDefs().clear();
     520    compiler.objectModule.meta.GetTypeDefs().clear();
    521521
    522522    //個数を取得
     
    528528
    529529        // 名前空間に未対応
    530         compiler.GetMeta().GetTypeDefs().push_back( TypeDef( NamespaceScopes(), temp5, buffer+i2, -1 ) );
     530        compiler.objectModule.meta.GetTypeDefs().push_back( TypeDef( NamespaceScopes(), temp5, buffer+i2, -1 ) );
    531531
    532532        i2+=lstrlen(buffer+i2)+1;
     
    535535    //定数を取得
    536536    GetConstInfo();
    537     this->globalConsts = compiler.GetMeta().GetGlobalConsts();
    538     this->globalConstMacros = compiler.GetMeta().GetGlobalConstMacros();
     537    this->globalConsts = compiler.objectModule.meta.GetGlobalConsts();
     538    this->globalConstMacros = compiler.objectModule.meta.GetGlobalConstMacros();
    539539
    540540    //グローバル変数情報
    541     compiler.GetMeta().GetGlobalVars().clear();
     541    compiler.objectModule.meta.GetGlobalVars().clear();
    542542    int maxGlobalVars=*(long *)(buffer+i2);
    543543    i2+=sizeof(long);
     
    586586
    587587        //変数を追加
    588         compiler.GetMeta().GetGlobalVars().push_back( pVar );
     588        compiler.objectModule.meta.GetGlobalVars().push_back( pVar );
    589589    }
    590590
     
    604604        const CClass *pClass = NULL;
    605605        if(szParentClassName[0]){
    606             pClass=compiler.GetMeta().GetClasses().Find(szParentClassName);
     606            pClass=compiler.objectModule.meta.GetClasses().Find(szParentClassName);
    607607        }
    608608
     
    698698        i2+=lstrlen(buffer+i2)+1;
    699699
    700         pobj_c =  const_cast<CClass *>( compiler.GetMeta().GetClasses().Find(szClassName) );
     700        pobj_c =  const_cast<CClass *>( compiler.objectModule.meta.GetClasses().Find(szClassName) );
    701701
    702702        //仮想関数の数
     
    755755            const CClass *pobj_InheritsClass = NULL;
    756756            if(szInherits[0]){
    757                 pobj_InheritsClass=compiler.GetMeta().GetClasses().Find(szInherits);
     757                pobj_InheritsClass=compiler.objectModule.meta.GetClasses().Find(szInherits);
    758758            }
    759759
     
    765765            if(pobj_temp_c==0) pobj_temp_c=pobj_c;
    766766
    767             UserProc *pUserProc = compiler.GetMeta().GetUserProcs().GetHashArrayElement( temp2 );
     767            UserProc *pUserProc = compiler.objectModule.meta.GetUserProcs().GetHashArrayElement( temp2 );
    768768            while(pUserProc){
    769769                if( pUserProc->GetName() == temp2 &&pUserProc->GetParentClassPtr()==pobj_temp_c)
     
    821821
    822822
    823     compiler.GetMeta().GetUserProcs() = userProcs;
     823    compiler.objectModule.meta.GetUserProcs() = userProcs;
    824824    pSub_DebugSys_EndProc=GetSubHash("_DebugSys_EndProc");
    825825
     
    962962
    963963    // クラス情報
    964     compiler.GetMeta().SetClasses( this->pobj_DBClass );
     964    compiler.objectModule.meta.SetClasses( this->pobj_DBClass );
    965965
    966966    //定数を取得
    967     compiler.GetMeta().GetGlobalConsts() = this->globalConsts;
    968     compiler.GetMeta().GetGlobalConstMacros() = this->globalConstMacros;
     967    compiler.objectModule.meta.GetGlobalConsts() = this->globalConsts;
     968    compiler.objectModule.meta.GetGlobalConstMacros() = this->globalConstMacros;
    969969
    970970    //グローバル実行領域のサイズ
     
    973973
    974974    //プロシージャ
    975     compiler.GetMeta().GetUserProcs() = userProcs;
     975    compiler.objectModule.meta.GetUserProcs() = userProcs;
    976976
    977977    extern const UserProc *pSub_DebugSys_EndProc;
  • trunk/abdev/BasicCompiler_Common/Diagnose.cpp

    r206 r256  
    4040        int codeSizeOfGlobalProc = 0;
    4141        int codeSizeOfClassMethod = 0;
    42         compiler.GetMeta().GetUserProcs().Iterator_Reset();
    43         while( compiler.GetMeta().GetUserProcs().Iterator_HasNext() )
     42        compiler.objectModule.meta.GetUserProcs().Iterator_Reset();
     43        while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() )
    4444        {
    45             UserProc *pUserProc = compiler.GetMeta().GetUserProcs().Iterator_GetNext();
     45            UserProc *pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext();
    4646            if( pUserProc->IsCompiled() ){
    4747                if( pUserProc->HasParentClass() ){
     
    6868        // イテレータをリセット
    6969        extern Classes *pobj_DBClass;
    70         compiler.GetMeta().GetClasses().Iterator_Reset();
     70        compiler.objectModule.meta.GetClasses().Iterator_Reset();
    7171
    72         while( compiler.GetMeta().GetClasses().Iterator_HasNext() ){
     72        while( compiler.objectModule.meta.GetClasses().Iterator_HasNext() ){
    7373            int codeSizeOfClass = 0;
    7474
    75             CClass &objClass = *compiler.GetMeta().GetClasses().Iterator_GetNext();
     75            CClass &objClass = *compiler.objectModule.meta.GetClasses().Iterator_GetNext();
    7676
    7777            if( !objClass.IsEnum() ){
     
    108108        // イテレータをリセット
    109109        extern Classes *pobj_DBClass;
    110         compiler.GetMeta().GetClasses().Iterator_Reset();
     110        compiler.objectModule.meta.GetClasses().Iterator_Reset();
    111111
    112         while( compiler.GetMeta().GetClasses().Iterator_HasNext() ){
     112        while( compiler.objectModule.meta.GetClasses().Iterator_HasNext() ){
    113113            int codeSizeOfClass = 0;
    114114
    115             CClass &objClass = *compiler.GetMeta().GetClasses().Iterator_GetNext();
     115            CClass &objClass = *compiler.objectModule.meta.GetClasses().Iterator_GetNext();
    116116
    117117            // 動的メソッド
  • trunk/abdev/BasicCompiler_Common/Intermediate_Step2.cpp

    r206 r256  
    7979
    8080        //定数を追加
    81         compiler.GetMeta().GetGlobalConsts().Add( namespaceScopes, temporary, NextValue);
     81        compiler.objectModule.meta.GetGlobalConsts().Add( namespaceScopes, temporary, NextValue);
    8282    }
    8383}
     
    9595
    9696    //定数に関する情報を初期化
    97     compiler.GetMeta().GetGlobalConsts().Clear();
    98     compiler.GetMeta().GetGlobalConstMacros().Clear();
     97    compiler.objectModule.meta.GetGlobalConsts().Clear();
     98    compiler.objectModule.meta.GetGlobalConstMacros().Clear();
    9999
    100100    extern char *basbuf;
     
    172172
    173173    // イテレータを初期化
    174     compiler.GetMeta().GetGlobalConsts().Iterator_Init();
    175     compiler.GetMeta().GetGlobalConstMacros().Iterator_Init();
     174    compiler.objectModule.meta.GetGlobalConsts().Iterator_Init();
     175    compiler.objectModule.meta.GetGlobalConstMacros().Iterator_Init();
    176176
    177177    return true;
  • trunk/abdev/BasicCompiler_Common/MakeExe.cpp

    r209 r256  
    137137    extern int AllGlobalVarSize;
    138138    extern int AllInitGlobalVarSize;
    139     compiler.GetMeta().GetGlobalVars().clear();
     139    compiler.objectModule.meta.GetGlobalVars().clear();
    140140    AllGlobalVarSize=0;
    141141    AllInitGlobalVarSize=0;
  • trunk/abdev/BasicCompiler_Common/NumOpe_GetType.cpp

    r254 r256  
    330330        Type leftType;
    331331        if( GetTermType( termLeft, leftType, isLiteral, &isClassName ) ){
    332             if( isClassName == false && compiler.GetMeta().GetBlittableTypes().IsExist( leftType ) ){
     332            if( isClassName == false && compiler.objectModule.meta.GetBlittableTypes().IsExist( leftType ) ){
    333333                // 左側のオブジェクト部分がBlittable型のとき
    334334
     
    336336                lstrcpy( temporary, termLeft );
    337337                sprintf( termLeft, "%s(%s)",
    338                     compiler.GetMeta().GetBlittableTypes().Find( leftType ).GetCreateStaticMethodFullName().c_str(),
     338                    compiler.objectModule.meta.GetBlittableTypes().Find( leftType ).GetCreateStaticMethodFullName().c_str(),
    339339                    temporary );
    340340
     
    398398
    399399    if( pIsClassName ){
    400         if( compiler.GetMeta().GetClasses().Find( termFull ) ){
     400        if( compiler.objectModule.meta.GetClasses().Find( termFull ) ){
    401401            *pIsClassName = true;
    402402            return true;
     
    457457        else
    458458        {
    459             ConstMacro *pConstMacro = compiler.GetMeta().GetGlobalConstMacros().Find( procName );
     459            ConstMacro *pConstMacro = compiler.objectModule.meta.GetGlobalConstMacros().Find( procName );
    460460            if( pConstMacro )
    461461            {
     
    689689                        //要求タイプがオブジェクト、または未定のとき
    690690                        type_stack[sp]=DEF_OBJECT;
    691                         index_stack[sp]=(LONG_PTR)compiler.GetMeta().GetClasses().GetStringClassPtr();
     691                        index_stack[sp]=(LONG_PTR)compiler.objectModule.meta.GetClasses().GetStringClassPtr();
    692692                        *pIsLiteralCalculation = false;
    693693
     
    734734                        }
    735735                        else{
    736                             index_stack[sp] = (LONG_PTR)compiler.GetMeta().GetClasses().GetObjectClassPtr();
     736                            index_stack[sp] = (LONG_PTR)compiler.objectModule.meta.GetClasses().GetObjectClassPtr();
    737737                        }
    738738                        *pIsLiteralCalculation = false;
     
    746746                    //////////////
    747747
    748                     i3 = compiler.GetMeta().GetGlobalConsts().GetBasicType(term);
     748                    i3 = compiler.objectModule.meta.GetGlobalConsts().GetBasicType(term);
    749749                    if(i3){
    750                         if( compiler.GetMeta().GetGlobalConsts().IsStringPtr( term ) ){
     750                        if( compiler.objectModule.meta.GetGlobalConsts().IsStringPtr( term ) ){
    751751                            //リテラル文字列
    752752                            goto StrLiteral;
  • trunk/abdev/BasicCompiler_Common/Subroutine.cpp

    r255 r256  
    168168        GetVarType(fullCallName,type,false);
    169169
    170         ProcPointer *pProcPtr = compiler.GetMeta().GetProcPointers()[type.GetIndex()];
     170        ProcPointer *pProcPtr = compiler.objectModule.meta.GetProcPointers()[type.GetIndex()];
    171171        resultType = pProcPtr->ReturnType();
    172172
     
    451451
    452452bool IsNeedProcCompile(){
    453     compiler.GetMeta().GetUserProcs().Iterator_Reset();
    454     while( compiler.GetMeta().GetUserProcs().Iterator_HasNext() )
     453    compiler.objectModule.meta.GetUserProcs().Iterator_Reset();
     454    while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() )
    455455    {
    456         UserProc *pUserProc = compiler.GetMeta().GetUserProcs().Iterator_GetNext();
     456        UserProc *pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext();
    457457        if( pUserProc->IsUsing() && pUserProc->IsCompiled() == false ){
    458458            return true;
  • trunk/abdev/BasicCompiler_Common/VarList.cpp

    r220 r256  
    275275    extern int MemPos_RWSection;
    276276
    277     BOOST_FOREACH( Variable *pVar, compiler.GetMeta().GetGlobalVars() ){
     277    BOOST_FOREACH( Variable *pVar, compiler.objectModule.meta.GetGlobalVars() ){
    278278
    279279        //スコープ外の場合は無視
     
    358358
    359359    UserProc *pUserProc = NULL;
    360     compiler.GetMeta().GetUserProcs().Iterator_Reset();
    361     while( compiler.GetMeta().GetUserProcs().Iterator_HasNext() )
     360    compiler.objectModule.meta.GetUserProcs().Iterator_Reset();
     361    while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() )
    362362    {
    363         pUserProc = compiler.GetMeta().GetUserProcs().Iterator_GetNext();
     363        pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext();
    364364        if(rva_to_real(pUserProc->GetBeginOpAddress()) <= pobj_dti->lplpObp[i2]  &&
    365365            pobj_dti->lplpObp[i2] < rva_to_real(pUserProc->GetEndOpAddress())){
     
    605605
    606606        UserProc *pUserProc = NULL;
    607         compiler.GetMeta().GetUserProcs().Iterator_Reset();
    608         while( compiler.GetMeta().GetUserProcs().Iterator_HasNext() )
     607        compiler.objectModule.meta.GetUserProcs().Iterator_Reset();
     608        while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() )
    609609        {
    610             pUserProc = compiler.GetMeta().GetUserProcs().Iterator_GetNext();
     610            pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext();
    611611
    612612            if(rva_to_real(pUserProc->GetBeginOpAddress()) <= pobj_dti->lplpObp[i2]  &&
     
    718718
    719719        UserProc *pUserProc = NULL;
    720         compiler.GetMeta().GetUserProcs().Iterator_Reset();
    721         while( compiler.GetMeta().GetUserProcs().Iterator_HasNext() )
     720        compiler.objectModule.meta.GetUserProcs().Iterator_Reset();
     721        while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() )
    722722        {
    723             pUserProc = compiler.GetMeta().GetUserProcs().Iterator_GetNext();
     723            pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext();
    724724
    725725            if(rva_to_real(pUserProc->GetBeginOpAddress()) <= pobj_dti->lplpObp[i2]  &&
  • trunk/abdev/BasicCompiler_Common/VariableOpe.cpp

    r248 r256  
    220220        if(lpIndex==-1) lstrcpy(name,"VoidPtr");
    221221        else{
    222             if( compiler.GetMeta().GetProcPointers()[lpIndex]->ReturnType().IsNull() )
     222            if( compiler.objectModule.meta.GetProcPointers()[lpIndex]->ReturnType().IsNull() )
    223223                lstrcpy(name,"*Sub");
    224224            else lstrcpy(name,"*Function");
     
    235235
    236236Type GetStringTypeInfo(){
    237     Type type( DEF_OBJECT, *compiler.GetMeta().GetClasses().GetStringClassPtr() );
     237    Type type( DEF_OBJECT, *compiler.objectModule.meta.GetClasses().GetStringClassPtr() );
    238238    return type;
    239239}
     
    575575    // 名前空間を分離
    576576    char namespaceStr[VN_SIZE]="", simpleName[VN_SIZE];
    577     compiler.GetMeta().GetNamespaces().SplitNamespace( variable, namespaceStr, simpleName );
     577    compiler.objectModule.meta.GetNamespaces().SplitNamespace( variable, namespaceStr, simpleName );
    578578
    579579    // 先頭オブジェクトまたはクラス名と入れ子メンバに分割
     
    647647        GetNowStaticVarFullName(VarName,temporary);
    648648
    649         pVar = compiler.GetMeta().GetGlobalVars().Find( Symbol( temporary ) );
     649        pVar = compiler.objectModule.meta.GetGlobalVars().Find( Symbol( temporary ) );
    650650        if( pVar ){
    651651            goto ok;
     
    667667        }
    668668
    669         int typeDefIndex = compiler.GetMeta().GetTypeDefs().GetIndex( VarName );
     669        int typeDefIndex = compiler.objectModule.meta.GetTypeDefs().GetIndex( VarName );
    670670        if( typeDefIndex != -1 ){
    671671            // TypeDef後の型名だったとき
    672             lstrcpy( VarName, compiler.GetMeta().GetTypeDefs()[typeDefIndex].GetBaseName().c_str() );
     672            lstrcpy( VarName, compiler.objectModule.meta.GetTypeDefs()[typeDefIndex].GetBaseName().c_str() );
    673673        }
    674674
     
    676676        sprintf(temp2,"%s.%s",VarName,temporary);
    677677
    678         pVar = compiler.GetMeta().GetGlobalVars().Find( Symbol( temp2 ) );
     678        pVar = compiler.objectModule.meta.GetGlobalVars().Find( Symbol( temp2 ) );
    679679        if( pVar ){
    680680            lstrcpy(member,tempMember);
     
    689689        sprintf(temp2,"%s.%s",compiler.pCompilingClass->GetName().c_str(),VarName);
    690690
    691         pVar = compiler.GetMeta().GetGlobalVars().Find( Symbol( temp2 ) );
     691        pVar = compiler.objectModule.meta.GetGlobalVars().Find( Symbol( temp2 ) );
    692692        if( pVar ){
    693693            goto ok;
     
    700700    ////////////////////
    701701
    702     pVar = compiler.GetMeta().GetGlobalVars().BackSearch( Symbol( VarName ) );
     702    pVar = compiler.objectModule.meta.GetGlobalVars().BackSearch( Symbol( VarName ) );
    703703    if( pVar ){
    704704        goto ok;
     
    973973    extern int AllGlobalVarSize;
    974974
    975     if( compiler.GetMeta().GetGlobalVars().DuplicateCheck( Symbol( name ) ) ){
     975    if( compiler.objectModule.meta.GetGlobalVars().DuplicateCheck( Symbol( name ) ) ){
    976976        //2重定義のエラー
    977977        SetError(15,name,cp);
     
    997997
    998998    // 変数を追加
    999     compiler.GetMeta().GetGlobalVars().push_back( pVar );
     999    compiler.objectModule.meta.GetGlobalVars().push_back( pVar );
    10001000
    10011001    //アラインメントを考慮
     
    11051105
    11061106        //定数と2重定義されていないる場合は抜け出す
    1107         if(compiler.GetMeta().GetGlobalConsts().GetBasicType(VarName)){
     1107        if(compiler.objectModule.meta.GetGlobalConsts().GetBasicType(VarName)){
    11081108            return;
    11091109        }
    11101110
    11111111        //定数マクロとして定義されている場合は抜け出す
    1112         if( compiler.GetMeta().GetGlobalConstMacros().IsExist( VarName ) )
     1112        if( compiler.objectModule.meta.GetGlobalConstMacros().IsExist( VarName ) )
    11131113        {
    11141114            return;
     
    11261126
    11271127    //定数と2重定義されていないかを調べる
    1128     if(compiler.GetMeta().GetGlobalConsts().GetBasicType(VarName)){
     1128    if(compiler.objectModule.meta.GetGlobalConsts().GetBasicType(VarName)){
    11291129        SetError(15,VarName,cp);
    11301130        return;
     
    11321132
    11331133    //定数マクロとして定義されている場合
    1134     if( compiler.GetMeta().GetGlobalConstMacros().IsExist( VarName ) ){
     1134    if( compiler.objectModule.meta.GetGlobalConstMacros().IsExist( VarName ) ){
    11351135        SetError(15,VarName,cp);
    11361136        return;
  • trunk/abdev/BasicCompiler_Common/WatchList.cpp

    r206 r256  
    440440        ///////////////////
    441441
    442         const Variable *pVar = compiler.GetMeta().GetGlobalVars().Find( VarName );
     442        const Variable *pVar = compiler.objectModule.meta.GetGlobalVars().Find( VarName );
    443443        if( !pVar ){
    444444            //一致しないとき
  • trunk/abdev/BasicCompiler_Common/calculation.cpp

    r254 r256  
    500500                        //定数関数
    501501
    502                         ConstMacro *pConstMacro = compiler.GetMeta().GetGlobalConstMacros().Find( temporary );
     502                        ConstMacro *pConstMacro = compiler.objectModule.meta.GetGlobalConstMacros().Find( temporary );
    503503                        if( !pConstMacro )
    504504                        {
     
    665665                        /////////
    666666                        StrPtr[pnum]=0;
    667                         type[pnum] = compiler.GetMeta().GetGlobalConsts().GetBasicType(Parms);
     667                        type[pnum] = compiler.objectModule.meta.GetGlobalConsts().GetBasicType(Parms);
    668668                        if(type[pnum]){
    669669                            if(IsRealNumberType(type[pnum])){
    670670                                //実数型
    671                                 nums[pnum] = compiler.GetMeta().GetGlobalConsts().GetDoubleData(Parms);
     671                                nums[pnum] = compiler.objectModule.meta.GetGlobalConsts().GetDoubleData(Parms);
    672672                            }
    673673                            else if(IsWholeNumberType(type[pnum])){
    674674                                //整数
    675                                 i64nums[pnum] = compiler.GetMeta().GetGlobalConsts().GetWholeData(Parms);
     675                                i64nums[pnum] = compiler.objectModule.meta.GetGlobalConsts().GetWholeData(Parms);
    676676                            }
    677677/*                          else if(type[pnum]==DEF_STRING){
     
    12211221
    12221222                    //定数
    1223                     ConstMacro *pConstMacro = compiler.GetMeta().GetGlobalConstMacros().Find( temporary );
     1223                    ConstMacro *pConstMacro = compiler.objectModule.meta.GetGlobalConstMacros().Find( temporary );
    12241224                    if(pConstMacro){
    12251225                        //マクロ関数の場合
     
    12311231
    12321232                //定数
    1233                 i3 = compiler.GetMeta().GetGlobalConsts().GetBasicType(Command+i2);
     1233                i3 = compiler.objectModule.meta.GetGlobalConsts().GetBasicType(Command+i2);
    12341234                if(i3==DEF_STRING) return 1;    //文字列
    12351235                if(i3) return 0;            //数値
  • trunk/abdev/BasicCompiler_Common/hash.cpp

    r209 r256  
    3333
    3434    // ハッシュ値を取得
    35     DllProc *pDllProc = compiler.GetMeta().GetDllProcs().GetHashArrayElement( simpleName );
     35    DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().GetHashArrayElement( simpleName );
    3636    while(pDllProc){
    3737        if( pDllProc->IsEqualSymbol( fullName ) ){
     
    7474            }
    7575            else{
    76                 pobj_c=compiler.GetMeta().GetClasses().Find(ObjName);
     76                pobj_c=compiler.objectModule.meta.GetClasses().Find(ObjName);
    7777                if( pobj_c ){
    7878                    isStatic = true;
     
    107107
    108108    // グローバル関数を検索
    109     compiler.GetMeta().GetUserProcs().EnumGlobalProcs( NestMember, name, subs );
     109    compiler.objectModule.meta.GetUserProcs().EnumGlobalProcs( NestMember, name, subs );
    110110}
    111111
     
    151151
    152152const UserProc *GetClassMethod( const char *className, const char *methodName ){
    153     const CClass *pClass = compiler.GetMeta().GetClasses().Find( className );
     153    const CClass *pClass = compiler.objectModule.meta.GetClasses().Find( className );
    154154    if( pClass ){
    155155        vector<const UserProc *> userProcs;
  • trunk/abdev/BasicCompiler_Common/include/BoostSerializationSupport.h

    r215 r256  
    2626    bool WriteXml( const string &xmlFilePath, bool isShowExceptionMessage = true ) const;
    2727
    28     bool ReadBinaly( const string &filePath, bool isShowExceptionMessage = true );
    29     bool WriteBinaly( const string &filePath, bool isShowExceptionMessage = true ) const;
     28    bool ReadBinary( const string &filePath, bool isShowExceptionMessage = true );
     29    bool WriteBinary( const string &filePath, bool isShowExceptionMessage = true ) const;
    3030
    3131    bool ReadText( const string &filePath, bool isShowExceptionMessage = true );
  • trunk/abdev/BasicCompiler_Common/include/Compiler.h

    r225 r256  
    33#include <CodeGenerator.h>
    44#include <NamespaceSupporter.h>
    5 #include <MetaImpl.h>
     5#include <Meta.h>
    66#include <DataTable.h>
    77#include <CodeGenerator.h>
     8#include <Linker.h>
    89
    910class Compiler
     
    1112    // 名前空間サポート
    1213    NamespaceSupporter namespaceSupporter;
    13 
    14     // メタ情報
    15     MetaImpl metaImpl;
    16 
    17     // データテーブル
    18     DataTable dataTable;
    1914
    2015public:
     
    2520    }
    2621
    27     MetaImpl &GetMeta()
    28     {
    29         return metaImpl;
    30     }
    31 
    32     DataTable &GetDataTable()
    33     {
    34         return dataTable;
    35     }
    36 
    37     // グローバル領域のネイティブコード
    38     NativeCode globalNativeCode;
     22    // オブジェクトモジュール
     23    ObjectModule objectModule;
    3924
    4025    // コード生成機構
    4126    CodeGenerator codeGenerator;
     27
     28    // リンカ
     29    Linker linker;
    4230
    4331    static bool StringToType( const std::string &typeName, Type &type );
  • trunk/abdev/BasicCompiler_Common/include/DataTable.h

    r184 r256  
    11#pragma once
     2
     3#include <BoostSerializationSupport.h>
    24
    35//DataTable.cpp
    46class DataTable{
    5     void *pdata;
     7    char *buffer;
    68    int size;
    79
     10    // XMLシリアライズ用
     11private:
     12    friend class boost::serialization::access;
     13    BOOST_SERIALIZATION_SPLIT_MEMBER();
     14    template<class Archive> void load(Archive& ar, const unsigned int version)
     15    {
     16        std::string _buffer;
     17        ar & BOOST_SERIALIZATION_NVP( _buffer );
     18        ar & BOOST_SERIALIZATION_NVP( size );
     19
     20        // 読み込み後の処理
     21        Realloc( size );
     22        for( int i=0; i<size; i++ )
     23        {
     24            if( _buffer[i*3+2] != ',' )
     25            {
     26                //エラー
     27                DebugBreak();
     28            }
     29            ULONG_PTR l;
     30            sscanf( _buffer.c_str() + i*3, "%02x,", &l );
     31            buffer[i] = (char)l;
     32        }
     33    }
     34    template<class Archive> void save(Archive& ar, const unsigned int version) const
     35    {
     36        // 保存準備
     37        char *tempCode = (char *)calloc( (size+1) * 3, 1 );
     38        for( int i=0; i<size; i++ )
     39        {
     40            char temp[32];
     41            sprintf( temp, "%02x,", (unsigned char)buffer[i] );
     42            tempCode[i*3] = temp[0];
     43            tempCode[i*3+1] = temp[1];
     44            tempCode[i*3+2] = temp[2];
     45        }
     46
     47        std::string _buffer = tempCode;
     48        free( tempCode );
     49
     50        ar & BOOST_SERIALIZATION_NVP( _buffer );
     51        ar & BOOST_SERIALIZATION_NVP( size );
     52    }
     53
    854public:
    9     DataTable();
    10     ~DataTable();
    11     void Init();
     55    DataTable()
     56        : buffer( (char *)malloc(100) )
     57        , size( 0 )
     58    {
     59        lstrcpy( buffer, "initialized!!!" );
     60    }
     61    DataTable( const DataTable &dataTable )
     62        : buffer( (char *)malloc(100) )
     63        , size( 0 )
     64    {
     65        lstrcpy( buffer, "initialized!!!" );
     66        AddBinary( dataTable.GetPtr(), dataTable.GetSize() );
     67    }
     68    ~DataTable()
     69    {
     70        free( buffer );
     71    }
     72    void Clear()
     73    {
     74        size = 0;
     75    }
    1276
    13     int AddBinary( const void *pdata, int size );
     77    void operator =( const DataTable &dataTable )
     78    {
     79        Clear();
     80        AddBinary( dataTable.GetPtr(), dataTable.GetSize() );
     81    }
     82
     83    void Realloc( int size );
     84    int AddBinary( const void *buffer, int size );
    1485    int Add( _int64 i64data );
    1586    int Add( int i32data );
  • trunk/abdev/BasicCompiler_Common/include/Meta.h

    r255 r256  
    1111#include <Const.h>
    1212
    13 class MetaImpl : public Jenga::Common::BoostSerializationSupport<MetaImpl>
     13class Meta
    1414{
    1515    // 名前空間
     
    4545    // XMLシリアライズ用
    4646private:
    47     virtual const char *RootTagName() const
    48     {
    49         return "metaImpl";
    50     }
    5147    friend class boost::serialization::access;
    5248    template<class Archive> void serialize(Archive& ar, const unsigned int version)
    5349    {
    54         trace_for_serialize( "serializing - MetaImpl" );
     50        trace_for_serialize( "serializing - Meta" );
    5551
    5652        ar & BOOST_SERIALIZATION_NVP( namespaceScopesCollection );
     
    6965
    7066public:
    71     MetaImpl()
     67    Meta()
    7268        : classesImpl()
    7369        , pNowClassesForDebugger( &classesImpl )
  • trunk/abdev/BasicCompiler_Common/include/NativeCode.h

    r253 r256  
    3939    template<class Archive> void serialize(Archive& ar, const unsigned int version)
    4040    {
     41        trace_for_serialize( "serializing - Schedule" );
     42
    4143        ar & BOOST_SERIALIZATION_NVP( type );
    4244        ar & BOOST_SERIALIZATION_NVP( offset );
     
    9496    template<class Archive> void load(Archive& ar, const unsigned int version)
    9597    {
     98        trace_for_serialize( "serializing(load) - NativeCode" );
     99
    96100        std::string code;
    97101        ar & BOOST_SERIALIZATION_NVP( code );
     
    103107        for( int i=0; i<size; i++ )
    104108        {
    105             char c;
    106             sscanf( code.c_str() + i*3, "%02x,", &c );
    107             codeBuffer[i] = c;
     109            ULONG_PTR l;
     110            sscanf( code.c_str() + i*3, "%02x,", &l );
     111            codeBuffer[i] = (char)l;
    108112        }
    109113    }
    110114    template<class Archive> void save(Archive& ar, const unsigned int version) const
    111115    {
     116        trace_for_serialize( "serializing(save) - NativeCode" );
     117
    112118        // 保存準備
    113         char *tempCode = (char *)malloc( (size+1) * 3 );
     119        char *tempCode = (char *)calloc( (size+1) * 3, 1 );
    114120        for( int i=0; i<size; i++ )
    115121        {
    116122            char temp[32];
    117             sprintf( temp, "%02x,", codeBuffer[i] );
     123            sprintf( temp, "%02x,", (unsigned char)codeBuffer[i] );
    118124            tempCode[i*3] = temp[0];
    119125            tempCode[i*3+1] = temp[1];
     
    130136
    131137
    132     void Realloc( int additionSize = 0 )
    133     {
    134         if( allocateSize < size + 8192 + additionSize )
    135         {
    136             while( allocateSize < size + 8192 + additionSize )
     138    void Realloc( int newSize )
     139    {
     140        if( allocateSize < newSize + 8192 )
     141        {
     142            while( allocateSize < newSize + 8192 )
    137143            {
    138144                allocateSize += 8192;
     
    149155    {
    150156    }
     157    NativeCode( const NativeCode &nativeCode )
     158        : allocateSize( 8192 )
     159        , codeBuffer( (char *)malloc( allocateSize ) )
     160        , size( 0 )
     161    {
     162        Put( nativeCode );
     163    }
    151164    NativeCode( const char *codeBuffer, int size )
    152165        : allocateSize( 8192 )
     
    165178    }
    166179
     180    void operator =( const NativeCode &nativeCode )
     181    {
     182        Clear();
     183        Put( nativeCode );
     184    }
     185
    167186    int GetSize() const
    168187    {
     
    203222    void Put( const char *codeBuffer, int size )
    204223    {
    205         Realloc( size );
     224        Realloc( this->size + size );
    206225
    207226        memcpy( this->codeBuffer + this->size, codeBuffer, size );
     
    268287    void Put( char c )
    269288    {
     289        Realloc( size + 1 );
    270290        codeBuffer[size++] = c;
    271         Realloc();
    272291
    273292
  • trunk/abdev/BasicCompiler_Common/include/SmoothieImpl.h

    r206 r256  
    33#include <jenga/include/smoothie/Smoothie.h>
    44
    5 #include <MetaImpl.h>
     5#include <Meta.h>
    66
    77class SmoothieImpl : public Smoothie
  • trunk/abdev/BasicCompiler_Common/src/BoostSerializationSupport.cpp

    r215 r256  
    1717#include <BoostSerializationSupport.h>
    1818
    19 #include <MetaImpl.h>
    20 #include <logger.h>
    21 
    2219#include <windows.h>
    2320
     
    119116}
    120117
    121 template<class T_xml_schema> bool BoostSerializationSupport<T_xml_schema>::ReadBinaly( const string &filePath, bool isShowExceptionMessage )
     118template<class T_xml_schema> bool BoostSerializationSupport<T_xml_schema>::ReadBinary( const string &filePath, bool isShowExceptionMessage )
    122119{
    123120    // 入力アーカイブの作成
     
    157154    return true;
    158155}
    159 template<class T_xml_schema> bool BoostSerializationSupport<T_xml_schema>::WriteBinaly( const string &filePath, bool isShowExceptionMessage ) const
     156template<class T_xml_schema> bool BoostSerializationSupport<T_xml_schema>::WriteBinary( const string &filePath, bool isShowExceptionMessage ) const
    160157{
    161158    // 出力アーカイブの作成
     
    301298
    302299
    303 template class Jenga::Common::BoostSerializationSupport<MetaImpl>;
     300#include <Compiler.h>
     301#include <logger.h>
     302
     303template class Jenga::Common::BoostSerializationSupport<ObjectModule>;
    304304template class Jenga::Common::BoostSerializationSupport<LoggerSetting>;
  • trunk/abdev/BasicCompiler_Common/src/Class.cpp

    r232 r256  
    189189
    190190        //継承元クラスを取得
    191         const CClass *pInheritsClass = compiler.GetMeta().GetClasses().Find(temporary);
     191        const CClass *pInheritsClass = compiler.objectModule.meta.GetClasses().Find(temporary);
    192192        if( !pInheritsClass ){
    193193            SmoothieException::Throw(106,temporary,nowLine);
     
    219219    if( !isInheritsClass ){
    220220        // クラスを一つも継承していないとき
    221         const CClass *pObjectClass = compiler.GetMeta().GetClasses().Find("Object");
     221        const CClass *pObjectClass = compiler.objectModule.meta.GetClasses().Find("Object");
    222222        if( !pObjectClass ){
    223223            SmoothieException::Throw(106,"Object",i);
     
    243243
    244244        //継承元クラスを取得
    245         const CClass *pInheritsClass = compiler.GetMeta().GetClasses().Find(temporary);
     245        const CClass *pInheritsClass = compiler.objectModule.meta.GetClasses().Find(temporary);
    246246        if( !pInheritsClass ){
    247247            SmoothieException::Throw(106,temporary,nowLine);
     
    282282        //継承先が読み取られていないとき
    283283        pobj_LoopRefCheck->add(this->GetName().c_str());
    284         compiler.GetMeta().GetClasses().GetClass_recur(inheritsClass.GetName().c_str());
     284        compiler.objectModule.meta.GetClasses().GetClass_recur(inheritsClass.GetName().c_str());
    285285        pobj_LoopRefCheck->del(this->GetName().c_str());
    286286    }
     
    344344        //継承先が読み取られていないとき
    345345        pobj_LoopRefCheck->add(this->GetName().c_str());
    346         compiler.GetMeta().GetClasses().GetClass_recur(inheritsInterface.GetName().c_str());
     346        compiler.objectModule.meta.GetClasses().GetClass_recur(inheritsInterface.GetName().c_str());
    347347        pobj_LoopRefCheck->del(this->GetName().c_str());
    348348    }
     
    427427
    428428    //関数ハッシュへ登録
    429     UserProc *pUserProc = compiler.GetMeta().GetUserProcs().Add( NamespaceScopes(), NamespaceScopesCollection(), buffer,nowLine,isVirtual,pobj_c, (bStatic!=0) );
     429    UserProc *pUserProc = compiler.objectModule.meta.GetUserProcs().Add( NamespaceScopes(), NamespaceScopesCollection(), buffer,nowLine,isVirtual,pobj_c, (bStatic!=0) );
    430430    if(!pUserProc) return;
    431431
     
    716716    }
    717717
    718     vtbl_offset=compiler.GetDataTable().AddBinary((void *)ppsi,GetVtblNum()*sizeof(LONG_PTR));
     718    vtbl_offset=compiler.objectModule.dataTable.AddBinary((void *)ppsi,GetVtblNum()*sizeof(LONG_PTR));
    719719
    720720    for( int i=0; i < GetVtblNum(); i++ ){
     
    730730
    731731    LONG_PTR *pVtbl;
    732     pVtbl=(LONG_PTR *)((char *)compiler.GetDataTable().GetPtr()+vtbl_offset);
     732    pVtbl=(LONG_PTR *)((char *)compiler.objectModule.dataTable.GetPtr()+vtbl_offset);
    733733
    734734    int i;
     
    831831
    832832    // Blittable型管理オブジェクトを初期化
    833     compiler.GetMeta().GetBlittableTypes().clear();
     833    compiler.objectModule.meta.GetBlittableTypes().clear();
    834834
    835835    // 名前空間管理
     
    951951
    952952                    // Blittable型として登録
    953                     compiler.GetMeta().GetBlittableTypes().push_back( BlittableType( blittableType, pClass ) );
     953                    compiler.objectModule.meta.GetBlittableTypes().push_back( BlittableType( blittableType, pClass ) );
    954954                }
    955955        }
     
    16561656
    16571657    // TypeDefも見る
    1658     int index = compiler.GetMeta().GetTypeDefs().GetIndex( namespaceScopes, name );
     1658    int index = compiler.objectModule.meta.GetTypeDefs().GetIndex( namespaceScopes, name );
    16591659    if( index != -1 ){
    1660         Type type = compiler.GetMeta().GetTypeDefs()[index].GetBaseType();
     1660        Type type = compiler.objectModule.meta.GetTypeDefs()[index].GetBaseType();
    16611661        if( type.IsObject() ){
    16621662            return &type.GetClass();
  • trunk/abdev/BasicCompiler_Common/src/Compiler.cpp

    r206 r256  
    1616                //関数ポインタ(*Function)
    1717                type.SetBasicType( DEF_PTR_PROC );
    18                 type.SetIndex( compiler.GetMeta().GetProcPointers().Add( typeName ) );
     18                type.SetIndex( compiler.objectModule.meta.GetProcPointers().Add( typeName ) );
    1919                return true;
    2020        }
     
    4242    // Object型だったとき
    4343    if( typeName == "Object" ){
    44         type.SetType( DEF_OBJECT, compiler.GetMeta().GetClasses().GetObjectClassPtr() );
     44        type.SetType( DEF_OBJECT, compiler.objectModule.meta.GetClasses().GetObjectClassPtr() );
    4545        return true;
    4646    }
     
    4848    // String型だったとき
    4949    if( typeName == "String" ){
    50         type.SetType( DEF_OBJECT, compiler.GetMeta().GetClasses().GetStringClassPtr() );
     50        type.SetType( DEF_OBJECT, compiler.objectModule.meta.GetClasses().GetStringClassPtr() );
    5151        return true;
    5252    }
     
    5656    // TypeDefされた型
    5757    ////////////////////
    58     int i=compiler.GetMeta().GetTypeDefs().GetIndex( typeName );
     58    int i=compiler.objectModule.meta.GetTypeDefs().GetIndex( typeName );
    5959    if(i!=-1){
    60         type = compiler.GetMeta().GetTypeDefs()[i].GetBaseType();
     60        type = compiler.objectModule.meta.GetTypeDefs()[i].GetBaseType();
    6161        return true;
    6262    }
    6363
    6464    //クラス
    65     const CClass *pobj_c = compiler.GetMeta().GetClasses().Find( typeName );
     65    const CClass *pobj_c = compiler.objectModule.meta.GetClasses().Find( typeName );
    6666    if(pobj_c){
    6767        type.SetClassPtr( pobj_c );
     
    104104        }
    105105        else{
    106             if( compiler.GetMeta().GetProcPointers()[type.GetIndex()]->ReturnType().IsNull() ){
     106            if( compiler.objectModule.meta.GetProcPointers()[type.GetIndex()]->ReturnType().IsNull() ){
    107107                return "*Sub";
    108108            }
  • trunk/abdev/BasicCompiler_Common/src/Const.cpp

    r254 r256  
    2828
    2929    //重複チェック
    30     if( compiler.GetMeta().GetGlobalConstMacros().IsExist( name )
    31         || compiler.GetMeta().GetGlobalConsts().IsExist( name ) )
     30    if( compiler.objectModule.meta.GetGlobalConstMacros().IsExist( name )
     31        || compiler.objectModule.meta.GetGlobalConsts().IsExist( name ) )
    3232    {
    3333        SetError(15,name,cp);
     
    3838        //定数マクロ
    3939
    40         compiler.GetMeta().GetGlobalConstMacros().Add( namespaceScopes, name, buffer + i );
     40        compiler.objectModule.meta.GetGlobalConstMacros().Add( namespaceScopes, name, buffer + i );
    4141    }
    4242    else{
     
    4444        char *expression = buffer + i + 1;
    4545
    46         compiler.GetMeta().GetGlobalConsts().Add( namespaceScopes, name, expression );
     46        compiler.objectModule.meta.GetGlobalConsts().Add( namespaceScopes, name, expression );
    4747    }
    4848}
  • trunk/abdev/BasicCompiler_Common/src/DataTable.cpp

    r206 r256  
    88#include <stdlib.h>
    99
    10 DataTable::DataTable(){
    11     pdata = malloc( 1 );
    12     size = 0;
    13 }
    14 DataTable::~DataTable(){
    15     free( pdata );
     10void DataTable::Realloc( int size )
     11{
     12    this->buffer = (char *)realloc( this->buffer, size + 100 );
     13    this->size = size;
    1614}
    1715
    18 void DataTable::Init(){
    19     free( pdata );
    20 
    21     pdata = malloc( 1 );
    22     size = 0;
    23 }
    24 
    25 int DataTable::AddBinary( const void *pdata, int size ){
     16int DataTable::AddBinary( const void *buffer, int size ){
    2617    int retSize = this->size;
    2718
    28     this->pdata = realloc( this->pdata, this->size + size );
    29     memcpy( (char *)this->pdata + this->size, pdata, size );
    30     this->size += size;
     19    Realloc( this->size + size );
     20    memcpy( (char *)this->buffer + retSize, buffer, size );
    3121
    3222    return retSize;
     
    8979const void *DataTable::GetPtr() const
    9080{
    91     return pdata;
     81    return buffer;
    9282}
    9383int DataTable::GetSize() const
  • trunk/abdev/BasicCompiler_Common/src/LexicalScope.cpp

    r254 r256  
    7272
    7373    Variables &vars = UserProc::IsGlobalAreaCompiling() ?
    74         compiler.GetMeta().GetGlobalVars() :
     74        compiler.objectModule.meta.GetGlobalVars() :
    7575        UserProc::CompilingUserProc().GetLocalVars();
    7676
     
    9898
    9999    Variables &vars = UserProc::IsGlobalAreaCompiling() ?
    100         compiler.GetMeta().GetGlobalVars() :
     100        compiler.objectModule.meta.GetGlobalVars() :
    101101        UserProc::CompilingUserProc().GetLocalVars();
    102102
  • trunk/abdev/BasicCompiler_Common/src/NamespaceSupporter.cpp

    r206 r256  
    99{
    1010    NamespaceScopes namespaceScopes( namespaceStr );
    11     if( !compiler.GetMeta().GetNamespaces().IsExist( namespaceScopes ) ){
     11    if( !compiler.objectModule.meta.GetNamespaces().IsExist( namespaceScopes ) ){
    1212        return false;
    1313    }
Note: See TracChangeset for help on using the changeset viewer.