Changeset 640 in dev for trunk/ab5.0/abdev/ab_common/include
- Timestamp:
- Jun 14, 2008, 12:16:27 PM (16 years ago)
- Location:
- trunk/ab5.0/abdev/ab_common/include
- Files:
-
- 1 added
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/ab_common/include/Lexical/Class.h
r639 r640 147 147 return false; 148 148 } 149 bool Equals( const CClass *pClass ) const 150 { 151 // ポインタが等しいかどうかを見てみる 152 if( this == pClass ) 153 { 154 return true; 155 } 156 else if( this->IsNeedResolve() || pClass->IsNeedResolve() ) 157 { 158 // 依存関係解決前の状態であれば、パスが等しいかどうかを見てみる 159 if( this->IsDuplication( pClass ) ) 160 { 161 return true; 162 } 163 } 164 return false; 165 } 149 166 150 167 virtual void Using() const; … … 466 483 void GetReferenceOffsetsInitializeBuffer( std::string &referenceOffsetsBuffer, int &numOfReference, int baseOffset = 0 ) const; 467 484 468 virtual bool Resolve( const ObjectModule &resolver );485 virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors ); 469 486 }; 470 487 -
trunk/ab5.0/abdev/ab_common/include/Lexical/Const.h
r639 r640 1 1 #pragma once 2 2 3 // 定数3 //è 4 4 class CConst 5 5 : public RelationalObjectModuleItem … … 9 9 _int64 i64data; 10 10 11 // XML シリアライズ用11 // XMLVACYp 12 12 private: 13 13 friend class boost::serialization::access; … … 66 66 double GetDoubleData(); 67 67 68 virtual bool Resolve( const ObjectModule &resolver );68 virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors ); 69 69 }; 70 70 class Consts : public Jenga::Common::Hashmap<CConst> 71 71 { 72 // XML シリアライズ用72 // XMLVACYp 73 73 private: 74 74 friend class boost::serialization::access; … … 96 96 }; 97 97 98 // 定数マクロ98 //è}N 99 99 class ConstMacro 100 100 : public RelationalObjectModuleItem … … 104 104 std::string expression; 105 105 106 // XML シリアライズ用106 // XMLVACYp 107 107 private: 108 108 friend class boost::serialization::access; … … 154 154 } 155 155 156 virtual bool Resolve( const ObjectModule &resolver );156 virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors ); 157 157 }; 158 158 class ConstMacros 159 159 : public Jenga::Common::Hashmap<ConstMacro> 160 160 { 161 // XML シリアライズ用161 // XMLVACYp 162 162 private: 163 163 friend class boost::serialization::access; -
trunk/ab5.0/abdev/ab_common/include/Lexical/DataTable.h
r639 r640 150 150 void ResetDataSectionBaseOffset( long dataSectionBaseOffset ); 151 151 152 void Resolve( const ObjectModule &resolver );152 void Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors ); 153 153 }; -
trunk/ab5.0/abdev/ab_common/include/Lexical/Delegate.h
r639 r640 33 33 34 34 ar & BOOST_SERIALIZATION_NVP( importedNamespaces ); 35 ar & BOOST_SERIALIZATION_NVP( paramStr ); 36 ar & BOOST_SERIALIZATION_NVP( returnTypeName ); 37 ar & BOOST_SERIALIZATION_NVP( sourceIndex ); 35 38 ar & BOOST_SERIALIZATION_NVP( dynamicParams ); 36 39 } … … 92 95 bool IsSimilar( const Delegate &dgt ) const; 93 96 94 virtual bool Resolve( const ObjectModule &resolver );97 virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors ); 95 98 }; 96 99 typedef Jenga::Common::Hashmap<Delegate> Delegates; -
trunk/ab5.0/abdev/ab_common/include/Lexical/Interface.h
r639 r640 90 90 } 91 91 92 bool Equals( const Interface *pInterface ) const; 93 92 94 std::string GetFullNameWithActualGenericTypeParameters() const; 93 95 94 virtual bool Resolve( const ObjectModule &resolver );96 virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors ); 95 97 }; 96 98 typedef std::vector<Interface *> Interfaces; -
trunk/ab5.0/abdev/ab_common/include/Lexical/Member.h
r639 r640 77 77 } 78 78 79 virtual bool Resolve( const ObjectModule &resolver );79 virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors ); 80 80 }; 81 81 typedef std::vector<Member *> Members; -
trunk/ab5.0/abdev/ab_common/include/Lexical/Meta.h
r639 r640 162 162 const CClass *FindClassSupportedTypeDef( const Symbol &symbol ); 163 163 164 void Resolve( const ObjectModule &resolver );164 void Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors ); 165 165 }; -
trunk/ab5.0/abdev/ab_common/include/Lexical/Method.h
r639 r640 49 49 virtual void SetNotUseMark( bool isNotUse ) = 0; 50 50 51 virtual bool Resolve( const ObjectModule &resolver );51 virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors ); 52 52 }; 53 53 … … 159 159 } 160 160 161 virtual bool Resolve( const ObjectModule &resolver );161 virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors ); 162 162 }; 163 163 BOOST_CLASS_EXPORT( DynamicMethod ); … … 235 235 } 236 236 237 virtual bool Resolve( const ObjectModule &resolver );237 virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors ); 238 238 }; 239 239 BOOST_CLASS_EXPORT( StaticMethod ); -
trunk/ab5.0/abdev/ab_common/include/Lexical/NativeCode.h
r639 r640 117 117 const ::CClass &GetClass() const; 118 118 119 virtual bool Resolve( const ObjectModule &resolver );119 virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors ); 120 120 }; 121 121 typedef std::vector<Schedule> Schedules; … … 249 249 void ResetRelationalObjectModuleIndex( const std::vector<int> &relationTable ); 250 250 251 void Resolve( const ObjectModule &resolver );251 void Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors ); 252 252 }; -
trunk/ab5.0/abdev/ab_common/include/Lexical/ObjectModule.h
r637 r640 65 65 66 66 // 依存関係の解決を行う 67 void Resolve( );67 void Resolve( ResolveErrors &resolveErrors ); 68 68 69 69 // 下記の関連になるようなテーブルを取得する -
trunk/ab5.0/abdev/ab_common/include/Lexical/Procedure.h
r639 r640 111 111 } 112 112 113 virtual bool Resolve( const ObjectModule &resolver );113 virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors ); 114 114 }; 115 115 … … 161 161 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP( Procedure ); 162 162 ar & boost::serialization::make_nvp("pParentClass", const_cast<CClass *&>(pParentClass) ); 163 ar & boost::serialization::make_nvp("pInterface", const_cast<Interface *&>(pInterface) ); 163 164 164 165 if( ActiveBasic::Common::Environment::IsRemoveExternal() ) … … 173 174 ar & BOOST_SERIALIZATION_NVP( _paramStr ); 174 175 ar & BOOST_SERIALIZATION_NVP( importedNamespaces ); 175 ar & boost::serialization::make_nvp("pInterface", const_cast<Interface *&>(pInterface) );176 176 ar & BOOST_SERIALIZATION_NVP( pMethod ); 177 177 ar & BOOST_SERIALIZATION_NVP( isMacro ); … … 209 209 virtual bool IsDuplication( const UserProc *pUserProc ) const 210 210 { 211 if( this->GetParentClassPtr() == pUserProc->GetParentClassPtr() // 親クラスが等しい 212 && this->pInterface == pUserProc->pInterface // インターフェイスが等しい 213 && pUserProc->IsEqualSymbol( *this ) // 名前空間及び名前が等しい 214 && this->Params().Equals( pUserProc->Params() ) // パラメータが等しい 215 && this->returnType.Equals( pUserProc->returnType ) ) // 戻り値が等しい 211 bool isEqualParentClass = 212 this->HasParentClass() && pUserProc->HasParentClass() 213 ? this->GetParentClassPtr()->Equals( pUserProc->GetParentClassPtr() ) 214 : this->GetParentClassPtr() == pUserProc->GetParentClassPtr(); 215 bool isEqualInterface = 216 this->pInterface && pUserProc->pInterface 217 ? this->pInterface->Equals( pUserProc->pInterface ) 218 : this->pInterface == pUserProc->pInterface; 219 220 if( isEqualParentClass // 親クラスが等しい 221 && isEqualInterface // インターフェイスが等しい 222 && pUserProc->IsEqualSymbol( *this ) // 名前空間及び名前が等しい 223 && this->Params().Equals( pUserProc->Params() ) // パラメータが等しい 224 && this->returnType.Equals( pUserProc->returnType ) ) // 戻り値が等しい 216 225 { 217 226 return true; … … 376 385 const CMethod &GetMethod() const; 377 386 378 virtual bool Resolve( const ObjectModule &resolver );387 virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors ); 379 388 380 389 static const UserProc *pGlobalProc; … … 484 493 } 485 494 486 virtual bool Resolve( const ObjectModule &resolver );495 virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors ); 487 496 }; 488 497 class DllProcs : public Jenga::Common::Hashmap<DllProc> … … 525 534 } 526 535 527 virtual bool Resolve( const ObjectModule &resolver );536 virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors ); 528 537 }; 529 538 -
trunk/ab5.0/abdev/ab_common/include/Lexical/RelationalObjectModuleItem.h
r639 r640 68 68 } 69 69 70 virtual bool Resolve( const ObjectModule &resolver ) = 0;70 virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors ) = 0; 71 71 }; 72 72 -
trunk/ab5.0/abdev/ab_common/include/Lexical/Template.h
r639 r640 47 47 } 48 48 49 virtual bool Resolve( const ObjectModule &resolver );49 virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors ); 50 50 }; 51 51 -
trunk/ab5.0/abdev/ab_common/include/Lexical/Type.h
r639 r640 230 230 std::string ToString() const; 231 231 232 virtual bool Resolve( const ObjectModule &resolver );232 virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors ); 233 233 234 234 … … 311 311 { 312 312 Type basicType; 313 CClass *pClass;313 const CClass *pClass; 314 314 315 315 // XMLシリアライズ用 … … 321 321 322 322 ar & BOOST_SERIALIZATION_NVP( basicType ); 323 ar & BOOST_SERIALIZATION_NVP( pClass);324 } 325 326 public: 327 BlittableType( const Type &basicType, CClass *pClass )323 ar & boost::serialization::make_nvp("pClass", const_cast<CClass *&>(pClass) ); 324 } 325 326 public: 327 BlittableType( const Type &basicType, const CClass *pClass ) 328 328 : basicType( basicType ) 329 329 , pClass( pClass ) … … 342 342 } 343 343 const std::string GetCreateStaticMethodFullName() const; 344 345 virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors ); 344 346 }; 345 347 class BlittableTypes : public std::vector<BlittableType> -
trunk/ab5.0/abdev/ab_common/include/Lexical/TypeDef.h
r639 r640 51 51 } 52 52 53 virtual bool Resolve( const ObjectModule &resolver );53 virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors ); 54 54 }; 55 55 -
trunk/ab5.0/abdev/ab_common/include/Lexical/Variable.h
r639 r640 175 175 } 176 176 177 virtual bool Resolve( const ObjectModule &resolver );177 virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors ); 178 178 179 179 -
trunk/ab5.0/abdev/ab_common/include/ab_common.h
r637 r640 8 8 #include "Lexical/NamespaceSupporter.h" 9 9 #include "Lexical/Symbol.h" 10 #include "Lexical/Resolver.h" 10 11 #include "Lexical/RelationalObjectModuleItem.h" 11 12 #include "Lexical/Prototype.h"
Note:
See TracChangeset
for help on using the changeset viewer.