Changeset 272 in dev for trunk/abdev/BasicCompiler_Common/src
- Timestamp:
- Aug 10, 2007, 9:20:45 PM (17 years ago)
- Location:
- trunk/abdev/BasicCompiler_Common/src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler_Common/src/Class.cpp
r270 r272 219 219 if( !isInheritsClass ){ 220 220 // クラスを一つも継承していないとき 221 const CClass *pObjectClass = compiler.GetObjectModule().meta.GetClasses().Find("Object"); 222 if( !pObjectClass ){ 223 SmoothieException::Throw(106,"Object",i); 224 return false; 225 } 226 227 if( !InheritsClass( *pObjectClass, nowLine ) ){ 221 if( !InheritsClass( *compiler.GetObjectModule().meta.GetClasses().GetObjectClassPtr(), nowLine ) ){ 228 222 return false; 229 223 } … … 763 757 bool Classes::Insert( CClass *pClass ) 764 758 { 765 // キャッシュしておくクラス766 if( pClass->GetName() == "String" )767 {768 pStringClass=pClass;769 }770 else if( pClass->GetName() == "Object" )771 {772 pObjectClass = pClass;773 }774 775 759 ///////////////////////////////// 776 760 // ハッシュデータに追加 … … 804 788 int i, i2; 805 789 char temporary[VN_SIZE]; 806 807 // Blittable型管理オブジェクトを初期化808 compiler.GetObjectModule().meta.GetBlittableTypes().clear();809 790 810 791 // 名前空間管理 … … 953 934 while(this->Iterator_HasNext()){ 954 935 CClass &objClass = *this->Iterator_GetNext(); 936 if( objClass.isTargetObjectModule == false ) 937 { 938 // 静的リンクライブラリの場合は飛ばす(既にインスタンスが定義済みであるため) 939 continue; 940 } 955 941 956 942 // 名前空間をセット … … 1653 1639 } 1654 1640 1655 CClass *Classes::GetStringClassPtr() const1641 const CClass *Classes::GetStringClassPtr() const 1656 1642 { 1657 1643 if( !pStringClass ){ 1658 SmoothieException::Throw(); 1659 return NULL; 1644 // キャッシュしておく 1645 pStringClass = this->Find( NamespaceScopes( "System" ), "String" ); 1646 1647 if( !pStringClass ) 1648 { 1649 SmoothieException::Throw(); 1650 } 1651 return pStringClass; 1660 1652 } 1661 1653 return pStringClass; 1662 1654 } 1663 CClass *Classes::GetObjectClassPtr() const1655 const CClass *Classes::GetObjectClassPtr() const 1664 1656 { 1665 1657 if( !pObjectClass ){ 1666 SmoothieException::Throw(); 1667 return NULL; 1658 // キャッシュしておく 1659 pObjectClass = this->Find( NamespaceScopes( "System" ), "Object" ); 1660 1661 if( !pObjectClass ) 1662 { 1663 SmoothieException::Throw(); 1664 } 1665 return pObjectClass; 1668 1666 } 1669 1667 return pObjectClass; -
trunk/abdev/BasicCompiler_Common/src/Meta.cpp
r271 r272 2 2 3 3 #include <Compiler.h> 4 5 void Meta::Clear() 6 { 7 // 名前空間 8 namespaceScopesCollection.clear(); 9 10 // 関数・メソッド 11 userProcs.Clear(); 12 13 // DLL関数 14 dllProcs.Clear(); 15 16 // クラス 17 classesImpl.Clear(); 18 19 // グローバル変数 20 globalVars.Clear(); 21 22 // グローバル定数 23 globalConsts.Clear(); 24 25 // グローバル定数マクロ 26 globalConstMacros.Clear(); 27 28 // blittable型 29 blittableTypes.clear(); 30 31 // TypeDef 32 typeDefs.clear(); 33 34 // 関数ポインタ 35 procPointers.Clear(); 36 } 4 37 5 38 void Meta::StaticLink( Meta &meta ) -
trunk/abdev/BasicCompiler_Common/src/TypeDef.cpp
r206 r272 142 142 } 143 143 144 void TypeDefCollection::Init(){ 145 // 初期化 146 clear(); 144 void TypeDefCollection::CollectTypeDefs(){ 147 145 148 146 // 名前空間管理
Note:
See TracChangeset
for help on using the changeset viewer.