source: dev/trunk/ab5.0/abdev/ab_common/include/Lexical/NamespaceSupporter.h@ 670

Last change on this file since 670 was 670, checked in by dai_9181, 16 years ago

Importsが正常に解釈されない不具合を修正

File size: 1.9 KB
RevLine 
[195]1#pragma once
2
[507]3namespace ActiveBasic{ namespace Common{ namespace Lexical{
4
5
[195]6class NamespaceSupporter
7{
[507]8 const NamespaceScopesCollection *allNamespaceScopesCollection;
9
[195]10 // Importsされた名前空間
11 NamespaceScopesCollection importedNamespaces;
12
13 // 現在の名前空間
14 NamespaceScopes livingNamespaceScopes;
15
16public:
[507]17 NamespaceSupporter()
18 : allNamespaceScopesCollection( NULL )
19 {
20 }
21
22 void RegistAllNamespaceScopesCollection( const NamespaceScopesCollection *allNamespaceScopesCollection )
23 {
24 this->allNamespaceScopesCollection = allNamespaceScopesCollection;
25 }
26
[670]27 const NamespaceScopesCollection &GetImportedNamespaces() const
[195]28 {
29 return importedNamespaces;
30 }
31 void SetImportedNamespaces( const NamespaceScopesCollection &namespaces )
32 {
33 this->importedNamespaces = namespaces;
34 }
[668]35 void ClearImportedNamespaces()
36 {
37 this->importedNamespaces.clear();
38 }
[507]39 bool ImportsNamespace( const NamespaceScopes &namespaceScopes );
[199]40 bool ImportsNamespace( const std::string &namespaceStr );
[195]41
42 NamespaceScopes &GetLivingNamespaceScopes()
43 {
44 return livingNamespaceScopes;
45 }
[198]46 void SetLivingNamespaceScopes( const NamespaceScopes &namespaceScopes )
47 {
48 this->livingNamespaceScopes = namespaceScopes;
49 }
[195]50 bool IsLiving( const NamespaceScopes &namespaceScopes ) const
51 {
52 return NamespaceScopes::IsBelong( namespaceScopes, livingNamespaceScopes );
53 }
54
55
56 // 包括しているかをチェック
57 // 例:
58 // this = "Discoversoft.ActiveBasic"
59 // living = "Discoversoft.ActiveBasic"
60 // entryName = "ActiveBasic"
61 // この場合、living は entryName を包括している。
[670]62 bool IsCoverd( const NamespaceScopes &base, const NamespaceScopes &entry ) const;
[195]63
64
65 // 指定された名前空間が同一エリアと見なされるかどうかをチェック
[669]66 bool IsSameAreaNamespace( const NamespaceScopes &baseNamespaceScopes, const NamespaceScopes &entryNamespaceScopes ) const;
[195]67};
[507]68
69
70}}}
Note: See TracBrowser for help on using the repository browser.