Index: /trunk/abdev/BasicCompiler32/MakePeHdr.cpp
===================================================================
--- /trunk/abdev/BasicCompiler32/MakePeHdr.cpp	(revision 279)
+++ /trunk/abdev/BasicCompiler32/MakePeHdr.cpp	(revision 280)
@@ -174,5 +174,5 @@
 	// 名前空間情報を取得
 	NamespaceSupporter::CollectNamespaces(
-		compiler.GetObjectModule().source.GetBuffer(),
+		compiler.GetObjectModule().GetCurrentSource().GetBuffer(),
 		compiler.GetObjectModule().meta.GetNamespaces()
 	);
@@ -181,5 +181,5 @@
 	//   CollectProcedures関数の中で参照されるオブジェクト名を事前に取得する。
 	//     ※オブジェクトの内容までは取得しない
-	compiler.GetObjectModule().meta.GetClasses().CollectClassesForNameOnly( compiler.GetObjectModule().source );
+	compiler.GetObjectModule().meta.GetClasses().CollectClassesForNameOnly( compiler.GetObjectModule().GetCurrentSource() );
 
 	//TypeDef情報を初期化
@@ -192,5 +192,5 @@
 	compiler.pCompilingClass = NULL;
 	CollectProcedures(
-		compiler.GetObjectModule().source,
+		compiler.GetObjectModule().GetCurrentSource(),
 		compiler.GetObjectModule().meta.GetUserProcs(),
 		compiler.GetObjectModule().meta.GetDllProcs()
@@ -204,8 +204,4 @@
 	compiler.GetObjectModule().meta.GetDllProcs().Iterator_Init();
 
-
-	//コードと行番号の関係
-	extern SourceLines oldSourceLines;
-	oldSourceLines.clear();
 
 
@@ -505,4 +501,5 @@
 	compiler.linker.Link( compiler.GetObjectModule() );
 
+	extern SourceLines oldSourceLines;
 	oldSourceLines = compiler.linker.GetNativeCode().GetSourceLines();
 
Index: /trunk/abdev/BasicCompiler_Common/BreakPoint.cpp
===================================================================
--- /trunk/abdev/BasicCompiler_Common/BreakPoint.cpp	(revision 279)
+++ /trunk/abdev/BasicCompiler_Common/BreakPoint.cpp	(revision 280)
@@ -44,27 +44,45 @@
 }
 
