Changeset 208 in dev for trunk/abdev/BasicCompiler_Common/src/Procedure.cpp
- Timestamp:
- Jul 13, 2007, 2:49:56 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler_Common/src/Procedure.cpp
r206 r208 30 30 return GetParentClassPtr()->GetNamespaceScopes(); 31 31 } 32 return namespaceScopes;32 return Symbol::GetNamespaceScopes(); 33 33 } 34 34 const NamespaceScopesCollection &UserProc::GetImportedNamespaces() const 35 35 { 36 36 return importedNamespaces; 37 }38 bool UserProc::IsEqualSymbol( const NamespaceScopes &namespaceScopes, const string &name ) const39 {40 if( GetName() != name ){41 return false;42 }43 44 return compiler.GetNamespaceSupporter().IsSameAreaNamespace( GetNamespaceScopes(), namespaceScopes );45 }46 bool UserProc::IsEqualSymbol( const UserProc &globalProc ) const47 {48 return IsEqualSymbol( globalProc.GetNamespaceScopes(), globalProc.GetName() );49 }50 bool UserProc::IsEqualSymbol( const string &fullName ) const51 {52 char AreaName[VN_SIZE] = ""; //オブジェクト変数53 char NestName[VN_SIZE] = ""; //入れ子メンバ54 bool isNest = SplitMemberName( fullName.c_str(), AreaName, NestName );55 56 return IsEqualSymbol( NamespaceScopes( AreaName ), NestName );57 37 } 58 38 bool UserProc::IsVirtual() const … … 596 576 UserProc *pUserProc = GetHashArrayElement( simpleName ); 597 577 while(pUserProc){ 598 if( !pUserProc->GetParentClassPtr()){578 if( pUserProc->IsGlobalProcedure() ){ 599 579 if( pUserProc->IsEqualSymbol( localName ) ){ 600 580 subs.push_back( pUserProc ); … … 606 586 } 607 587 608 609 bool DllProc::IsEqualSymbol( const NamespaceScopes &namespaceScopes, const string &name ) const610 {611 if( GetName() != name ){612 return false;613 }614 return compiler.GetNamespaceSupporter().IsSameAreaNamespace( this->GetNamespaceScopes(), namespaceScopes );615 }616 bool DllProc::IsEqualSymbol( const string &fullName ) const617 {618 char AreaName[VN_SIZE] = ""; //オブジェクト変数619 char NestName[VN_SIZE] = ""; //入れ子メンバ620 bool isNest = SplitMemberName( fullName.c_str(), AreaName, NestName );621 622 if( IsEqualSymbol( NamespaceScopes( AreaName ), NestName ) ){623 return true;624 }625 626 if( isNest ){627 // 静的メンバを考慮628 629 char AreaName2[VN_SIZE] = ""; //オブジェクト変数630 char NestName2[VN_SIZE] = ""; //入れ子メンバ631 bool isNest = SplitMemberName( AreaName, AreaName2, NestName2 );632 lstrcat( NestName2, "." );633 lstrcat( NestName2, NestName );634 635 return IsEqualSymbol( NamespaceScopes( AreaName2 ), NestName2 );636 }637 638 return false;639 }640 588 bool DllProc::SetParamsAndReturnType( const char *sourceOfParams, int nowLine ){ 641 589 int i = 0;
Note:
See TracChangeset
for help on using the changeset viewer.