- Timestamp:
- May 6, 2008, 3:35:08 PM (17 years ago)
- Location:
- trunk/ab5.0/abdev
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/BasicCompiler_Common/include/Class.h
r566 r567 475 475 // 動的型データ用のメンバデータを取得 476 476 std::string GetStaticDefiningStringAsMemberNames() const; 477 std::string GetStaticDefiningStringAsMemberTypeInfoNames() const;478 477 std::string GetStaticDefiningStringAsMemberOffsets() const; 479 478 void GetReferenceOffsetsInitializeBuffer( std::string &referenceOffsetsBuffer, int &numOfReference, int baseOffset = 0 ) const; -
trunk/ab5.0/abdev/BasicCompiler_Common/include/ProcedureGenerator.h
r565 r567 9 9 static void Generate_InitStaticMember( const Classes &classes ); 10 10 static void Generate_System_InitializeUserTypes( const Classes &classes ); 11 static std::string GetStaticDefiningStringAsMemberTypeInfoNames( const CClass &_class ); 11 12 static void Generate_System_InitializeUserTypesForBaseType( const Classes &classes ); 12 13 }; -
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() -
trunk/ab5.0/abdev/ab_common/ab_common.vcproj
r530 r567 351 351 > 352 352 <File 353 RelativePath=".\include\Lexical\CompilerErrorException.h" 354 > 355 </File> 356 <File 353 357 RelativePath=".\include\Lexical\Namespace.h" 354 358 >
Note:
See TracChangeset
for help on using the changeset viewer.