Changeset 105 in dev for BasicCompiler_Common/src/Namespace.cpp
- Timestamp:
- May 4, 2007, 3:43:48 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
BasicCompiler_Common/src/Namespace.cpp
r101 r105 2 2 3 3 4 NamespaceScopes::NamespaceScopes( const char *namespaceStr ){4 NamespaceScopes::NamespaceScopes( const string &namespaceStr ){ 5 5 int i = 0; 6 while( namespaceStr[i]){6 while( i < (int)namespaceStr.size() ){ 7 7 char temporary[VN_SIZE]; 8 8 for( int i2=0; ; i2++, i++ ){ … … 61 61 return IsCoverd( namespaceScopes.ToString() ); 62 62 } 63 64 65 void NamespaceScopesCollection::SplitNamespace( const char *fullName, char *namespaceStr, char *simpleName ) const 66 { 67 NamespaceScopes namespaceScopes( fullName ); 68 bool hasSimpleName = false; 69 while( namespaceScopes.size() > 0 ){ 70 if( IsExist( namespaceScopes ) ){ 71 break; 72 } 73 namespaceScopes.pop_back(); 74 75 hasSimpleName = true; 76 } 77 78 lstrcpy( namespaceStr, namespaceScopes.ToString().c_str() ); 79 80 bool hasNamespace = false; 81 if( namespaceStr[0] ){ 82 hasNamespace = true; 83 } 84 85 int dotLength = 0; 86 if( hasSimpleName && hasNamespace ){ 87 dotLength = 1; 88 } 89 90 lstrcpy( simpleName, fullName + lstrlen( namespaceStr ) + dotLength ); 91 } 92 bool NamespaceScopesCollection::CollectNamespaces( const char *source, NamespaceScopesCollection &namespaceScopesCollection ) 93 { 94 int i, i2; 95 char temporary[VN_SIZE]; 96 97 bool isSuccessful = true; 98 99 // 名前空間管理 100 NamespaceScopes namespaceScopes; 101 102 for(i=0;;i++){ 103 if(source[i]=='\0') break; 104 105 if( source[i] == 1 && source[i+1] == ESC_NAMESPACE ){ 106 for(i+=2,i2=0;;i2++,i++){ 107 if( IsCommandDelimitation( source[i] ) ){ 108 temporary[i2]=0; 109 break; 110 } 111 temporary[i2]=source[i]; 112 } 113 namespaceScopes.push_back( temporary ); 114 115 if( !namespaceScopesCollection.IsExist( namespaceScopes ) ){ 116 namespaceScopesCollection.push_back( namespaceScopes ); 117 } 118 119 continue; 120 } 121 else if( source[i] == 1 && source[i+1] == ESC_ENDNAMESPACE ){ 122 if( namespaceScopes.size() <= 0 ){ 123 SetError(12, "End Namespace", i ); 124 isSuccessful = false; 125 } 126 else{ 127 namespaceScopes.pop_back(); 128 } 129 130 i += 2; 131 continue; 132 } 133 } 134 135 if( namespaceScopes.size() > 0 ){ 136 SetError(63,NULL,-1); 137 isSuccessful = false; 138 } 139 140 return isSuccessful; 141 }
Note:
See TracChangeset
for help on using the changeset viewer.