Ignore:
Timestamp:
Apr 29, 2007, 2:34:04 AM (17 years ago)
Author:
dai_9181
Message:

名前空間機能をクラスに適用。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler_Common/include/Namespace.h

    r101 r102  
    8686    bool IsCoverd( const string &name ) const;
    8787    bool IsCoverd( const NamespaceScopes &namespaceScopes ) const;
     88
     89    // 指定された名前空間が同一エリアと見なされるかどうかをチェック
     90    static bool IsSameArea( const NamespaceScopes &baseNamespaceScopes, const NamespaceScopes &entryNamespaceScopes ){
     91        if( entryNamespaceScopes.size() ){
     92            if( baseNamespaceScopes.IsCoverd( entryNamespaceScopes ) ){
     93                // 包括しているときは同一と見なす
     94                return true;
     95            }
     96        }
     97        else{
     98            if( baseNamespaceScopes.size() ){
     99                // 名前空間の判断が必要なとき
     100                if( baseNamespaceScopes.IsUsing()
     101                    || baseNamespaceScopes.IsLiving() ){
     102                    // Using指定があるとき
     103                    // または
     104                    // 指定された名前空間が現在の名前空間スコープと同一のとき
     105                    return true;
     106                }
     107            }
     108            else{
     109                return true;
     110            }
     111        }
     112
     113        return false;
     114    }
    88115};
Note: See TracChangeset for help on using the changeset viewer.