Changeset 101 in dev for BasicCompiler_Common/Procedure.cpp
- Timestamp:
- Apr 25, 2007, 4:19:28 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
BasicCompiler_Common/Procedure.cpp
r100 r101 370 370 return ( pMethod->bVirtual != 0 ); 371 371 } 372 bool UserProc::EqualName( const string &name ) const 372 const NamespaceScopes &UserProc::GetNamespaceScopes() const 373 { 374 if( !pParentClass ){ 375 SetError(); 376 } 377 return pParentClass->GetNamespaceScopes(); 378 } 379 bool UserProc::IsEqualSymbol( const NamespaceScopes &namespaceScopes, const string &name ) const 373 380 { 374 381 SetError(); 375 return true;382 return false; 376 383 } 377 384 … … 503 510 return true; 504 511 } 505 bool GlobalProc:: EqualName(const string &name ) const512 bool GlobalProc::IsEqualSymbol( const NamespaceScopes &namespaceScopes, const string &name ) const 506 513 { 507 char AreaName[VN_SIZE]; //オブジェクト変数 508 char NestName[VN_SIZE]; //入れ子メンバ 509 bool isNest = SplitMemberName( name.c_str(), AreaName, NestName ); 510 511 if( isNest ){ 512 if( GetNamespaceScopes().Equal( AreaName ) ){ 513 if( GetName() == NestName ){ 514 if( namespaceScopes.size() ){ 515 if( GetNamespaceScopes().IsCoverd( namespaceScopes ) ){ 516 if( GetName() == name ){ 514 517 return true; 515 518 } … … 519 522 if( GetNamespaceScopes().size() ){ 520 523 // 名前空間の判断が必要なとき 521 if( !GetNamespaceScopes().IsUsing() ){ 524 if( !GetNamespaceScopes().IsUsing() 525 && !GetNamespaceScopes().IsLiving() ){ 522 526 // この名前空間は暗黙的に参照できないとき 523 527 return false; 524 528 } 525 529 } 526 if( GetName() == name ){ 527 return true; 530 else{ 531 if( GetName() == name ){ 532 return true; 533 } 528 534 } 529 535 } 530 536 531 537 return false; 538 } 539 bool GlobalProc::IsEqualSymbol( const GlobalProc &globalProc ) const 540 { 541 return IsEqualSymbol( globalProc.GetNamespaceScopes(), globalProc.GetName() ); 542 } 543 bool GlobalProc::IsEqualSymbol( const string &fullName ) const 544 { 545 char AreaName[VN_SIZE] = ""; //オブジェクト変数 546 char NestName[VN_SIZE] = ""; //入れ子メンバ 547 bool isNest = SplitMemberName( fullName.c_str(), AreaName, NestName ); 548 549 return IsEqualSymbol( NamespaceScopes( AreaName ), NestName ); 532 550 } 533 551
Note:
See TracChangeset
for help on using the changeset viewer.