Ignore:
Timestamp:
Aug 23, 2007, 6:17:00 PM (17 years ago)
Author:
dai_9181
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler_Common/src/Compiler.cpp

    r290 r299  
    3434
    3535        // ジェネリクスクラスを取得
    36         const CClass *pGenericClass = compiler.GetObjectModule().meta.GetClasses().Find( className );
     36        const CClass *pGenericClass = this->GetObjectModule().meta.GetClasses().Find( className );
    3737
    3838        // 型パラメータの型情報を取得
     
    6262                //関数ポインタ(*Function)
    6363                type.SetBasicType( DEF_PTR_PROC );
    64                 type.SetIndex( compiler.GetObjectModule().meta.GetProcPointers().Add( typeName ) );
     64                type.SetIndex( this->GetObjectModule().meta.GetProcPointers().Add( typeName ) );
    6565                return true;
    6666        }
     
    8888    // Object型だったとき
    8989    if( typeName == "Object" ){
    90         type.SetType( DEF_OBJECT, compiler.GetObjectModule().meta.GetClasses().GetObjectClassPtr() );
     90        type.SetType( DEF_OBJECT, this->GetObjectModule().meta.GetClasses().GetObjectClassPtr() );
    9191        return true;
    9292    }
     
    9494    // String型だったとき
    9595    if( typeName == "String" ){
    96         type.SetType( DEF_OBJECT, compiler.GetObjectModule().meta.GetClasses().GetStringClassPtr() );
     96        type.SetType( DEF_OBJECT, this->GetObjectModule().meta.GetClasses().GetStringClassPtr() );
    9797        return true;
    9898    }
     
    102102    // TypeDefされた型
    103103    ////////////////////
    104     int i=compiler.GetObjectModule().meta.GetTypeDefs().GetIndex( typeName );
     104    int i=this->GetObjectModule().meta.GetTypeDefs().GetIndex( typeName );
    105105    if(i!=-1){
    106         type = compiler.GetObjectModule().meta.GetTypeDefs()[i].GetBaseType();
     106        type = this->GetObjectModule().meta.GetTypeDefs()[i].GetBaseType();
    107107        return true;
    108108    }
    109109
    110110    //クラス
    111     const CClass *pobj_c = compiler.GetObjectModule().meta.GetClasses().Find( typeName );
     111    const CClass *pobj_c = this->GetObjectModule().meta.GetClasses().Find( typeName );
    112112    if(pobj_c){
    113113        if( pobj_c->IsStructure() ){
     
    126126
    127127    // 型パラメータ
    128     if( compiler.pCompilingClass )
     128    if( this->pCompilingClass )
    129129    {
    130130        // クラスに属するメソッドをコンパイルしているとき
    131         if( compiler.pCompilingClass->IsExistFormalGenericTypeParameter( typeName ) )
     131        int formalTypeIndex = this->pCompilingClass->GetFormalGenericTypeParameterIndex( typeName );
     132        if( formalTypeIndex != -1 )
    132133        {
    133134            // コンパイル中クラスにおけるジェネリクス用の型パラメータのとき
    134135            type.SetBasicType( DEF_TYPE_PARAMETER );
    135             type.SetClassPtr( compiler.GetObjectModule().meta.GetClasses().GetObjectClassPtr() );
     136            type.SetClassPtr( this->GetObjectModule().meta.GetClasses().GetObjectClassPtr() );
     137            type.SetFormalTypeName( typeName );
     138            type.SetFormalTypeIndex( formalTypeIndex );
    136139            return true;
    137140        }
     
    169172        }
    170173        else{
    171             if( compiler.GetObjectModule().meta.GetProcPointers()[type.GetIndex()]->ReturnType().IsNull() ){
     174            if( this->GetObjectModule().meta.GetProcPointers()[type.GetIndex()]->ReturnType().IsNull() ){
    172175                return "*Sub";
    173176            }
Note: See TracChangeset for help on using the changeset viewer.