#include "stdafx.h" using namespace ActiveBasic::Common::Lexical; bool NamespaceSupporter::ImportsNamespace( const NamespaceScopes &namespaceScopes ) { _ASSERT( allNamespaceScopesCollection ); if( !allNamespaceScopesCollection->IsExist( namespaceScopes ) ){ return false; } this->importedNamespaces.push_back( namespaceScopes ); return true; } bool NamespaceSupporter::ImportsNamespace( const std::string &namespaceStr ) { NamespaceScopes namespaceScopes( namespaceStr ); return ImportsNamespace( namespaceScopes ); } bool NamespaceSupporter::IsSameAreaNamespace( const NamespaceScopes &baseNamespaceScopes, const NamespaceScopes &entryNamespaceScopes ) const { if( entryNamespaceScopes.size() ) { if( IsCoverd( baseNamespaceScopes, entryNamespaceScopes ) ) { // 包括しているときは同一と見なす return true; } } else{ if( baseNamespaceScopes.size() ) { // 名前空間の判断が必要なとき if( this->importedNamespaces.IsImported( baseNamespaceScopes ) || IsLiving( baseNamespaceScopes ) ) { // Using指定があるとき // または // 指定された名前空間が現在の名前空間スコープと同一のとき return true; } } else{ return true; } } return false; }