Last change
on this file since 109 was 103, checked in by dai_9181, 18 years ago |
名前空間機能をグローバル変数、定数と列挙型に適用。
一部、クラスの静的メンバと名前空間の相性が悪いコードが潜んでいるため、要改修
|
File size:
950 bytes
|
Rev | Line | |
---|
[103] | 1 | #include "common.h"
|
---|
| 2 |
|
---|
| 3 | bool Variable::IsEqualSymbol( const NamespaceScopes &namespaceScopes, const string &name ) const
|
---|
| 4 | {
|
---|
| 5 | if( GetName() != name ){
|
---|
| 6 | return false;
|
---|
| 7 | }
|
---|
| 8 | return NamespaceScopes::IsSameArea( this->namespaceScopes, namespaceScopes );
|
---|
| 9 | }
|
---|
| 10 | bool Variable::IsEqualSymbol( const string &fullName ) const
|
---|
| 11 | {
|
---|
| 12 | char AreaName[VN_SIZE] = ""; //オブジェクト変数
|
---|
| 13 | char NestName[VN_SIZE] = ""; //入れ子メンバ
|
---|
| 14 | bool isNest = SplitMemberName( fullName.c_str(), AreaName, NestName );
|
---|
| 15 |
|
---|
| 16 | if( IsEqualSymbol( NamespaceScopes( AreaName ), NestName ) ){
|
---|
| 17 | return true;
|
---|
| 18 | }
|
---|
| 19 |
|
---|
| 20 | if( isNest ){
|
---|
| 21 | // 静的メンバを考慮
|
---|
| 22 |
|
---|
| 23 | char AreaName2[VN_SIZE] = ""; //オブジェクト変数
|
---|
| 24 | char NestName2[VN_SIZE] = ""; //入れ子メンバ
|
---|
| 25 | bool isNest = SplitMemberName( AreaName, AreaName2, NestName2 );
|
---|
| 26 | lstrcat( NestName2, "." );
|
---|
| 27 | lstrcat( NestName2, NestName );
|
---|
| 28 |
|
---|
| 29 | return IsEqualSymbol( NamespaceScopes( AreaName2 ), NestName2 );
|
---|
| 30 | }
|
---|
| 31 |
|
---|
| 32 | return false;
|
---|
| 33 | }
|
---|
Note:
See
TracBrowser
for help on using the repository browser.