-void CFileBreakPoint::update(char *nativeCodeBuffer){
+void CFileBreakPoint::update(char *nativeCodeBuffer)
+{
 	int FileNum;
-	for(FileNum=0;FileNum<compiler.GetObjectModule().source.GetIncludedFilesRelation().GetFileCounts();FileNum++){
-		if(lstrcmpi(compiler.GetObjectModule().source.GetIncludedFilesRelation().GetFilePathFromFileNumber(FileNum).c_str(),lpszFileName)==0) break;
-	}
-	if( FileNum == compiler.GetObjectModule().source.GetIncludedFilesRelation().GetFileCounts() )
+	const IncludedFilesRelation *pIncludedFilesRelation = NULL;
+	BOOST_FOREACH( const BasicSource &source, compiler.GetObjectModule().GetSources() )
+	{
+		pIncludedFilesRelation = &source.GetIncludedFilesRelation();
+
+		for(FileNum=0;FileNum<pIncludedFilesRelation->GetFileCounts();FileNum++)
+		{
+			if(lstrcmpi(pIncludedFilesRelation->GetFilePathFromFileNumber(FileNum).c_str(),lpszFileName)==0) break;
+		}
+		if( FileNum == pIncludedFilesRelation->GetFileCounts() )
+		{
+			pIncludedFilesRelation = NULL;
+		}
+		else
+		{
+			break;
+		}
+	}
+
+	if( !pIncludedFilesRelation )
+	{
+		Jenga::Throw( "CFileBreakPoint::update内で不正な処理" );
+		return;
+	}
+
+	int i;
+	for(i=0;;i++){
+		if( pIncludedFilesRelation->GetFileNumber( i ) == FileNum
+			|| pIncludedFilesRelation->GetFileNumber( i ) == -1 )
+		{
+			break;
+		}
+	}
+	if( pIncludedFilesRelation->GetFileNumber( i ) == -1 )
 	{
 		return;
 	}
 
-	int i;
-	for(i=0;;i++){
-		if( compiler.GetObjectModule().source.GetIncludedFilesRelation().GetFileNumber( i ) == FileNum
-			|| compiler.GetObjectModule().source.GetIncludedFilesRelation().GetFileNumber( i ) == -1 )
-		{
-			break;
-		}
-	}
-	if( compiler.GetObjectModule().source.GetIncludedFilesRelation().GetFileNumber( i ) == -1 )
-	{
-		return;
-	}
-
 	int FileBaseLine;
 	FileBaseLine=i;
@@ -72,5 +90,5 @@
 	int i2,nCount=0;
 	for(i2=0;;i2++){
-		if( compiler.GetObjectModule().source.GetIncludedFilesRelation().GetFileNumber( FileBaseLine+i2 ) == -1 )
+		if( pIncludedFilesRelation->GetFileNumber( FileBaseLine+i2 ) == -1 )
 		{
 			//ソースコードの終端行
Index: /trunk/abdev/BasicCompiler_Common/CDebugThreadInfo.cpp
===================================================================
--- /trunk/abdev/BasicCompiler_Common/CDebugThreadInfo.cpp	(revision 279)
+++ /trunk/abdev/BasicCompiler_Common/CDebugThreadInfo.cpp	(revision 280)
@@ -37,4 +37,5 @@
 	lplpSpBase=(ULONG_PTR *)HeapAlloc(hHeap,0,(iProcLevel+1)*sizeof(ULONG_PTR));
 	lpdwCp=(DWORD *)HeapAlloc(hHeap,0,(iProcLevel+1)*sizeof(DWORD));
+	lpdwSourceIndex=(DWORD *)HeapAlloc(hHeap,0,(iProcLevel+1)*sizeof(DWORD));
 
 	//lplpObp
@@ -107,4 +108,5 @@
 		HeapDefaultFree(lplpSpBase);
 		HeapDefaultFree(lpdwCp);
+		HeapDefaultFree(lpdwSourceIndex);
 	}
 
Index: /trunk/abdev/BasicCompiler_Common/Debug.cpp
===================================================================
--- /trunk/abdev/BasicCompiler_Common/Debug.cpp	(revision 279)
+++ /trunk/abdev/BasicCompiler_Common/Debug.cpp	(revision 280)
@@ -56,8 +56,24 @@
 
 	int FileNum;
-	for(FileNum=0;FileNum<compiler.GetObjectModule().source.GetIncludedFilesRelation().GetFileCounts();FileNum++){
-		if(lstrcmpi(compiler.GetObjectModule().source.GetIncludedFilesRelation().GetFilePathFromFileNumber(FileNum).c_str(),szFilePath)==0) break;
-	}
-	if( FileNum == compiler.GetObjectModule().source.GetIncludedFilesRelation().GetFileCounts() )
+	const IncludedFilesRelation *pIncludedFilesRelation = NULL;
+	BOOST_FOREACH( const BasicSource &source, compiler.GetObjectModule().GetSources() )
+	{
+		pIncludedFilesRelation = &source.GetIncludedFilesRelation();
+
+		for(FileNum=0;FileNum<pIncludedFilesRelation->GetFileCounts();FileNum++)
+		{
+			if(lstrcmpi(pIncludedFilesRelation->GetFilePathFromFileNumber(FileNum).c_str(),szFilePath)==0) break;
+		}
+		if( FileNum == pIncludedFilesRelation->GetFileCounts() )
+		{
+			pIncludedFilesRelation = NULL;
+		}
+		else
+		{
+			break;
+		}
+	}
+
+	if( !pIncludedFilesRelation )
 	{
 		return;
@@ -65,11 +81,11 @@
 
 	for(i=0;;i++){
-		if( compiler.GetObjectModule().source.GetIncludedFilesRelation().GetFileNumber( i ) == FileNum
-			|| compiler.GetObjectModule().source.GetIncludedFilesRelation().GetFileNumber( i ) == -1 )
+		if( pIncludedFilesRelation->GetFileNumber( i ) == FileNum
+			|| pIncludedFilesRelation->GetFileNumber( i ) == -1 )
 		{
 			break;
 		}
 	}
-	if( compiler.GetObjectModule().source.GetIncludedFilesRelation().GetFileNumber( i ) == -1 )
+	if( pIncludedFilesRelation->GetFileNumber( i ) == -1 )
 	{
 		return;
@@ -82,7 +98,7 @@
 	for(i2=0;;i++,i2++)
 	{
-		if( FileNum < compiler.GetObjectModule().source.GetIncludedFilesRelation().GetFileNumber( i ) )
+		if( FileNum < pIncludedFilesRelation->GetFileNumber( i ) )
 		{
-			while( FileNum != compiler.GetObjectModule().source.GetIncludedFilesRelation().GetFileNumber( i ) )
+			while( FileNum != pIncludedFilesRelation->GetFileNumber( i ) )
 			{
 				i++;
Index: /trunk/abdev/BasicCompiler_Common/DebugMiddleFile.cpp
===================================================================
--- /trunk/abdev/BasicCompiler_Common/DebugMiddleFile.cpp	(revision 279)
+++ /trunk/abdev/BasicCompiler_Common/DebugMiddleFile.cpp	(revision 280)
@@ -116,4 +116,7 @@
 
 		*(long *)(buffer+i2) = sourceLine.GetNativeCodePos();
+		i2+=sizeof(long);
+
+		*(long *)(buffer+i2) = sourceLine.GetSourceIndex();
 		i2+=sizeof(long);
 
@@ -206,4 +209,7 @@
 		i2+=sizeof(long);
 
+		int sourceIndex = *(long *)(buffer+i2);
+		i2+=sizeof(long);
+
 		int sourceCodePos = *(long *)(buffer+i2);
 		i2+=sizeof(long);
@@ -212,5 +218,13 @@
 		i2+=sizeof(long);
 
-		_oldSourceLines.push_back( SourceLine( lineNum, nativeCodePos, sourceCodePos, sourceLineType ) );
+		_oldSourceLines.push_back(
+			SourceLine(
+				lineNum,
+				nativeCodePos,
+				sourceIndex,
+				sourceCodePos,
+				sourceLineType
+			)
+		);
 	}
 
Index: /trunk/abdev/BasicCompiler_Common/Enum.cpp
===================================================================
--- /trunk/abdev/BasicCompiler_Common/Enum.cpp	(revision 279)
+++ /trunk/abdev/BasicCompiler_Common/Enum.cpp	(revision 280)
@@ -115,5 +115,5 @@
 	iEnumParentNum=0;
 
-	const char *source = compiler.GetObjectModule().source.GetBuffer();
+	const char *source = compiler.GetObjectModule().GetCurrentSource().GetBuffer();
 
 	// 名前空間管理
Index: /trunk/abdev/BasicCompiler_Common/MakeExe.cpp
===================================================================
--- /trunk/abdev/BasicCompiler_Common/MakeExe.cpp	(revision 279)
+++ /trunk/abdev/BasicCompiler_Common/MakeExe.cpp	(revision 280)
@@ -24,5 +24,5 @@
 
 	//最後尾に貼り付け
-	compiler.GetObjectModule().source.Addition( temp );
+	compiler.GetObjectModule().GetCurrentSource().Addition( temp );
 
 	HeapDefaultFree(temp);
@@ -57,5 +57,7 @@
 	//プログラムをファイルから読み込む
 	extern char SourceFileName[MAX_PATH];
-	if( !compiler.GetObjectModule().source.ReadFile( SourceFileName ) ){
+	compiler.GetObjectModule().SetCurrentSourceIndex( compiler.GetObjectModule().GetSources().size() );
+	compiler.GetObjectModule().GetSources().push_back( BasicSource() );
+	if( !compiler.GetObjectModule().GetCurrentSource().ReadFile( SourceFileName ) ){
 		SetError(201,SourceFileName,-1);
 		goto EndCompile;
Index: /trunk/abdev/BasicCompiler_Common/VarList.cpp
===================================================================
--- /trunk/abdev/BasicCompiler_Common/VarList.cpp	(revision 279)
+++ /trunk/abdev/BasicCompiler_Common/VarList.cpp	(revision 280)
@@ -576,5 +576,9 @@
 		}
 		if(i2==oldSourceLines.size()-1) pobj_dti->lpdwCp[i3]=-1;
-		else pobj_dti->lpdwCp[i3]=oldSourceLines[i2].GetSourceCodePos();
+		else
+		{
+			pobj_dti->lpdwCp[i3]=oldSourceLines[i2].GetSourceCodePos();
+			pobj_dti->lpdwSourceIndex[i3]=oldSourceLines[i2].GetSourceIndex();
+		}
 	}
 	for(i3=0;i3<(int)pobj_dti->iProcLevel+1;i3++){
@@ -585,4 +589,5 @@
 				pobj_dti->lplpSpBase[i2]=pobj_dti->lplpSpBase[i2+1];
 				pobj_dti->lpdwCp[i2]=pobj_dti->lpdwCp[i2+1];
+				pobj_dti->lpdwSourceIndex[i2]=pobj_dti->lpdwSourceIndex[i2+1];
 			}
 			i3--;
@@ -592,5 +597,5 @@
 
 	std::string dummyStr;
-	if(!compiler.GetObjectModule().source.GetLineInfo( pobj_dti->lpdwCp[pobj_dti->iProcLevel], i2, dummyStr )){
+	if(!compiler.GetObjectModule().GetSource( pobj_dti->lpdwSourceIndex[pobj_dti->iProcLevel] ).GetLineInfo( pobj_dti->lpdwCp[pobj_dti->iProcLevel], i2, dummyStr )){
 		extern HWND hMainDlg;
 		//"デバッグ情報の取得に失敗"
@@ -674,5 +679,5 @@
 
 				std::string dummyStr;
-				compiler.GetObjectModule().source.GetLineInfo( pobj_dti->lpdwCp[pobj_dti->iProcLevel-i2], i3, dummyStr );
+				compiler.GetObjectModule().GetSource( pobj_dti->lpdwSourceIndex[pobj_dti->iProcLevel] ).GetLineInfo( pobj_dti->lpdwCp[pobj_dti->iProcLevel-i2], i3, dummyStr );
 				ShowErrorLine(i3,dummyStr.c_str());
 
Index: /trunk/abdev/BasicCompiler_Common/debug.h
===================================================================
--- /trunk/abdev/BasicCompiler_Common/debug.h	(revision 279)
+++ /trunk/abdev/BasicCompiler_Common/debug.h	(revision 280)
@@ -4,4 +4,5 @@
 	//ソースコードポインタ
 	DWORD *lpdwCp;
+	DWORD *lpdwSourceIndex;
 
 	//ネイティブコードポインタ
Index: /trunk/abdev/BasicCompiler_Common/error.cpp
===================================================================
--- /trunk/abdev/BasicCompiler_Common/error.cpp	(revision 279)
+++ /trunk/abdev/BasicCompiler_Common/error.cpp	(revision 280)
@@ -330,5 +330,5 @@
 	else{
 		std::string dummyStr;
-		compiler.GetObjectModule().source.GetLineInfo( pos, pErrorInfo[ErrorNum].line, dummyStr );
+		compiler.GetObjectModule().GetCurrentSource().GetLineInfo( pos, pErrorInfo[ErrorNum].line, dummyStr );
 
 		pErrorInfo[ErrorNum].FileName=(char *)HeapAlloc(hHeap,0,lstrlen(dummyStr.c_str())+1);
Index: /trunk/abdev/BasicCompiler_Common/include/Meta.h
===================================================================
--- /trunk/abdev/BasicCompiler_Common/include/Meta.h	(revision 279)
+++ /trunk/abdev/BasicCompiler_Common/include/Meta.h	(revision 280)
@@ -75,5 +75,5 @@
 
 	// 静的リンク
-	void StaticLink( Meta &meta, long dataSectionBaseOffset );
+	void StaticLink( Meta &meta, long dataSectionBaseOffset, int sourceIndexBase );
 
 	const NamespaceScopesCollection &GetNamespaces() const
Index: /trunk/abdev/BasicCompiler_Common/include/NativeCode.h
===================================================================
--- /trunk/abdev/BasicCompiler_Common/include/NativeCode.h	(revision 279)
+++ /trunk/abdev/BasicCompiler_Common/include/NativeCode.h	(revision 280)
@@ -130,4 +130,5 @@
 	int lineNum;
 	long nativeCodePos;
+	int sourceIndex;
 	long sourceCodePos;
 	DWORD codeType;
@@ -142,4 +143,5 @@
 		ar & BOOST_SERIALIZATION_NVP( lineNum );
 		ar & BOOST_SERIALIZATION_NVP( nativeCodePos );
+		ar & BOOST_SERIALIZATION_NVP( sourceIndex );
 		ar & BOOST_SERIALIZATION_NVP( sourceCodePos );
 		ar & BOOST_SERIALIZATION_NVP( codeType );
@@ -147,7 +149,8 @@
 
 public:
-	SourceLine( int lineNum, int nativeCodePos, int sourceCodePos, DWORD codeType )
+	SourceLine( int lineNum, int nativeCodePos, int sourceIndex, int sourceCodePos, DWORD codeType )
 		: lineNum( lineNum )
 		, nativeCodePos( nativeCodePos )
+		, sourceIndex( sourceIndex )
 		, sourceCodePos( sourceCodePos )
 		, codeType( codeType )
@@ -165,4 +168,12 @@
 	{
 		return nativeCodePos;
+	}
+	int GetSourceIndex() const
+	{
+		return sourceIndex;
+	}
+	void SetSourceIndex( int sourceIndex )
+	{
+		this->sourceIndex = sourceIndex;
 	}
 	long GetSourceCodePos() const
@@ -366,3 +377,4 @@
 
 	void ResetDataSectionBaseOffset( long dataSectionBaseOffset );
+	void ResetSourceIndexes( long sourceIndexBase );
 };
Index: /trunk/abdev/BasicCompiler_Common/include/ObjectModule.h
===================================================================
--- /trunk/abdev/BasicCompiler_Common/include/ObjectModule.h	(revision 279)
+++ /trunk/abdev/BasicCompiler_Common/include/ObjectModule.h	(revision 280)
@@ -13,6 +13,8 @@
 	DataTable dataTable;
 
+private:
 	// ソースコード
-	BasicSource source;
+	int currentSourceIndex;
+	BasicSources sources;
 
 	// XMLシリアライズ用
@@ -30,9 +32,35 @@
 		ar & BOOST_SERIALIZATION_NVP( globalNativeCode );
 		ar & BOOST_SERIALIZATION_NVP( dataTable );
-		ar & BOOST_SERIALIZATION_NVP( source );
+		ar & BOOST_SERIALIZATION_NVP( currentSourceIndex );
+		ar & BOOST_SERIALIZATION_NVP( sources );
 	}
 
 public:
 	void StaticLink( ObjectModule &objectModule );
+
+	int GetCurrentSourceIndex() const
+	{
+		return currentSourceIndex;
+	}
+	const BasicSource &GetCurrentSource() const
+	{
+		return sources[currentSourceIndex];
+	}
+	BasicSource &GetCurrentSource()
+	{
+		return sources[currentSourceIndex];
+	}
+	void SetCurrentSourceIndex( int currentSourceIndex )
+	{
+		this->currentSourceIndex = currentSourceIndex;
+	}
+	const BasicSource &GetSource( int sourceIndex ) const
+	{
+		return sources[sourceIndex];
+	}
+	BasicSources &GetSources()
+	{
+		return sources;
+	}
 
 	bool Read( const std::string &filePath );
Index: /trunk/abdev/BasicCompiler_Common/include/Source.h
===================================================================
--- /trunk/abdev/BasicCompiler_Common/include/Source.h	(revision 279)
+++ /trunk/abdev/BasicCompiler_Common/include/Source.h	(revision 280)
@@ -11,12 +11,4 @@
 
 #include <BoostSerializationSupport.h>
-
-using namespace std;
-
-struct INCLUDEFILEINFO{
-	char **ppFileNames;
-	int FilesNum;
-	int LineOfFile[MAX_LEN];
-};
 
 class IncludedFilesRelation
@@ -87,4 +79,11 @@
 		buffer = (char *)calloc( 1, 1 );
 		length = 0;
+	}
+	Text( const Text &text )
+		: length( text.length )
+	{
+		buffer = (char *)malloc( length + 1 );
+		memcpy( buffer, text.buffer, length );
+		buffer[length] = 0;
 	}
 	~Text(){
@@ -195,4 +194,9 @@
 public:
 	BasicSource(){}
+	BasicSource( const BasicSource &basicSource )
+		: Text( basicSource )
+		, includedFilesRelation( basicSource.includedFilesRelation )
+	{
+	}
 	~BasicSource(){}
 
@@ -222,5 +226,5 @@
 	void Addition( const char *buffer );
 
-	bool GetLineInfo( int sourceCodePos, int &line, std::string &fileName );
+	bool GetLineInfo( int sourceCodePos, int &line, std::string &fileName ) const;
 
 	void operator = ( const BasicSource &source ){
@@ -238,2 +242,3 @@
 	}
 };
+typedef std::vector<BasicSource> BasicSources;
Index: /trunk/abdev/BasicCompiler_Common/src/Meta.cpp
===================================================================
--- /trunk/abdev/BasicCompiler_Common/src/Meta.cpp	(revision 279)
+++ /trunk/abdev/BasicCompiler_Common/src/Meta.cpp	(revision 280)
@@ -36,5 +36,5 @@
 }
 
-void Meta::StaticLink( Meta &meta, long dataSectionBaseOffset )
+void Meta::StaticLink( Meta &meta, long dataSectionBaseOffset, int sourceIndexBase )
 {
 	// 名前空間
@@ -55,4 +55,5 @@
 
 		pUserProc->GetNativeCode().ResetDataSectionBaseOffset( dataSectionBaseOffset );
+		pUserProc->GetNativeCode().ResetSourceIndexes( sourceIndexBase );
 
 		this->userProcs.Put( pUserProc );
Index: /trunk/abdev/BasicCompiler_Common/src/NativeCode.cpp
===================================================================
--- /trunk/abdev/BasicCompiler_Common/src/NativeCode.cpp	(revision 279)
+++ /trunk/abdev/BasicCompiler_Common/src/NativeCode.cpp	(revision 280)
@@ -1,6 +1,5 @@
 #include "stdafx.h"
 
-#include <NativeCode.h>
-#include <Procedure.h>
+#include <Compiler.h>
 
 #define BREAK_EIP(checkEip)  (obp+0x00401000>=checkEip)
@@ -32,4 +31,5 @@
 				sourceLine.GetLineNum(),
 				baseOffset + sourceLine.GetNativeCodePos(),
+				sourceLine.GetSourceIndex(),
 				sourceLine.GetSourceCodePos(),
 				sourceLine.GetCodeType()
@@ -86,5 +86,13 @@
 		sourceLineType |= CODETYPE_SYSTEMPROC;
 	}
-	sourceLines.push_back( SourceLine( (long)sourceLines.size(), size, cp, sourceLineType ) );
+	sourceLines.push_back(
+		SourceLine(
+			(long)sourceLines.size(),
+			size,
+			compiler.GetObjectModule().GetCurrentSourceIndex(),
+			cp,
+			sourceLineType
+		)
+	);
 }
 
@@ -102,2 +110,9 @@
 	}
 }
+void NativeCode::ResetSourceIndexes( long sourceIndexBase )
+{
+	BOOST_FOREACH( SourceLine &sourceLine, sourceLines )
+	{
+		sourceLine.SetSourceIndex( sourceLine.GetSourceIndex() + sourceIndexBase );
+	}
+}
Index: /trunk/abdev/BasicCompiler_Common/src/ObjectModule.cpp
===================================================================
--- /trunk/abdev/BasicCompiler_Common/src/ObjectModule.cpp	(revision 279)
+++ /trunk/abdev/BasicCompiler_Common/src/ObjectModule.cpp	(revision 280)
@@ -14,13 +14,23 @@
 void ObjectModule::StaticLink( ObjectModule &objectModule )
 {
+	long dataSectionBaseOffset = dataTable.GetSize();
+	int sourceIndexBase = sources.size();
+
 	// メタ情報を結合
-	meta.StaticLink( objectModule.meta, dataTable.GetSize() );
+	meta.StaticLink( objectModule.meta, dataSectionBaseOffset, sourceIndexBase );
 
 	// ネイティブコードを結合
+	objectModule.globalNativeCode.ResetDataSectionBaseOffset( dataSectionBaseOffset );
+	objectModule.globalNativeCode.ResetSourceIndexes( sourceIndexBase );
 	globalNativeCode.Put( objectModule.globalNativeCode );
-	globalNativeCode.ResetDataSectionBaseOffset( dataTable.GetSize() );
 
 	// データテーブルを結合
 	dataTable.Add( objectModule.dataTable );
+
+	// ソースコードを結合
+	BOOST_FOREACH( const BasicSource &source, objectModule.sources )
+	{
+		this->sources.push_back( source );
+	}
 }
 
Index: /trunk/abdev/BasicCompiler_Common/src/Source.cpp
===================================================================
--- /trunk/abdev/BasicCompiler_Common/src/Source.cpp	(revision 279)
+++ /trunk/abdev/BasicCompiler_Common/src/Source.cpp	(revision 280)
@@ -921,9 +921,9 @@
 }
 
-bool BasicSource::GetLineInfo( int sourceCodePos, int &line, std::string &filePath )
+bool BasicSource::GetLineInfo( int sourceCodePos, int &line, std::string &filePath ) const
 {
 	int i2,i3,i4,i5;
 
-	char *buffer = GetBuffer();
+	const char *buffer = GetBuffer();
 	int i = sourceCodePos;
 
