Index: trunk/ab5.0/abdev/BasicCompiler_Common/src/Compiler.cpp
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/src/Compiler.cpp	(revision 636)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/src/Compiler.cpp	(revision 637)
@@ -50,5 +50,5 @@
 
 		// メタ情報
-		this->GetObjectModule().StaticLink( *pStaticLibrary );
+		this->GetObjectModule().StaticLink( *pStaticLibrary, this->IsSll() );
 	}
 }
Index: trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Class.cpp
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Class.cpp	(revision 636)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Class.cpp	(revision 637)
@@ -117,5 +117,5 @@
 
 			//クラスを追加
-			CClass *pClass = new CClass( namespaceScopes, importedNamespaces, temporary );
+			CClass *pClass = new CClass( Symbol( namespaceScopes, temporary ), importedNamespaces );
 			if( classes.IsExist( pClass ) )
 			{
@@ -575,7 +575,6 @@
 		//関数ハッシュへ登録
 		UserProc *pUserProc = new UserProc(
-			NamespaceScopes(),
+			Symbol( NamespaceScopes(), methodName ),
 			NamespaceScopesCollection(),
-			methodName,
 			Procedure::Function,
 			false,
@@ -1434,7 +1433,6 @@
 	// クラスをコピー
 	CClass *pNewClass = new CClass(
-		_class.GetNamespaceScopes(),
+		_class,
 		_class.GetImportedNamespaces(),
-		_class.GetName(),
 		_class.GetClassType(),
 		_class.GetFormalGenericTypes(),
Index: trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Const.cpp
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Const.cpp	(revision 636)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Const.cpp	(revision 637)
@@ -74,5 +74,5 @@
 
 		//定数を追加
-		consts.Add( namespaceScopes, temporary, NextValue);
+		consts.Add( Symbol( namespaceScopes, temporary ), NextValue);
 	}
 }
@@ -178,5 +178,5 @@
 					if( StaticCalculation(false, expression, 0, &i64data, resultType) )
 					{
-						consts.Add( namespaceScopes, name, i64data, resultType );
+						consts.Add( Symbol( namespaceScopes, name ), i64data, resultType );
 					}
 				}
@@ -185,5 +185,5 @@
 					// 定数マクロ
 					const char *params = temporary + i2;
-					if( !constMacros.Add( namespaceScopes, name, params ) )
+					if( !constMacros.Add( Symbol( namespaceScopes, name ), params ) )
 					{
 						compiler.errorMessenger.Output( 1, NULL, i );
Index: trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Delegate.cpp
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Delegate.cpp	(revision 636)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Delegate.cpp	(revision 637)
@@ -115,5 +115,5 @@
 			}
 
-			delegates.Put( new Delegate( namespaceScopes, importedNamespaces, name, procKind, paramStr, returnTypeName, nowLine ) );
+			delegates.Put( new Delegate( Symbol( namespaceScopes, name ), importedNamespaces, procKind, paramStr, returnTypeName, nowLine ) );
 		}
 	}
@@ -131,5 +131,5 @@
 		const Delegate &dg = *delegates.Iterator_GetNext();
 
-		if( !dg.isTargetObjectModule )
+		if( dg.IsExternal() )
 		{
 			// 静的リンクライブラリの場合は飛ばす（既にインスタンスが定義済みであるため）
Index: trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Procedure.cpp
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Procedure.cpp	(revision 636)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Procedure.cpp	(revision 637)
@@ -156,5 +156,5 @@
 
 	//ソースコードの位置
-	userProc.SetSourceCodePosition( SourceCodePosition( compiler.GetObjectModule().GetName(), nowLine ) );
+	userProc.SetSourceCodePosition( SourceCodePosition( compiler.GetCurrentRelationalObjectModuleIndexForSource(), nowLine ) );
 
 	//パラメータ
@@ -286,5 +286,5 @@
 
 	//ソースコードの位置
-	pProc->SetSourceCodePosition( SourceCodePosition( compiler.GetObjectModule().GetName(), nowLine ) );
+	pProc->SetSourceCodePosition( SourceCodePosition( compiler.GetCurrentRelationalObjectModuleIndexForSource(), nowLine ) );
 
 	//パラメータ
@@ -615,5 +615,5 @@
 	}
 
-	UserProc *pUserProc = new UserProc( namespaceScopes, importedNamespaces, temporary, kind, isMacro, isCdecl, isExport );
+	UserProc *pUserProc = new UserProc( Symbol( namespaceScopes, temporary ), importedNamespaces, kind, isMacro, isCdecl, isExport );
 	pUserProc->SetParentClass( pobj_c );
 
@@ -737,5 +737,5 @@
 
 	// オブジェクトを生成
-	DllProc *pDllProc = new DllProc( namespaceScopes, procName, kind, isCdecl, dllFileName, alias );
+	DllProc *pDllProc = new DllProc( Symbol( namespaceScopes, procName ), kind, isCdecl, dllFileName, alias );
 
 	// パラメータを解析
Index: trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_TypeDef.cpp
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_TypeDef.cpp	(revision 636)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_TypeDef.cpp	(revision 637)
@@ -75,6 +75,5 @@
 	typeDefs.push_back(
 		TypeDef(
-			namespaceScopes,
-			temporary,
+			Symbol( namespaceScopes, temporary ),
 			pTemp,
 			baseType
@@ -176,6 +175,5 @@
 				typeDefs.push_back(
 					TypeDef(
-						namespaceScopes,
-						temporary,
+						Symbol( namespaceScopes, temporary ),
 						"Long",
 						baseType
Index: trunk/ab5.0/abdev/BasicCompiler_Common/src/ProcedureGenerator.cpp
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/src/ProcedureGenerator.cpp	(revision 636)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/src/ProcedureGenerator.cpp	(revision 637)
@@ -21,5 +21,5 @@
 	while(classes.Iterator_HasNext()){
 		CClass &objClass = *classes.Iterator_GetNext();
-		if( objClass.isTargetObjectModule == false )
+		if( objClass.IsExternal() )
 		{
 			// 静的リンクライブラリの場合は飛ばす（既にインスタンスが定義済みであるため）
