Changeset 193 in dev for trunk/abdev/BasicCompiler32


Ignore:
Timestamp:
Jun 26, 2007, 5:04:50 AM (17 years ago)
Author:
dai_9181
Message:
 
Location:
trunk/abdev/BasicCompiler32
Files:
8 edited

Legend:

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

    r191 r193  
    12871287                    >
    12881288                </File>
     1289                <File
     1290                    RelativePath="..\BasicCompiler_Common\src\TypeDef.cpp"
     1291                    >
     1292                </File>
     1293                <File
     1294                    RelativePath="..\BasicCompiler_Common\src\VariableImpl.cpp"
     1295                    >
     1296                </File>
    12891297            </Filter>
    12901298        </Filter>
     
    13801388                    >
    13811389                </File>
     1390                <File
     1391                    RelativePath="..\BasicCompiler_Common\include\TypeDef.h"
     1392                    >
     1393                </File>
     1394                <File
     1395                    RelativePath="..\BasicCompiler_Common\include\VariableImpl.h"
     1396                    >
     1397                </File>
    13821398            </Filter>
    13831399        </Filter>
  • trunk/abdev/BasicCompiler32/Compile_Calc.cpp

    r183 r193  
    11#include <jenga/include/smoothie/Smoothie.h>
    22#include <jenga/include/smoothie/LexicalAnalysis.h>
     3
     4#include <Compiler.h>
    35
    46#include "../BasicCompiler_Common/common.h"
     
    622624
    623625
    624     if( varType.IsObject() && Smoothie::GetMeta().blittableTypes.IsExist( calcType ) ){
     626    if( varType.IsObject() && compiler.GetMeta().GetBlittableTypes().IsExist( calcType ) ){
    625627        // Blittable型をオブジェクトとして扱う
    626628        vector<UserProc *> userProcs;
    627         Smoothie::GetMeta().blittableTypes.GetClass( calcType ).GetStaticMethods().Enum( "_Create", userProcs );
     629        compiler.GetMeta().GetBlittableTypes().GetClass( calcType ).GetStaticMethods().Enum( "_Create", userProcs );
    628630        if( userProcs.size() != 1 ){
    629631            SetError();
  • trunk/abdev/BasicCompiler32/Compile_CallProc.cpp

    r183 r193  
    11#include <jenga/include/smoothie/Smoothie.h>
     2
     3#include <Compiler.h>
    24
    35#include "../BasicCompiler_Common/common.h"
     
    129131                pobj_c = &varType.GetClass();
    130132                if( NATURAL_TYPE( varType.GetBasicType() ) != DEF_OBJECT ){
    131                     pobj_c=Smoothie::GetMeta().GetClasses().Find(ObjectName);
     133                    pobj_c=compiler.GetMeta().GetClasses().Find(ObjectName);
    132134                    if( pobj_c ){
    133135                        isStatic = true;
  • trunk/abdev/BasicCompiler32/Compile_Func.cpp

    r183 r193  
    11#include <jenga/include/smoothie/Smoothie.h>
     2
     3#include <Compiler.h>
    24
    35#include "../BasicCompiler_Common/common.h"
     
    178180        tempParm=temp2;
    179181
    180         type.SetType( DEF_OBJECT, Smoothie::GetMeta().GetClasses().GetStringClassPtr() );
     182        type.SetType( DEF_OBJECT, compiler.GetMeta().GetClasses().GetStringClassPtr() );
    181183    }
    182184
     
    230232
    231233        //オーバーロードを解決
    232         pUserProc=OverloadSolution(name,subs,Smoothie::GetMeta().GetProcPointers()[ProcPtr_BaseIndex]->Params(), Type() );
     234        pUserProc=OverloadSolution(name,subs,compiler.GetMeta().GetProcPointers()[ProcPtr_BaseIndex]->Params(), Type() );
    233235
    234236        if(!pUserProc){
     
    318320void Opcode_Func_SizeOf( const string &typeName ){
    319321    Type tempType;
    320     if( !Type::StringToType( typeName, tempType ) ){
     322    if( !Compiler::StringToType( typeName, tempType ) ){
    321323        SetError(3,typeName,cp);
    322324        return;
  • trunk/abdev/BasicCompiler32/Compile_ProcOp.cpp

    r183 r193  
    33
    44#include <Program.h>
     5#include <Compiler.h>
    56#include <LexicalScopingImpl.h>
    67#include <ClassImpl.h>
     8#include <VariableImpl.h>
    79
    810#include "../BasicCompiler_Common/common.h"
     
    5557
    5658        //クラスに属する静的メンバを定義
    57         Smoothie::GetMeta().GetClasses().InitStaticMember();
     59        compiler.GetMeta().GetClasses().InitStaticMember();
    5860
    5961        GetGlobalDataForDll();
     
    224226        && userProc.GetParentClass().GetName() == "_System_TypeBase" ){
    225227
    226             Smoothie::GetMeta().GetClasses().Compile_System_InitializeUserTypes();
     228            compiler.GetMeta().GetClasses().Compile_System_InitializeUserTypes();
    227229    }
    228230    else if( userProc.GetName() == "RegisterGlobalRoots"
     
    273275
    274276    //コンパイルスタートをクラス管理クラスに追加
    275     Smoothie::GetMeta().GetClasses().StartCompile( pUserProc );
     277    compiler.GetMeta().GetClasses().StartCompile( pUserProc );
    276278
    277279    //コンパイル中の関数
     
    282284
    283285    // コンパイル中の関数でImportsされている名前空間
    284     Smoothie::Temp::importedNamespaces = pUserProc->GetImportedNamespaces();
     286    compiler.SetImportedNamespaces( pUserProc->GetImportedNamespaces() );
    285287
    286288    if(pUserProc->IsSystem()){
     
    318320        Parameter &param = *pUserProc->RealParams()[i3];
    319321
    320         Variable *pVar = new Variable( param.GetVarName(), param, false, param.IsRef() );
     322        Variable *pVar = new VariableImpl( param.GetVarName(), param, false, param.IsRef() );
    321323
    322324        if( param.IsArray() ){
     
    395397        else{
    396398            if( pUserProc->ReturnType().IsObject() ){
    397                 sprintf(temporary,"%s=Nothing%c%c%s",temp,1,ESC_AS, pUserProc->ReturnType().ToString().c_str() );
     399                sprintf(temporary,"%s=Nothing%c%c%s",temp,1,ESC_AS, Compiler::TypeToString( pUserProc->ReturnType() ).c_str() );
    398400            }
    399401            else{
    400402                //戻り値用の変数の定義
    401                 sprintf(temporary,"%s%c%c%s",temp,1,ESC_AS, pUserProc->ReturnType().ToString().c_str() );
     403                sprintf(temporary,"%s%c%c%s",temp,1,ESC_AS, Compiler::TypeToString( pUserProc->ReturnType() ).c_str() );
    402404            }
    403405
  • trunk/abdev/BasicCompiler32/Compile_Var.cpp

    r183 r193  
    55#include <CodeGenerator.h>
    66#include <Compiler.h>
     7#include <VariableImpl.h>
    78
    89#include "../BasicCompiler_Common/common.h"
     
    367368    // 名前空間を分離
    368369    char namespaceStr[VN_SIZE]="", simpleName[VN_SIZE];
    369     Smoothie::GetMeta().namespaceScopesCollection.SplitNamespace( variable, namespaceStr, simpleName );
     370    compiler.GetMeta().GetNamespaces().SplitNamespace( variable, namespaceStr, simpleName );
    370371
    371372    // 先頭オブジェクトまたはクラス名と入れ子メンバに分割
     
    461462        //Const修飾子のメソッド内でメンバ書き込みアクセスが発生したとき
    462463        //(コンストラクタ、デストラクタ内を除く)
    463         const CMethod *pMethod = Smoothie::GetMeta().GetClasses().GetNowCompilingMethodInfo();
     464        const CMethod *pMethod = compiler.GetMeta().GetClasses().GetNowCompilingMethodInfo();
    464465        if( isWriteAccess &&
    465466            pMethod->IsConst() &&
     
    524525            }
    525526
    526             int typeDefIndex = Smoothie::GetMeta().typeDefs.GetIndex( VarName );
     527            int typeDefIndex = compiler.GetMeta().GetTypeDefs().GetIndex( VarName );
    527528            if( typeDefIndex != -1 ){
    528529                // TypeDef後の型名だったとき
    529                 lstrcpy( VarName, Smoothie::GetMeta().typeDefs[typeDefIndex].GetBaseName().c_str() );
     530                lstrcpy( VarName, compiler.GetMeta().GetTypeDefs()[typeDefIndex].GetBaseName().c_str() );
    530531            }
    531532
     
    832833            char *temp;
    833834            temp=(char *)i64data;
    834             i2=Compiler::GetNativeCode().GetDataTable().AddString(temp,lstrlen(temp));
     835            i2=compiler.GetNativeCode().GetDataTable().AddString(temp,lstrlen(temp));
    835836            HeapDefaultFree(temp);
    836837
     
    10221023            char *temp;
    10231024            temp=(char *)i64data;
    1024             i2=Compiler::GetNativeCode().GetDataTable().AddString(temp,lstrlen(temp));
     1025            i2=compiler.GetNativeCode().GetDataTable().AddString(temp,lstrlen(temp));
    10251026            HeapDefaultFree(temp);
    10261027
     
    10951096        bool isConst = ( dwFlags & DIMFLAG_CONST ) ? true:false;
    10961097
    1097         Variable *pVar = new Variable( VarName, type, isConst );
     1098        Variable *pVar = new VariableImpl( VarName, type, isConst );
    10981099
    10991100        if( SubScripts[0] != -1 ){
  • trunk/abdev/BasicCompiler32/MakePeHdr.cpp

    r191 r193  
    140140    //////////////////
    141141    // データテーブル
    142     Compiler::GetNativeCode().GetDataTable().Init();
     142    compiler.GetNativeCode().GetDataTable().Init();
    143143    if(bDebugCompile){
    144         Compiler::GetNativeCode().GetDataTable().Add( (long)0x00000002 );
     144        compiler.GetNativeCode().GetDataTable().Add( (long)0x00000002 );
    145145    }
    146146
     
    166166
    167167    //関数ポインタ情報を初期化
    168     Smoothie::GetMeta().GetProcPointers().clear();
     168    compiler.GetMeta().GetProcPointers().clear();
    169169
    170170    // 名前空間情報を取得
    171171    NamespaceScopesCollection::CollectNamespaces(
    172172        Smoothie::Lexical::source.GetBuffer(),
    173         Smoothie::GetMeta().namespaceScopesCollection
     173        compiler.GetMeta().GetNamespaces()
    174174    );
    175175
     
    177177    //   GetSubInfo関数の中で参照されるオブジェクト名を事前に取得する。
    178178    //     ※オブジェクトの内容までは取得しない
    179     Smoothie::GetMeta().GetClasses().CollectClassesForNameOnly( Smoothie::Lexical::source );
     179    compiler.GetMeta().GetClasses().CollectClassesForNameOnly( Smoothie::Lexical::source );
    180180
    181181    //TypeDef情報を初期化
    182     Smoothie::GetMeta().typeDefs.Init();
     182    compiler.GetMeta().GetTypeDefs().Init();
    183183
    184184    //定数情報を取得
     
    190190
    191191    //クラス情報を取得(※注 - GetSubInfoの後に呼び出す)
    192     Smoothie::GetMeta().GetClasses().GetAllClassInfo();
    193 
    194     if( !Smoothie::GetMeta().AutoWrite( Jenga::Common::Environment::GetAppDir() + "\\meta_test.xml" ) )
     192    compiler.GetMeta().GetClasses().GetAllClassInfo();
     193
     194    if( !compiler.GetMeta().AutoWrite( Jenga::Common::Environment::GetAppDir() + "\\meta_test.xml" ) )
    195195    {
    196196        ts(0);
     
    415415
    416416        //クラスに属する静的メンバを定義
    417         Smoothie::GetMeta().GetClasses().InitStaticMember();
     417        compiler.GetMeta().GetClasses().InitStaticMember();
    418418
    419419        //グローバル実行領域をコンパイル開始
     
    884884
    885885    //データセクションのファイル上のサイズ
    886     if(Compiler::GetNativeCode().GetDataTable().GetSize()%FILE_ALIGNMENT) FileSize_DataSection=Compiler::GetNativeCode().GetDataTable().GetSize()+(FILE_ALIGNMENT-Compiler::GetNativeCode().GetDataTable().GetSize()%FILE_ALIGNMENT);
    887     else FileSize_DataSection=Compiler::GetNativeCode().GetDataTable().GetSize();
     886    if(compiler.GetNativeCode().GetDataTable().GetSize()%FILE_ALIGNMENT) FileSize_DataSection=compiler.GetNativeCode().GetDataTable().GetSize()+(FILE_ALIGNMENT-compiler.GetNativeCode().GetDataTable().GetSize()%FILE_ALIGNMENT);
     887    else FileSize_DataSection=compiler.GetNativeCode().GetDataTable().GetSize();
    888888    if(FileSize_DataSection) bUse_DataSection=1;
    889889    else bUse_DataSection=0;
     
    10761076    ////////////////////////////////////////
    10771077    //仮想関数データテーブルスケジュール
    1078     Smoothie::GetMeta().GetClasses().ActionVtblSchedule(ImageBase,MemPos_CodeSection);
     1078    compiler.GetMeta().GetClasses().ActionVtblSchedule(ImageBase,MemPos_CodeSection);
    10791079
    10801080
     
    16111611    if(bUse_DataSection){
    16121612        //データ テーブル
    1613         WriteFile(hFile,Compiler::GetNativeCode().GetDataTable().GetPtr(),Compiler::GetNativeCode().GetDataTable().GetSize(),(DWORD *)&i2,NULL);
     1613        WriteFile(hFile,compiler.GetNativeCode().GetDataTable().GetPtr(),compiler.GetNativeCode().GetDataTable().GetSize(),(DWORD *)&i2,NULL);
    16141614        i+=i2;
    16151615    }
     
    17231723
    17241724    //クラスに関するメモリを解放
    1725     Smoothie::GetMeta().GetClasses().Clear();
     1725    compiler.GetMeta().GetClasses().Clear();
    17261726}
  • trunk/abdev/BasicCompiler32/NumOpe.cpp

    r183 r193  
    8282    SetStringQuotes( parameter );
    8383
    84     Operator_New( *Smoothie::GetMeta().GetClasses().GetStringClassPtr(), "", parameter, Type( DEF_OBJECT, *Smoothie::GetMeta().GetClasses().GetStringClassPtr() ) );
     84    Operator_New( *compiler.GetMeta().GetClasses().GetStringClassPtr(), "", parameter, Type( DEF_OBJECT, *compiler.GetMeta().GetClasses().GetStringClassPtr() ) );
    8585
    8686    free( parameter );
     
    261261        Type leftType;
    262262        if( GetTermType( termLeft, leftType, isLiteral, &isClassName ) ){
    263             if( isClassName == false && Smoothie::GetMeta().blittableTypes.IsExist( leftType ) ){
     263            if( isClassName == false && compiler.GetMeta().GetBlittableTypes().IsExist( leftType ) ){
    264264                // 左側のオブジェクト部分がBlittable型のとき
    265265
     
    267267                lstrcpy( temporary, termLeft );
    268268                sprintf( termLeft, "%s(%s)",
    269                     Smoothie::GetMeta().blittableTypes.Find( leftType ).GetCreateStaticMethodFullName().c_str(),
     269                    compiler.GetMeta().GetBlittableTypes().Find( leftType ).GetCreateStaticMethodFullName().c_str(),
    270270                    temporary );
    271271            }
     
    296296
    297297    if( pIsClassName ){
    298         if( Smoothie::GetMeta().GetClasses().Find( termFull ) ){
     298        if( compiler.GetMeta().GetClasses().Find( termFull ) ){
    299299            *pIsClassName = true;
    300300            return true;
     
    593593        }
    594594
    595         i2 = Compiler::GetNativeCode().GetDataTable().AddBinary( binary, num * tempBaseType.GetSize() );
     595        i2 = compiler.GetNativeCode().GetDataTable().AddBinary( binary, num * tempBaseType.GetSize() );
    596596
    597597        //mov eax,i2
     
    709709                    // As演算子の右辺値
    710710                    //型名
    711                     if( Type::StringToType( term, resultType ) ){
     711                    if( Compiler::StringToType( term, resultType ) ){
    712712                        resultType.SetBasicType( resultType.GetBasicType() | FLAG_CAST );
    713713                    }
     
    740740
    741741                        type_stack[sp]=DEF_OBJECT;
    742                         index_stack[sp]=(LONG_PTR)Smoothie::GetMeta().GetClasses().GetStringClassPtr();
     742                        index_stack[sp]=(LONG_PTR)compiler.GetMeta().GetClasses().GetStringClassPtr();
    743743                        bLiteralCalculation=0;
    744744
     
    751751                    bLiteralCalculation=0;
    752752
    753                     i2=Compiler::GetNativeCode().GetDataTable().AddString(term,i3);
     753                    i2=compiler.GetNativeCode().GetDataTable().AddString(term,i3);
    754754
    755755                    //push DataSize
     
    838838                        }
    839839                        else{
    840                             index_stack[sp] = (LONG_PTR)Smoothie::GetMeta().GetClasses().GetObjectClassPtr();
     840                            index_stack[sp] = (LONG_PTR)compiler.GetMeta().GetClasses().GetObjectClassPtr();
    841841                        }
    842842
Note: See TracChangeset for help on using the changeset viewer.