Index: trunk/ab5.0/abdev/BasicCompiler_Common/DebugMiddleFile.cpp
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/DebugMiddleFile.cpp	(revision 597)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/DebugMiddleFile.cpp	(revision 598)
@@ -16,4 +16,6 @@
 #define MDLFILE_VER	0x70000003
 
+using namespace ActiveBasic::Compiler;
+
 
 void SetLpIndex_DebugFile(char *buffer,int *p,const Type &type){
@@ -35,5 +37,7 @@
 		(*p)+=lstrlen(buffer+(*p))+1;
 
-		type.SetClassPtr( compiler.GetObjectModule().meta.GetClasses().FindEx(szClassName) );
+		type.SetClassPtr(
+			compiler.GetObjectModule().meta.GetClasses().FindEx( LexicalAnalyzer::FullNameToSymbol( szClassName ) )
+		);
 	}
 	else{
Index: trunk/ab5.0/abdev/BasicCompiler_Common/NumOpe_GetType.cpp
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/NumOpe_GetType.cpp	(revision 597)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/NumOpe_GetType.cpp	(revision 598)
@@ -5,4 +5,5 @@
 #include "common.h"
 
+using namespace ActiveBasic::Compiler;
 
 int MakeWholeType(int size,int bSigned){
@@ -468,5 +469,5 @@
 	if( pIsClassName )
 	{
-		if( compiler.GetObjectModule().meta.FindClassSupportedTypeDef( termFull ) )
+		if( compiler.GetObjectModule().meta.FindClassSupportedTypeDef( LexicalAnalyzer::FullNameToSymbol( termFull ) ) )
 		{
 			*pIsClassName = true;
Index: trunk/ab5.0/abdev/BasicCompiler_Common/VariableOpe.cpp
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/VariableOpe.cpp	(revision 597)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/VariableOpe.cpp	(revision 598)
@@ -639,5 +639,5 @@
 		}
 
-		int typeDefIndex = compiler.GetObjectModule().meta.GetTypeDefs().GetIndex( VarName );
+		int typeDefIndex = compiler.GetObjectModule().meta.GetTypeDefs().GetIndex( LexicalAnalyzer::FullNameToSymbol( VarName ) );
 		if( typeDefIndex != -1 ){
 			// TypeDef後の型名だったとき
Index: trunk/ab5.0/abdev/BasicCompiler_Common/calculation.cpp
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/calculation.cpp	(revision 597)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/calculation.cpp	(revision 598)
@@ -1051,17 +1051,17 @@
 
 		if(((unsigned _int64)*pi64)<=UCHAR_MAX){
-			//符号無し8ビット整数のリテラル値
+			// 符号無し8ビット整数のリテラル値
 			return DEF_BYTE;
 		}
 		else if(((unsigned _int64)*pi64)<=USHRT_MAX){
-			//符号無し16ビット整数のリテラル値
+			// 符号無し16ビット整数のリテラル値
 			return DEF_WORD;
 		}
 		else if(((unsigned _int64)*pi64)<=UINT_MAX){
-			//符号無し32ビット整数のリテラル値
+			// 符号無し32ビット整数のリテラル値
 			return DEF_DWORD;
 		}
 		else{
-			//符号無し64ビット整数のリテラル値
+			// 符号無し64ビット整数のリテラル値
 			return DEF_QWORD;
 		}
Index: trunk/ab5.0/abdev/BasicCompiler_Common/hash.cpp
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/hash.cpp	(revision 597)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/hash.cpp	(revision 598)
@@ -82,5 +82,7 @@
 			if( !pobj_c )
 			{
-				pobj_c=compiler.GetObjectModule().meta.FindClassSupportedTypeDef(ObjName);
+				pobj_c = compiler.GetObjectModule().meta.FindClassSupportedTypeDef(
+					LexicalAnalyzer::FullNameToSymbol( ObjName )
+				);
 				if( pobj_c ){
 					isStatic = true;
@@ -160,5 +162,7 @@
 
 const UserProc *GetClassMethod( const char *className, const char *methodName ){
-	const CClass *pClass = compiler.GetObjectModule().meta.FindClassSupportedTypeDef( className );
+	const CClass *pClass = compiler.GetObjectModule().meta.FindClassSupportedTypeDef(
+		LexicalAnalyzer::FullNameToSymbol( className )
+	);
 	if( pClass ){
 		std::vector<const UserProc *> userProcs;
Index: trunk/ab5.0/abdev/BasicCompiler_Common/include/Class.h
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/include/Class.h	(revision 597)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/include/Class.h	(revision 598)
@@ -496,6 +496,5 @@
 	CClass *Add( const NamespaceScopes &namespaceScopes, const NamespaceScopesCollection &importedNamespaces, const char *name,int nowLine);
 
-	const CClass *FindEx( const NamespaceScopes &namespaceScopes, const std::string &name ) const;
-	const CClass *FindEx( const std::string &fullName ) const;
+	const CClass *FindEx( const Symbol &symbol ) const;
 
 
Index: trunk/ab5.0/abdev/BasicCompiler_Common/include/Meta.h
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/include/Meta.h	(revision 597)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/include/Meta.h	(revision 598)
@@ -156,5 +156,4 @@
 	const ::Delegate &ToDelegate( const CClass &_class );
 
-	const CClass *FindClassSupportedTypeDef( const NamespaceScopes &namespaceScopes, const std::string &name );
-	const CClass *FindClassSupportedTypeDef( const std::string &fullName );
+	const CClass *FindClassSupportedTypeDef( const Symbol &symbol );
 };
Index: trunk/ab5.0/abdev/BasicCompiler_Common/include/TypeDef.h
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/include/TypeDef.h	(revision 597)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/include/TypeDef.h	(revision 598)
@@ -59,5 +59,4 @@
 
 	void Add( const NamespaceScopes &namespaceScopes, const std::string &name, const std::string &baseName, int nowLine );
-	int GetIndex( const NamespaceScopes &namespaceScopes, const std::string &name ) const;
-	int GetIndex( const std::string &fullName ) const;
+	int GetIndex( const Symbol &symbol ) const;
 };
Index: trunk/ab5.0/abdev/BasicCompiler_Common/src/Class.cpp
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/src/Class.cpp	(revision 597)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/src/Class.cpp	(revision 598)
@@ -635,11 +635,11 @@
 }
 
-const CClass *Classes::FindEx( const NamespaceScopes &namespaceScopes, const std::string &name ) const
-{
-	if( namespaceScopes.size() == 0 && name == "Object" )
+const CClass *Classes::FindEx( const Symbol &symbol ) const
+{
+	if( symbol.GetNamespaceScopes().size() == 0 && symbol.GetName() == "Object" )
 	{
 		return GetObjectClassPtr();
 	}
-	else if( namespaceScopes.size() == 0 && name == "String" )
+	else if( symbol.GetNamespaceScopes().size() == 0 && symbol.GetName() == "String" )
 	{
 		return GetStringClassPtr();
@@ -647,8 +647,8 @@
 
 	std::vector<const CClass *> classes;
-	const CClass *pClass = GetHashArrayElement( name.c_str() );
+	const CClass *pClass = GetHashArrayElement( symbol.GetName().c_str() );
 	while( pClass )
 	{
-		if( pClass->IsEqualSymbol( namespaceScopes, name ) ){
+		if( pClass->IsEqualSymbol( symbol.GetNamespaceScopes(), symbol.GetName() ) ){
 			//名前空間とクラス名が一致した
 			classes.push_back( pClass );
@@ -674,12 +674,4 @@
 	return NULL;
 }
-const CClass *Classes::FindEx( const std::string &fullName ) const
-{
-	char AreaName[VN_SIZE] = "";		//オブジェクト変数
-	char NestName[VN_SIZE] = "";		//入れ子メンバ
-	bool isNest = SplitMemberName( fullName.c_str(), AreaName, NestName );
-
-	return FindEx( NamespaceScopes( AreaName ), NestName );
-}
 
 const CClass *Classes::GetStringClassPtr() const
@@ -688,5 +680,5 @@
 	{
 		// キャッシュしておく
-		pStringClass = this->FindEx( NamespaceScopes( "System" ), "String" );
+		pStringClass = this->FindEx( Symbol( NamespaceScopes( "System" ), "String" ) );
 	}
 	return pStringClass;
@@ -697,5 +689,5 @@
 	{
 		// キャッシュしておく
-		pObjectClass = this->FindEx( NamespaceScopes( "System" ), "Object" );
+		pObjectClass = this->FindEx( Symbol( NamespaceScopes( "System" ), "Object" ) );
 	}
 	return pObjectClass;
@@ -706,5 +698,5 @@
 	{
 		// キャッシュしておく
-		pInterfaceInfo = this->FindEx( "ActiveBasic.Core.InterfaceInfo" );
+		pInterfaceInfo = this->FindEx( Symbol( NamespaceScopes( "ActiveBasic.Core" ), "InterfaceInfo" ) );
 	}
 	return pInterfaceInfo;
Index: trunk/ab5.0/abdev/BasicCompiler_Common/src/Compiler.cpp
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/src/Compiler.cpp	(revision 597)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/src/Compiler.cpp	(revision 598)
@@ -3,4 +3,6 @@
 #include <Compiler.h>
 #include <Type.h>
+
+using namespace ActiveBasic::Compiler;
 
 Compiler compiler;
@@ -30,5 +32,7 @@
 
 		// ジェネリクスクラスを取得
-		const CClass *pGenericClass = this->GetObjectModule().meta.FindClassSupportedTypeDef( className );
+		const CClass *pGenericClass = this->GetObjectModule().meta.FindClassSupportedTypeDef( 
+			LexicalAnalyzer::FullNameToSymbol( className )
+		);
 
 		if( !pGenericClass )
@@ -140,5 +144,5 @@
 	// TypeDefされた型
 	////////////////////
-	int i=this->GetObjectModule().meta.GetTypeDefs().GetIndex( typeName );
+	int i=this->GetObjectModule().meta.GetTypeDefs().GetIndex( LexicalAnalyzer::FullNameToSymbol( typeName ) );
 	if(i!=-1){
 		type = this->GetObjectModule().meta.GetTypeDefs()[i].GetBaseType();
@@ -147,5 +151,5 @@
 
 	//クラス
-	const CClass *pobj_c = this->GetObjectModule().meta.GetClasses().FindEx( typeName );
+	const CClass *pobj_c = this->GetObjectModule().meta.GetClasses().FindEx( LexicalAnalyzer::FullNameToSymbol( typeName ) );
 	if(pobj_c){
 		if( pobj_c->IsStructure() ){
Index: trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Class.cpp
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Class.cpp	(revision 597)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Class.cpp	(revision 598)
@@ -472,5 +472,7 @@
 
 		//継承元クラスを取得
-		const CClass *pInheritsClass = compiler.GetObjectModule().meta.FindClassSupportedTypeDef(className);
+		const CClass *pInheritsClass = compiler.GetObjectModule().meta.FindClassSupportedTypeDef(
+			LexicalAnalyzer::FullNameToSymbol( className )
+		);
 		if( !pInheritsClass ){
 			compiler.errorMessenger.Output(106,className,nowLine);
@@ -640,5 +642,7 @@
 
 		//継承元クラスを取得
-		const CClass *pInterfaceClass = compiler.GetObjectModule().meta.FindClassSupportedTypeDef( className );
+		const CClass *pInterfaceClass = compiler.GetObjectModule().meta.FindClassSupportedTypeDef(
+			LexicalAnalyzer::FullNameToSymbol( className )
+		);
 		if( !pInterfaceClass ){
 			compiler.errorMessenger.Output(106,paramStr.c_str(),nowLine);
@@ -768,5 +772,5 @@
 			SplitGenericClassInstance( temporary, className, typeParameters, true, &typeParameterBaseClassNames );
 
-			CClass *pobj_c = const_cast<CClass *>( classes.FindEx(namespaceScopes, className) );
+			CClass *pobj_c = const_cast<CClass *>( classes.FindEx( Symbol( namespaceScopes, className ) ) );
 			if(!pobj_c) continue;
 
@@ -835,5 +839,7 @@
 
 				//継承元クラスを取得
-				const CClass *pInheritsClass = compiler.GetObjectModule().meta.FindClassSupportedTypeDef( temporary );
+				const CClass *pInheritsClass = compiler.GetObjectModule().meta.FindClassSupportedTypeDef(
+					LexicalAnalyzer::FullNameToSymbol( temporary )
+				);
 				if( !pInheritsClass ){
 					compiler.errorMessenger.Output(106,temporary,i);
@@ -1003,5 +1009,5 @@
 			SplitGenericClassInstance( temporary, className, typeParameters, true, &typeParameterBaseClassNames );
 
-			CClass *pobj_c =  const_cast<CClass *>( classes.FindEx(namespaceScopes, className) );
+			CClass *pobj_c =  const_cast<CClass *>( classes.FindEx( Symbol( namespaceScopes, className ) ) );
 			if(!pobj_c) continue;
 
Index: trunk/ab5.0/abdev/BasicCompiler_Common/src/Meta.cpp
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/src/Meta.cpp	(revision 597)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/src/Meta.cpp	(revision 598)
@@ -177,7 +177,7 @@
 }
 
-const CClass *Meta::FindClassSupportedTypeDef( const NamespaceScopes &namespaceScopes, const std::string &name )
+const CClass *Meta::FindClassSupportedTypeDef( const Symbol &symbol )
 {
-	const CClass *pClass = this->GetClasses().FindEx( namespaceScopes, name );
+	const CClass *pClass = this->GetClasses().FindEx( symbol );
 	if( pClass )
 	{
@@ -186,5 +186,5 @@
 
 	// TypeDefも見る
-	int index = this->GetTypeDefs().GetIndex( namespaceScopes, name );
+	int index = this->GetTypeDefs().GetIndex( symbol );
 	if( index != -1 ){
 		Type type = this->GetTypeDefs()[index].GetBaseType();
@@ -196,10 +196,2 @@
 	return NULL;
 }
-const CClass *Meta::FindClassSupportedTypeDef( const std::string &fullName )
-{
-	char AreaName[VN_SIZE] = "";		//オブジェクト変数
-	char NestName[VN_SIZE] = "";		//入れ子メンバ
-	bool isNest = SplitMemberName( fullName.c_str(), AreaName, NestName );
-
-	return FindClassSupportedTypeDef( NamespaceScopes( AreaName ), NestName );
-}
Index: trunk/ab5.0/abdev/BasicCompiler_Common/src/TypeDef.cpp
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/src/TypeDef.cpp	(revision 597)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/src/TypeDef.cpp	(revision 598)
@@ -17,8 +17,8 @@
 }
 
-int TypeDefCollection::GetIndex( const NamespaceScopes &namespaceScopes, const std::string &name ) const{
+int TypeDefCollection::GetIndex( const Symbol &symbol ) const{
 	int max = (int)(*this).size();
 	for( int i=0; i<max; i++ ){
-		if( (*this)[i].IsEqualSymbol( namespaceScopes, name ) ){
+		if( (*this)[i].IsEqualSymbol( symbol ) ){
 			return i;
 		}
@@ -26,9 +26,2 @@
 	return -1;
 }
-int TypeDefCollection::GetIndex( const std::string &fullName ) const{
-	char AreaName[VN_SIZE] = "";		//オブジェクト変数
-	char NestName[VN_SIZE] = "";		//入れ子メンバ
-	bool isNest = SplitMemberName( fullName.c_str(), AreaName, NestName );
-
-	return GetIndex( NamespaceScopes( AreaName ), NestName );
-}
