Changeset 567 in dev for trunk/ab5.0/abdev/BasicCompiler_Common/src
- Timestamp:
- May 6, 2008, 3:35:08 PM (17 years ago)
- Location:
- trunk/ab5.0/abdev/BasicCompiler_Common/src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/BasicCompiler_Common/src/Class.cpp
r566 r567 698 698 const CClass *Classes::GetStringClassPtr() const 699 699 { 700 if( !pStringClass ){ 700 if( !pStringClass ) 701 { 701 702 // キャッシュしておく 702 703 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;711 704 } 712 705 return pStringClass; … … 714 707 const CClass *Classes::GetObjectClassPtr() const 715 708 { 716 if( !pObjectClass ){ 709 if( !pObjectClass ) 710 { 717 711 // キャッシュしておく 718 712 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;727 713 } 728 714 return pObjectClass; … … 730 716 const CClass *Classes::GetInterfaceInfoClassPtr() const 731 717 { 732 if( !pInterfaceInfo ){ 718 if( !pInterfaceInfo ) 719 { 733 720 // キャッシュしておく 734 721 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;743 722 } 744 723 return pInterfaceInfo; … … 757 736 758 737 result += "\"" + pMember->GetName() + "\""; 759 }760 761 return result;762 }763 std::string CClass::GetStaticDefiningStringAsMemberTypeInfoNames() const764 {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() ) + "\"";775 738 } 776 739 -
trunk/ab5.0/abdev/BasicCompiler_Common/src/ProcedureGenerator.cpp
r565 r567 118 118 } 119 119 120 std::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 120 137 void ProcedureGenerator::Generate_System_InitializeUserTypesForBaseType( const Classes &classes ) 121 138 { … … 187 204 "tempType.SetMembers([%s],[%s],[%s],%d)", 188 205 objClass.GetStaticDefiningStringAsMemberNames().c_str(), 189 objClass.GetStaticDefiningStringAsMemberTypeInfoNames().c_str(),206 GetStaticDefiningStringAsMemberTypeInfoNames( objClass ).c_str(), 190 207 objClass.GetStaticDefiningStringAsMemberOffsets().c_str(), 191 208 objClass.GetDynamicMembers().size()
Note:
See TracChangeset
for help on using the changeset viewer.