Index: trunk/abdev/BasicCompiler64/BasicCompiler.vcproj
===================================================================
--- trunk/abdev/BasicCompiler64/BasicCompiler.vcproj	(revision 263)
+++ trunk/abdev/BasicCompiler64/BasicCompiler.vcproj	(revision 266)
@@ -388,4 +388,8 @@
 					</File>
 					<File
+						RelativePath="..\BasicCompiler_Common\include\Source.h"
+						>
+					</File>
+					<File
 						RelativePath="..\BasicCompiler_Common\include\Symbol.h"
 						>
@@ -1180,4 +1184,8 @@
 					</File>
 					<File
+						RelativePath="..\BasicCompiler_Common\src\Source.cpp"
+						>
+					</File>
+					<File
 						RelativePath="..\BasicCompiler_Common\src\Symbol.cpp"
 						>
Index: trunk/abdev/BasicCompiler64/Compile_Calc.cpp
===================================================================
--- trunk/abdev/BasicCompiler64/Compile_Calc.cpp	(revision 263)
+++ trunk/abdev/BasicCompiler64/Compile_Calc.cpp	(revision 266)
@@ -96,6 +96,6 @@
 			}
 			else{
-				if( compiler.objectModule.meta.GetGlobalConsts().IsExist(variable)
-					|| compiler.objectModule.meta.GetGlobalConstMacros().IsExist(variable) )
+				if( compiler.GetObjectModule().meta.GetGlobalConsts().IsExist(variable)
+					|| compiler.GetObjectModule().meta.GetGlobalConstMacros().IsExist(variable) )
 				{
 					//定数リストに該当したとき
@@ -236,8 +236,8 @@
 	}
 
-	if( varType.IsObject() && compiler.objectModule.meta.GetBlittableTypes().IsExist( calcType ) ){
+	if( varType.IsObject() && compiler.GetObjectModule().meta.GetBlittableTypes().IsExist( calcType ) ){
 		// Blittable型をオブジェクトとして扱う
 		vector<const UserProc *> userProcs;
-		compiler.objectModule.meta.GetBlittableTypes().GetClass( calcType ).GetStaticMethods().Enum( "_Create", userProcs );
+		compiler.GetObjectModule().meta.GetBlittableTypes().GetClass( calcType ).GetStaticMethods().Enum( "_Create", userProcs );
 		if( userProcs.size() != 1 ){
 			SetError();
Index: trunk/abdev/BasicCompiler64/Compile_CallProc.cpp
===================================================================
--- trunk/abdev/BasicCompiler64/Compile_CallProc.cpp	(revision 263)
+++ trunk/abdev/BasicCompiler64/Compile_CallProc.cpp	(revision 266)
@@ -126,5 +126,5 @@
 				pobj_c = &varType.GetClass();
 				if( NATURAL_TYPE( varType.GetBasicType() ) != DEF_OBJECT ){
-					pobj_c=compiler.objectModule.meta.GetClasses().Find(ObjectName);
+					pobj_c=compiler.GetObjectModule().meta.GetClasses().Find(ObjectName);
 					if( pobj_c ){
 						isStatic = true;
Index: trunk/abdev/BasicCompiler64/Compile_Func.cpp
===================================================================
--- trunk/abdev/BasicCompiler64/Compile_Func.cpp	(revision 263)
+++ trunk/abdev/BasicCompiler64/Compile_Func.cpp	(revision 266)
@@ -36,5 +36,5 @@
 		tempParm=temp2;
 
-		type.SetType( DEF_OBJECT, compiler.objectModule.meta.GetClasses().GetStringClassPtr() );
+		type.SetType( DEF_OBJECT, compiler.GetObjectModule().meta.GetClasses().GetStringClassPtr() );
 	}
 
@@ -84,5 +84,5 @@
 
 		//オーバーロードを解決
-		pUserProc=OverloadSolution(name,subs,compiler.objectModule.meta.GetProcPointers()[ProcPtr_BaseIndex]->Params(), Type() );
+		pUserProc=OverloadSolution(name,subs,compiler.GetObjectModule().meta.GetProcPointers()[ProcPtr_BaseIndex]->Params(), Type() );
 
 		if(!pUserProc){
Index: trunk/abdev/BasicCompiler64/Compile_ProcOp.cpp
===================================================================
--- trunk/abdev/BasicCompiler64/Compile_ProcOp.cpp	(revision 263)
+++ trunk/abdev/BasicCompiler64/Compile_ProcOp.cpp	(revision 266)
@@ -23,6 +23,5 @@
 		// DLLのグローバル領域をコンパイル
 		////////////////////////////////////////
-		extern BOOL bDll;
-		if(!bDll){
+		if(!compiler.IsDll()){
 			//ret
 			compiler.codeGenerator.op_ret();
@@ -55,5 +54,5 @@
 
 		//クラスに属する静的メンバを定義
-		compiler.objectModule.meta.GetClasses().InitStaticMember();
+		compiler.GetObjectModule().meta.GetClasses().InitStaticMember();
 
 		GetGlobalDataForDll();
@@ -77,5 +76,5 @@
 		const PertialSchedule *pStackFramePertialSchedule = compiler.codeGenerator.op_sub_rsp( 0, true );
 
-		BOOST_FOREACH( Variable *pVar, compiler.objectModule.meta.GetGlobalVars() ){
+		BOOST_FOREACH( Variable *pVar, compiler.GetObjectModule().meta.GetGlobalVars() ){
 			if(memicmp(pVar->GetName().c_str(),"Static%",7)==0){
 				//コンストラクタ呼び出し
@@ -140,5 +139,5 @@
 		&& userProc.HasParentClass()
 		&& userProc.GetParentClass().GetName() == "_System_TypeBase" ){
-			compiler.objectModule.meta.GetClasses().Compile_System_InitializeUserTypes();
+			compiler.GetObjectModule().meta.GetClasses().Compile_System_InitializeUserTypes();
 	}
 	else if( userProc.GetName() == "RegisterGlobalRoots"
@@ -189,5 +188,5 @@
 
 	//コンパイルスタートをクラス管理クラスに追加
-	compiler.objectModule.meta.GetClasses().StartCompile( pUserProc );
+	compiler.GetObjectModule().meta.GetClasses().StartCompile( pUserProc );
 
 	//コンパイル中の関数
@@ -693,6 +692,5 @@
 }
 void CompileLocal(){
-	extern BOOL bDll;
-	if(bDll){
+	if( compiler.IsDll() ){
 		//DLLの場合はグローバル変数を初期化するための関数を一番初めにコンパイルする
 		const UserProc *pUserProc = GetSubHash("_System_InitDllGlobalVariables");
@@ -717,8 +715,8 @@
 
 repeat:
-	compiler.objectModule.meta.GetUserProcs().Iterator_Reset();
-	while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() )
+	compiler.GetObjectModule().meta.GetUserProcs().Iterator_Reset();
+	while( compiler.GetObjectModule().meta.GetUserProcs().Iterator_HasNext() )
 	{
-		UserProc *pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext();
+		UserProc *pUserProc = compiler.GetObjectModule().meta.GetUserProcs().Iterator_GetNext();
 		CompileBufferInProcedure( *pUserProc );
 	}
@@ -736,8 +734,8 @@
 		//プロシージャコンパイルによって、プロシージャコンパイルが必要になる場合
 
-		compiler.objectModule.meta.GetUserProcs().Iterator_Reset();
-		while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() )
+		compiler.GetObjectModule().meta.GetUserProcs().Iterator_Reset();
+		while( compiler.GetObjectModule().meta.GetUserProcs().Iterator_HasNext() )
 		{
-			UserProc *pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext();
+			UserProc *pUserProc = compiler.GetObjectModule().meta.GetUserProcs().Iterator_GetNext();
 			CompileBufferInProcedure( *pUserProc );
 		}
Index: trunk/abdev/BasicCompiler64/Compile_Statement.cpp
===================================================================
--- trunk/abdev/BasicCompiler64/Compile_Statement.cpp	(revision 263)
+++ trunk/abdev/BasicCompiler64/Compile_Statement.cpp	(revision 266)
@@ -136,5 +136,5 @@
 	if(resultType.IsDouble()){
 		double dbl=0;
-		offset=compiler.objectModule.dataTable.Add( dbl );
+		offset=compiler.GetObjectModule().dataTable.Add( dbl );
 
 		//comisd xmm0,qword ptr[data table offset]
@@ -153,5 +153,5 @@
 	else if(resultType.IsSingle()){
 		float flt=0;
-		offset=compiler.objectModule.dataTable.Add( flt );
+		offset=compiler.GetObjectModule().dataTable.Add( flt );
 
 		//comiss xmm0,dword ptr[data table offset]
Index: trunk/abdev/BasicCompiler64/Compile_Var.cpp
===================================================================
--- trunk/abdev/BasicCompiler64/Compile_Var.cpp	(revision 263)
+++ trunk/abdev/BasicCompiler64/Compile_Var.cpp	(revision 266)
@@ -389,5 +389,5 @@
 	// 名前空間を分離
 	char namespaceStr[VN_SIZE]="", simpleName[VN_SIZE];
-	compiler.objectModule.meta.GetNamespaces().SplitNamespace( variable, namespaceStr, simpleName );
+	compiler.GetObjectModule().meta.GetNamespaces().SplitNamespace( variable, namespaceStr, simpleName );
 
 	// 先頭オブジェクトまたはクラス名と入れ子メンバに分割
@@ -482,5 +482,5 @@
 		//Const修飾子のメソッド内でメンバ書き込みアクセスが発生したとき
 		//（コンストラクタ、デストラクタ内を除く）
-		const CMethod *pMethod = compiler.objectModule.meta.GetClasses().GetNowCompilingMethodInfo();
+		const CMethod *pMethod = compiler.GetObjectModule().meta.GetClasses().GetNowCompilingMethodInfo();
 		if( isWriteAccess &&
 			pMethod->IsConst() &&
@@ -519,5 +519,5 @@
 			GetNowStaticVarFullName(VarName,temporary);
 
-			pVar = compiler.objectModule.meta.GetGlobalVars().Find( Symbol( temporary ) );
+			pVar = compiler.GetObjectModule().meta.GetGlobalVars().Find( Symbol( temporary ) );
 			if( pVar ){
 				goto GlobalOk;
@@ -542,13 +542,13 @@
 			}
 
-			int typeDefIndex = compiler.objectModule.meta.GetTypeDefs().GetIndex( VarName );
+			int typeDefIndex = compiler.GetObjectModule().meta.GetTypeDefs().GetIndex( VarName );
 			if( typeDefIndex != -1 ){
 				// TypeDef後の型名だったとき
-				lstrcpy( VarName, compiler.objectModule.meta.GetTypeDefs()[typeDefIndex].GetBaseName().c_str() );
+				lstrcpy( VarName, compiler.GetObjectModule().meta.GetTypeDefs()[typeDefIndex].GetBaseName().c_str() );
 			}
 
 			char temp2[VN_SIZE];
 			sprintf(temp2,"%s.%s",VarName,temporary);
-			pVar = compiler.objectModule.meta.GetGlobalVars().Find( Symbol( temp2 ) );
+			pVar = compiler.GetObjectModule().meta.GetGlobalVars().Find( Symbol( temp2 ) );
 			if( pVar ){
 				lstrcpy(member,tempMember);
@@ -562,5 +562,5 @@
 			char temp2[VN_SIZE];
 			sprintf(temp2,"%s.%s",compiler.pCompilingClass->GetName().c_str(),VarName);
-			pVar = compiler.objectModule.meta.GetGlobalVars().Find( Symbol( temp2 ) );
+			pVar = compiler.GetObjectModule().meta.GetGlobalVars().Find( Symbol( temp2 ) );
 			if( pVar ){
 				goto GlobalOk;
@@ -572,5 +572,5 @@
 		/////////////////////
 
-		pVar = compiler.objectModule.meta.GetGlobalVars().BackSearch( Symbol( VarName ) );
+		pVar = compiler.GetObjectModule().meta.GetGlobalVars().BackSearch( Symbol( VarName ) );
 		if( pVar ){
 			goto GlobalOk;
@@ -857,5 +857,5 @@
 			char *temp;
 			temp=(char *)i64data;
-			i2=compiler.objectModule.dataTable.AddString( temp );
+			i2=compiler.GetObjectModule().dataTable.AddString( temp );
 			HeapDefaultFree(temp);
 
@@ -1007,5 +1007,5 @@
 			char *temp;
 			temp=(char *)i64data;
-			i2=compiler.objectModule.dataTable.AddString( temp );
+			i2=compiler.GetObjectModule().dataTable.AddString( temp );
 			HeapDefaultFree(temp);
 
@@ -1278,5 +1278,5 @@
 	}
 
-	BOOST_FOREACH( const Variable *pVar, compiler.objectModule.meta.GetGlobalVars() ){
+	BOOST_FOREACH( const Variable *pVar, compiler.GetObjectModule().meta.GetGlobalVars() ){
 		if( pVar->GetType().IsObject() || pVar->GetType().IsPointer() || pVar->GetType().IsStruct() ){
 			// オブジェクトまたはポインタだったとき
Index: trunk/abdev/BasicCompiler64/MakePeHdr.cpp
===================================================================
--- trunk/abdev/BasicCompiler64/MakePeHdr.cpp	(revision 263)
+++ trunk/abdev/BasicCompiler64/MakePeHdr.cpp	(revision 266)
@@ -105,5 +105,4 @@
 	extern HANDLE hHeap;
 	extern BOOL bDebugCompile;
-	extern BOOL bDll;
 	extern DWORD ImageBase;
 	extern int obp_AllocSize;
@@ -123,5 +122,5 @@
 
 	//エクスポート セクションを利用するかどうか
-	if(bDll) bUse_ExportSection=1;
+	if( compiler.IsDll() ) bUse_ExportSection=1;
 	else bUse_ExportSection=0;
 
@@ -129,7 +128,7 @@
 	//////////////////
 	// データテーブル
-	compiler.objectModule.dataTable.Clear();
+	compiler.GetObjectModule().dataTable.Clear();
 	if(bDebugCompile){
-		compiler.objectModule.dataTable.Add( (long)0x00000002 );
+		compiler.GetObjectModule().dataTable.Add( (long)0x00000002 );
 	}
 
@@ -155,10 +154,10 @@
 
 	//関数ポインタ情報を初期化
-	compiler.objectModule.meta.GetProcPointers().clear();
+	compiler.GetObjectModule().meta.GetProcPointers().clear();
 
 	// 名前空間情報を取得
 	NamespaceSupporter::CollectNamespaces(
-		Smoothie::Lexical::source.GetBuffer(),
-		compiler.objectModule.meta.GetNamespaces()
+		compiler.GetObjectModule().source.GetBuffer(),
+		compiler.GetObjectModule().meta.GetNamespaces()
 	);
 
@@ -166,8 +165,8 @@
 	//   CollectProcedures関数の中で参照されるオブジェクト名を事前に取得する。
 	//     ※オブジェクトの内容までは取得しない
-	compiler.objectModule.meta.GetClasses().CollectClassesForNameOnly( Smoothie::Lexical::source );
+	compiler.GetObjectModule().meta.GetClasses().CollectClassesForNameOnly( compiler.GetObjectModule().source );
 
 	//TypeDef情報を初期化
-	compiler.objectModule.meta.GetTypeDefs().Init();
+	compiler.GetObjectModule().meta.GetTypeDefs().Init();
 
 	//定数情報を取得
@@ -177,18 +176,18 @@
 	compiler.pCompilingClass = NULL;
 	CollectProcedures(
-		Smoothie::Lexical::source,
-		compiler.objectModule.meta.GetUserProcs(),
-		compiler.objectModule.meta.GetDllProcs()
+		compiler.GetObjectModule().source,
+		compiler.GetObjectModule().meta.GetUserProcs(),
+		compiler.GetObjectModule().meta.GetDllProcs()
 	);
 
 	// クラス情報を取得（※注 - CollectProceduresの後に呼び出す）
-	compiler.objectModule.meta.GetClasses().GetAllClassInfo();
+	compiler.GetObjectModule().meta.GetClasses().GetAllClassInfo();
 
 	// サブルーチン（ユーザー定義、DLL関数）のイテレータの準備
-	compiler.objectModule.meta.GetUserProcs().Iterator_Init();
-	compiler.objectModule.meta.GetDllProcs().Iterator_Init();
+	compiler.GetObjectModule().meta.GetUserProcs().Iterator_Init();
+	compiler.GetObjectModule().meta.GetDllProcs().Iterator_Init();
 
 /*
-	if( !compiler.objectModule.meta.WriteXml( Jenga::Common::Environment::GetAppDir() + "\\meta_test.xml" ) )
+	if( !compiler.GetObjectModule().meta.WriteXml( Jenga::Common::Environment::GetAppDir() + "\\meta_test.xml" ) )
 	{
 		MessageBox(0,"XML書き込みに失敗","test",0);
@@ -200,5 +199,5 @@
 	}
 
-	if( !compiler.objectModule.meta.WriteBinaly( Jenga::Common::Environment::GetAppDir() + "\\meta_test.dat" ) )
+	if( !compiler.GetObjectModule().meta.WriteBinaly( Jenga::Common::Environment::GetAppDir() + "\\meta_test.dat" ) )
 	{
 		MessageBox(0,"バイナリ書き込みに失敗","test",0);
@@ -209,5 +208,5 @@
 		MessageBox(0,"バイナリ読み込みに失敗","test",0);
 	}
-	if( !compiler.objectModule.meta.WriteText( Jenga::Common::Environment::GetAppDir() + "\\meta_test.dat" ) )
+	if( !compiler.GetObjectModule().meta.WriteText( Jenga::Common::Environment::GetAppDir() + "\\meta_test.dat" ) )
 	{
 		MessageBox(0,"バイナリ書き込みに失敗","test",0);
@@ -218,5 +217,5 @@
 		MessageBox(0,"バイナリ読み込みに失敗","test",0);
 	}
-	compiler.objectModule.meta = (*pTempMeta);*/
+	compiler.GetObjectModule().meta = (*pTempMeta);*/
 
 
@@ -353,5 +352,5 @@
 	UserProc::CompileStartForGlobalArea();
 
-	if(!bDll){
+	if( !compiler.IsDll() ){
 		// 名前空間が初期化されているかをチェック
 		if( compiler.GetNamespaceSupporter().GetLivingNamespaceScopes().size() ){
@@ -379,5 +378,5 @@
 
 		// コード生成対象を選択
-		compiler.codeGenerator.Select( compiler.objectModule.globalNativeCode );
+		compiler.codeGenerator.Select( compiler.GetObjectModule().globalNativeCode );
 
 		trace_for_sourcecodestep( "★★★ グローバル領域のコンパイルを開始" );
@@ -402,5 +401,5 @@
 
 		//クラスに属する静的メンバを定義
-		compiler.objectModule.meta.GetClasses().InitStaticMember();
+		compiler.GetObjectModule().meta.GetClasses().InitStaticMember();
 
 		//グローバル実行領域をコンパイル開始
@@ -506,5 +505,5 @@
 
 	vector<ObjectModule *> masterObjectModules;
-	masterObjectModules.push_back( &compiler.objectModule );
+	masterObjectModules.push_back( &compiler.GetObjectModule() );
 	compiler.linker.Link( masterObjectModules );
 
@@ -520,8 +519,8 @@
 	// 使用するDLL関数のチェック
 	////////////////////////////////
-	compiler.objectModule.meta.GetDllProcs().Iterator_Reset();
-	while( compiler.objectModule.meta.GetDllProcs().Iterator_HasNext() )
+	compiler.GetObjectModule().meta.GetDllProcs().Iterator_Reset();
+	while( compiler.GetObjectModule().meta.GetDllProcs().Iterator_HasNext() )
 	{
-		const DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().Iterator_GetNext();
+		const DllProc *pDllProc = compiler.GetObjectModule().meta.GetDllProcs().Iterator_GetNext();
 
 		if( !pDllProc->IsUsing() ){
@@ -594,8 +593,8 @@
 			//辞書順にサーチ
 			temporary[0]=0;
-			compiler.objectModule.meta.GetUserProcs().Iterator_Reset();
-			while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() )
+			compiler.GetObjectModule().meta.GetUserProcs().Iterator_Reset();
+			while( compiler.GetObjectModule().meta.GetUserProcs().Iterator_HasNext() )
 			{
-				pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext();
+				pUserProc = compiler.GetObjectModule().meta.GetUserProcs().Iterator_GetNext();
 				if(pUserProc->IsExport()){
 					if(temporary[0]=='\0'){
@@ -698,8 +697,8 @@
 	int ImportDllNum=0;
 
-	compiler.objectModule.meta.GetDllProcs().Iterator_Reset();
-	while( compiler.objectModule.meta.GetDllProcs().Iterator_HasNext() )
+	compiler.GetObjectModule().meta.GetDllProcs().Iterator_Reset();
+	while( compiler.GetObjectModule().meta.GetDllProcs().Iterator_HasNext() )
 	{
-		const DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().Iterator_GetNext();
+		const DllProc *pDllProc = compiler.GetObjectModule().meta.GetDllProcs().Iterator_GetNext();
 
 		if( !pDllProc->IsUsing() ){
@@ -737,8 +736,8 @@
 		pImportDescriptor[i].Name=i*0x10;	//※すぐ下で再計算
 
-		compiler.objectModule.meta.GetDllProcs().Iterator_Reset();
-		while( compiler.objectModule.meta.GetDllProcs().Iterator_HasNext() )
+		compiler.GetObjectModule().meta.GetDllProcs().Iterator_Reset();
+		while( compiler.GetObjectModule().meta.GetDllProcs().Iterator_HasNext() )
 		{
-			const DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().Iterator_GetNext();
+			const DllProc *pDllProc = compiler.GetObjectModule().meta.GetDllProcs().Iterator_GetNext();
 
 			if( !pDllProc->IsUsing() ){
@@ -775,8 +774,8 @@
 	pHintTable=(char *)HeapAlloc(hHeap,0,HintAllocSize);
 	for(i=0,i5=0;i<ImportDllNum;i++){
-		compiler.objectModule.meta.GetDllProcs().Iterator_Reset();
-		while( compiler.objectModule.meta.GetDllProcs().Iterator_HasNext() )
+		compiler.GetObjectModule().meta.GetDllProcs().Iterator_Reset();
+		while( compiler.GetObjectModule().meta.GetDllProcs().Iterator_HasNext() )
 		{
-			DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().Iterator_GetNext();
+			DllProc *pDllProc = compiler.GetObjectModule().meta.GetDllProcs().Iterator_GetNext();
 
 			if( !pDllProc->IsUsing() ){
@@ -815,5 +814,5 @@
 
 
-	if(bDll){
+	if( compiler.IsDll() ){
 		//DLLの場合はリロケーション情報を仮生成
 		//※正式な生成は各セクションのメモリ上のサイズが決定してから再度行う。
@@ -826,5 +825,5 @@
 	//（デバッグ情報で利用される）
 	extern int AllInitGlobalVarSize;
-	BOOST_FOREACH( Variable *pVar, compiler.objectModule.meta.GetGlobalVars() ){
+	BOOST_FOREACH( Variable *pVar, compiler.GetObjectModule().meta.GetGlobalVars() ){
 		if(pVar->GetOffsetAddress()&0x80000000){
 			pVar->SetOffsetAddress(
@@ -839,22 +838,4 @@
 	// デバッグセクションを生成
 	////////////////////////////////////
-
-	//機械語コードとBasicコードの関係を整理
-	extern SourceLines oldSourceLines;
-	int MinObp,MaxObp;
-	SourceLines tempSourceLines;
-	MaxObp=0;
-	while(1){
-		for(i3=0,MinObp=0x0FFFFFFF;i3<oldSourceLines.size();i3++){
-			if(oldSourceLines[i3].GetNativeCodePos()<MinObp&&MaxObp<oldSourceLines[i3].GetNativeCodePos()){
-				MinObp=oldSourceLines[i3].GetNativeCodePos();
-				i4=i3;
-			}
-		}
-		if(MinObp==0x0FFFFFFF) break;
-		tempSourceLines.push_back( oldSourceLines[i4] );
-		MaxObp=tempSourceLines.back().GetNativeCodePos();
-	}
-	oldSourceLines = tempSourceLines;
 
 	//デバッグセクションを生成
@@ -903,6 +884,6 @@
 
 	//データセクションのファイル上のサイズ
-	if(compiler.objectModule.dataTable.GetSize()%FILE_ALIGNMENT) FileSize_DataSection=compiler.objectModule.dataTable.GetSize()+(FILE_ALIGNMENT-compiler.objectModule.dataTable.GetSize()%FILE_ALIGNMENT);
-	else FileSize_DataSection=compiler.objectModule.dataTable.GetSize();
+	if(compiler.GetObjectModule().dataTable.GetSize()%FILE_ALIGNMENT) FileSize_DataSection=compiler.GetObjectModule().dataTable.GetSize()+(FILE_ALIGNMENT-compiler.GetObjectModule().dataTable.GetSize()%FILE_ALIGNMENT);
+	else FileSize_DataSection=compiler.GetObjectModule().dataTable.GetSize();
 	if(FileSize_DataSection) bUse_DataSection=1;
 	else bUse_DataSection=0;
@@ -1065,8 +1046,8 @@
 			LookupSize;			//ルックアップテーブル
 
-		compiler.objectModule.meta.GetDllProcs().Iterator_Reset();
-		while( compiler.objectModule.meta.GetDllProcs().Iterator_HasNext() )
+		compiler.GetObjectModule().meta.GetDllProcs().Iterator_Reset();
+		while( compiler.GetObjectModule().meta.GetDllProcs().Iterator_HasNext() )
 		{
-			const DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().Iterator_GetNext();
+			const DllProc *pDllProc = compiler.GetObjectModule().meta.GetDllProcs().Iterator_GetNext();
 
 			if( !pDllProc->IsUsing() ){
@@ -1086,5 +1067,5 @@
 	////////////////////////////////////////
 	//仮想関数データテーブルスケジュール
-	compiler.objectModule.meta.GetClasses().ActionVtblSchedule(ImageBase,MemPos_CodeSection);
+	compiler.GetObjectModule().meta.GetClasses().ActionVtblSchedule(ImageBase,MemPos_CodeSection);
 
 
@@ -1130,5 +1111,5 @@
 
 
-	if(bDll){
+	if( compiler.IsDll() ){
 		//DLLの場合はリロケーション情報を生成
 		pobj_Reloc->ResetRelocBuffer();
@@ -1269,5 +1250,5 @@
 	ImagePeHdr.FileHeader.NumberOfSymbols=		0x00000000;
 	ImagePeHdr.FileHeader.SizeOfOptionalHeader=	IMAGE_SIZEOF_NT_OPTIONAL64_HEADER;
-	if(bDll){
+	if( compiler.IsDll() ){
 		ImagePeHdr.FileHeader.Characteristics=	IMAGE_FILE_EXECUTABLE_IMAGE|
 												IMAGE_FILE_DLL|
@@ -1286,5 +1267,5 @@
 	ImagePeHdr.OptionalHeader.SizeOfInitializedData=FileSize_DataSection;	//データサイズ（.dataのセッションサイズ）
 	ImagePeHdr.OptionalHeader.SizeOfUninitializedData=0;					//未初期化データのサイズ（なし）
-	if(bDll){
+	if( compiler.IsDll() ){
 		if(DllMain_EntryPoint==-1)
 			ImagePeHdr.OptionalHeader.AddressOfEntryPoint=0;
@@ -1636,5 +1617,5 @@
 	if(bUse_DataSection){
 		//データ テーブル
-		WriteFile(hFile,compiler.objectModule.dataTable.GetPtr(),compiler.objectModule.dataTable.GetSize(),(DWORD *)&i2,NULL);
+		WriteFile(hFile,compiler.GetObjectModule().dataTable.GetPtr(),compiler.GetObjectModule().dataTable.GetSize(),(DWORD *)&i2,NULL);
 		i+=i2;
 	}
@@ -1748,4 +1729,4 @@
 
 	//クラスに関するメモリを解放
-	compiler.objectModule.meta.GetClasses().Clear();
+	compiler.GetObjectModule().meta.GetClasses().Clear();
 }
Index: trunk/abdev/BasicCompiler64/NumOpe.cpp
===================================================================
--- trunk/abdev/BasicCompiler64/NumOpe.cpp	(revision 263)
+++ trunk/abdev/BasicCompiler64/NumOpe.cpp	(revision 266)
@@ -25,5 +25,5 @@
 		SetStringQuotes( parameter );
 
-		Operator_New( *compiler.objectModule.meta.GetClasses().GetStringClassPtr(), "", parameter, Type( DEF_OBJECT, *compiler.objectModule.meta.GetClasses().GetStringClassPtr() ) );
+		Operator_New( *compiler.GetObjectModule().meta.GetClasses().GetStringClassPtr(), "", parameter, Type( DEF_OBJECT, *compiler.GetObjectModule().meta.GetClasses().GetStringClassPtr() ) );
 
 		free( parameter );
@@ -259,5 +259,5 @@
 		Type leftType;
 		if( GetTermType( termLeft, leftType, isLiteral, &isClassName ) ){
-			if( isClassName == false && compiler.objectModule.meta.GetBlittableTypes().IsExist( leftType ) ){
+			if( isClassName == false && compiler.GetObjectModule().meta.GetBlittableTypes().IsExist( leftType ) ){
 				// 左側のオブジェクト部分がBlittable型のとき
 
@@ -265,5 +265,5 @@
 				lstrcpy( temporary, termLeft );
 				sprintf( termLeft, "%s(%s)",
-					compiler.objectModule.meta.GetBlittableTypes().Find( leftType ).GetCreateStaticMethodFullName().c_str(),
+					compiler.GetObjectModule().meta.GetBlittableTypes().Find( leftType ).GetCreateStaticMethodFullName().c_str(),
 					temporary );
 			}
@@ -293,5 +293,5 @@
 
 	if( pIsClassName ){
-		if( compiler.objectModule.meta.GetClasses().Find( termFull ) ){
+		if( compiler.GetObjectModule().meta.GetClasses().Find( termFull ) ){
 			*pIsClassName = true;
 			return true;
@@ -387,5 +387,5 @@
 		}
 
-		ConstMacro *pConstMacro = compiler.objectModule.meta.GetGlobalConstMacros().Find( procName );
+		ConstMacro *pConstMacro = compiler.GetObjectModule().meta.GetGlobalConstMacros().Find( procName );
 		if( pConstMacro )
 		{
@@ -574,5 +574,5 @@
 		}
 
-		i2 = compiler.objectModule.dataTable.AddBinary( binary, num * tempBaseType.GetSize() );
+		i2 = compiler.GetObjectModule().dataTable.AddBinary( binary, num * tempBaseType.GetSize() );
 
 		//mov reg,i2
@@ -603,5 +603,5 @@
 
 			if(resultType.IsDouble()){
-				i3 = compiler.objectModule.dataTable.Add( i64data );
+				i3 = compiler.GetObjectModule().dataTable.Add( i64data );
 
 				//movlpd xmm_reg,qword ptr[data table offset]
@@ -617,5 +617,5 @@
 				memcpy(&i32data,&flt,sizeof(long));
 
-				i3 = compiler.objectModule.dataTable.Add( i32data );
+				i3 = compiler.GetObjectModule().dataTable.Add( i32data );
 
 				//movss xmm_reg,dword ptr[data table offset]
@@ -798,5 +798,5 @@
 
 						type_stack[sp]=DEF_OBJECT;
-						index_stack[sp]=(LONG_PTR)compiler.objectModule.meta.GetClasses().GetStringClassPtr();
+						index_stack[sp]=(LONG_PTR)compiler.GetObjectModule().meta.GetClasses().GetStringClassPtr();
 						bLiteralCalculation=0;
 
@@ -811,5 +811,5 @@
 					bLiteralCalculation=0;
 
-					i2 = compiler.objectModule.dataTable.AddString( term, i3 );
+					i2 = compiler.GetObjectModule().dataTable.AddString( term, i3 );
 
 					//mov reg,i2
@@ -904,5 +904,5 @@
 						}
 						else{
-							index_stack[sp] = (LONG_PTR)compiler.objectModule.meta.GetClasses().GetObjectClassPtr();
+							index_stack[sp] = (LONG_PTR)compiler.GetObjectModule().meta.GetClasses().GetObjectClassPtr();
 						}
 
@@ -927,10 +927,10 @@
 					//////////////
 
-					i3 = compiler.objectModule.meta.GetGlobalConsts().GetBasicType(term);
+					i3 = compiler.GetObjectModule().meta.GetGlobalConsts().GetBasicType(term);
 					if(i3){
-						if( compiler.objectModule.meta.GetGlobalConsts().IsStringPtr( term ) ){
+						if( compiler.GetObjectModule().meta.GetGlobalConsts().IsStringPtr( term ) ){
 							//リテラル文字列
 
-							double dbl = compiler.objectModule.meta.GetGlobalConsts().GetDoubleData(term);
+							double dbl = compiler.GetObjectModule().meta.GetGlobalConsts().GetDoubleData(term);
 							memcpy(&i64data,&dbl,sizeof(double));
 
@@ -946,5 +946,5 @@
 						if(IsRealNumberType(i3)){
 							//実数
-							double dbl = compiler.objectModule.meta.GetGlobalConsts().GetDoubleData(term);
+							double dbl = compiler.GetObjectModule().meta.GetGlobalConsts().GetDoubleData(term);
 							memcpy(&i64data,&dbl,sizeof(double));
 							goto Literal;
@@ -952,5 +952,5 @@
 						else if(IsWholeNumberType(i3)){
 							//整数
-							i64data = compiler.objectModule.meta.GetGlobalConsts().GetWholeData(term);
+							i64data = compiler.GetObjectModule().meta.GetGlobalConsts().GetWholeData(term);
 							goto Literal;
 						}
@@ -993,5 +993,5 @@
 						}
 						else{
-							i3 = compiler.objectModule.dataTable.Add( i64data );
+							i3 = compiler.GetObjectModule().dataTable.Add( i64data );
 
 							//movlpd xmm_reg,qword ptr[data table offset]
@@ -1015,5 +1015,5 @@
 						}
 						else{
-							i3=compiler.objectModule.dataTable.Add( i32data );
+							i3=compiler.GetObjectModule().dataTable.Add( i32data );
 
 							//movss xmm_reg,dword ptr[data table offset]
Index: trunk/abdev/BasicCompiler64/NumOpe_Arithmetic.cpp
===================================================================
--- trunk/abdev/BasicCompiler64/NumOpe_Arithmetic.cpp	(revision 263)
+++ trunk/abdev/BasicCompiler64/NumOpe_Arithmetic.cpp	(revision 266)
@@ -470,5 +470,5 @@
 		double dbl;
 		dbl=-1;
-		i32data = compiler.objectModule.dataTable.Add( dbl );
+		i32data = compiler.GetObjectModule().dataTable.Add( dbl );
 
 		//mulsd xmm_reg,qword ptr[data table offset]   ※data = -1
@@ -495,5 +495,5 @@
 		float flt;
 		flt=-1;
-		i32data = compiler.objectModule.dataTable.Add( flt );
+		i32data = compiler.GetObjectModule().dataTable.Add( flt );
 
 		//mulss xmm_reg,dword ptr[data table offset]   ※data = -1
Index: trunk/abdev/BasicCompiler64/NumOpe_TypeOperation.cpp
===================================================================
--- trunk/abdev/BasicCompiler64/NumOpe_TypeOperation.cpp	(revision 263)
+++ trunk/abdev/BasicCompiler64/NumOpe_TypeOperation.cpp	(revision 266)
@@ -89,5 +89,5 @@
 			//addsd xmm_reg,qword ptr[offset]	※offset value:43f0000000000000
 			_int64 i64data=0x43f0000000000000;
-			long temp=compiler.objectModule.dataTable.Add( i64data );
+			long temp=compiler.GetObjectModule().dataTable.Add( i64data );
 			compiler.codeGenerator.PutOld(
 				(char)0xF2,
@@ -149,5 +149,5 @@
 			//addss xmm_reg,dword ptr[offset]	※offset value:5f800000
 			long i32data=0x5f800000;
-			long temp=compiler.objectModule.dataTable.Add( i32data );
+			long temp=compiler.GetObjectModule().dataTable.Add( i32data );
 			compiler.codeGenerator.PutOld(
 				(char)0xF3,
