#include "common.h" bool Variable::IsEqualSymbol( const NamespaceScopes &namespaceScopes, const string &name ) const { if( GetName() != name ){ return false; } return NamespaceScopes::IsSameArea( this->namespaceScopes, namespaceScopes ); } bool Variable::IsEqualSymbol( const string &fullName ) const { char AreaName[VN_SIZE] = ""; //オブジェクト変数 char NestName[VN_SIZE] = ""; //入れ子メンバ bool isNest = SplitMemberName( fullName.c_str(), AreaName, NestName ); if( IsEqualSymbol( NamespaceScopes( AreaName ), NestName ) ){ return true; } if( isNest ){ // 静的メンバを考慮 char AreaName2[VN_SIZE] = ""; //オブジェクト変数 char NestName2[VN_SIZE] = ""; //入れ子メンバ bool isNest = SplitMemberName( AreaName, AreaName2, NestName2 ); lstrcat( NestName2, "." ); lstrcat( NestName2, NestName ); return IsEqualSymbol( NamespaceScopes( AreaName2 ), NestName2 ); } return false; }