Ignore:
Timestamp:
May 6, 2008, 3:35:08 PM (17 years ago)
Author:
dai_9181
Message:

GetStringClassPtrGetObjectClassPtr、GetInterfaceInfoClassPtrクラスからエラー出力を排除した。
・GetStaticDefiningStringAsMemberTypeInfoNamesメソッドの実装位置をCClassクラスからProcedureGeneratorクラスに移動した。

Location:
trunk/ab5.0/abdev/BasicCompiler_Common
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/BasicCompiler_Common/include/Class.h

    r566 r567  
    475475    // 動的型データ用のメンバデータを取得
    476476    std::string GetStaticDefiningStringAsMemberNames() const;
    477     std::string GetStaticDefiningStringAsMemberTypeInfoNames() const;
    478477    std::string GetStaticDefiningStringAsMemberOffsets() const;
    479478    void GetReferenceOffsetsInitializeBuffer( std::string &referenceOffsetsBuffer, int &numOfReference, int baseOffset = 0 ) const;
  • trunk/ab5.0/abdev/BasicCompiler_Common/include/ProcedureGenerator.h

    r565 r567  
    99    static void Generate_InitStaticMember( const Classes &classes );
    1010    static void Generate_System_InitializeUserTypes( const Classes &classes );
     11    static std::string GetStaticDefiningStringAsMemberTypeInfoNames( const CClass &_class );
    1112    static void Generate_System_InitializeUserTypesForBaseType( const Classes &classes );
    1213};
  • trunk/ab5.0/abdev/BasicCompiler_Common/src/Class.cpp

    r566 r567  
    698698const CClass *Classes::GetStringClassPtr() const
    699699{
    700     if( !pStringClass ){
     700    if( !pStringClass )
     701    {
    701702        // キャッシュしておく
    702703        pStringClass = this->FindEx( NamespaceScopes( "System" ), "String" );
    703 
    704         if( !pStringClass )
    705         {
    706             compiler.errorMessenger.Output(400, "System.String", cp);
    707             static CClass dummy;
    708             return &dummy;
    709         }
    710         return pStringClass;
    711704    }
    712705    return pStringClass;
     
    714707const CClass *Classes::GetObjectClassPtr() const
    715708{
    716     if( !pObjectClass ){
     709    if( !pObjectClass )
     710    {
    717711        // キャッシュしておく
    718712        pObjectClass = this->FindEx( NamespaceScopes( "System" ), "Object" );
    719 
    720         if( !pObjectClass )
    721         {
    722             compiler.errorMessenger.Output(400, "System.Object", cp);
    723             static CClass dummy;
    724             return &dummy;
    725         }
    726         return pObjectClass;
    727713    }
    728714    return pObjectClass;
     
    730716const CClass *Classes::GetInterfaceInfoClassPtr() const
    731717{
    732     if( !pInterfaceInfo ){
     718    if( !pInterfaceInfo )
     719    {
    733720        // キャッシュしておく
    734721        pInterfaceInfo = this->FindEx( "ActiveBasic.Core.InterfaceInfo" );
    735 
    736         if( !pInterfaceInfo )
    737         {
    738             compiler.errorMessenger.Output(400, "ActiveBasic.Core.InterfaceInfo", cp);
    739             static CClass dummy;
    740             return &dummy;
    741         }
    742         return pInterfaceInfo;
    743722    }
    744723    return pInterfaceInfo;
     
    757736
    758737        result += "\"" + pMember->GetName() + "\"";
    759     }
    760 
    761     return result;
    762 }
    763 std::string CClass::GetStaticDefiningStringAsMemberTypeInfoNames() const
    764 {
    765     std::string result;
    766 
    767     BOOST_FOREACH( const Member *pMember, dynamicMembers )
    768     {
    769         if( result.size() )
    770         {
    771             result += ",";
    772         }
    773 
    774         result += "\"" + compiler.TypeToString( pMember->GetType() ) + "\"";
    775738    }
    776739
  • trunk/ab5.0/abdev/BasicCompiler_Common/src/ProcedureGenerator.cpp

    r565 r567  
    118118}
    119119
     120std::string ProcedureGenerator::GetStaticDefiningStringAsMemberTypeInfoNames( const CClass &_class )
     121{
     122    std::string result;
     123
     124    BOOST_FOREACH( const Member *pMember, _class.GetDynamicMembers() )
     125    {
     126        if( result.size() )
     127        {
     128            result += ",";
     129        }
     130
     131        result += "\"" + compiler.TypeToString( pMember->GetType() ) + "\"";
     132    }
     133
     134    return result;
     135}
     136
    120137void ProcedureGenerator::Generate_System_InitializeUserTypesForBaseType( const Classes &classes )
    121138{
     
    187204                    "tempType.SetMembers([%s],[%s],[%s],%d)",
    188205                    objClass.GetStaticDefiningStringAsMemberNames().c_str(),
    189                     objClass.GetStaticDefiningStringAsMemberTypeInfoNames().c_str(),
     206                    GetStaticDefiningStringAsMemberTypeInfoNames( objClass ).c_str(),
    190207                    objClass.GetStaticDefiningStringAsMemberOffsets().c_str(),
    191208                    objClass.GetDynamicMembers().size()
Note: See TracChangeset for help on using the changeset viewer.