Index: trunk/ab5.0/abdev/BasicCompiler_Common/include/LexicalAnalyzer.h
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/include/LexicalAnalyzer.h	(revision 551)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/include/LexicalAnalyzer.h	(revision 552)
@@ -54,8 +54,8 @@
 	// グローバルプロシージャを収集する
 	static UserProc* ParseUserProc( const NamespaceScopes &namespaceScopes, const NamespaceScopesCollection &importedNamespaces, char *buffer,int nowLine,bool isVirtual,CClass *pobj_c, bool isStatic, char *interfaceName = NULL );
-	static void CollectProcedures( const BasicSource &source, UserProcs &userProcs, DllProcs &dllProcs );
+	static void CollectProcedures( const char *source, UserProcs &userProcs, DllProcs &dllProcs );
 
 	// デリゲートを収集する
-	static void CollectDelegates( const BasicSource &source, Delegates &delegates );
+	static void CollectDelegates( const char *source, Delegates &delegates );
 	static std::string GenerateDelegatesSourceCode( const Delegates &delegates );
 	static void RefleshDelegatesParameterAndReturnType( Delegates &delegates );
Index: trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Delegate.cpp
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Delegate.cpp	(revision 551)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Delegate.cpp	(revision 552)
@@ -3,5 +3,5 @@
 using namespace ActiveBasic::Compiler;
 
-void LexicalAnalyzer::CollectDelegates( const BasicSource &source, Delegates &delegates )
+void LexicalAnalyzer::CollectDelegates( const char *source, Delegates &delegates )
 {
 	int i2;
@@ -16,5 +16,6 @@
 	importedNamespaces.clear();
 
-	for( int i=0; i<source.GetLength(); i++ )
+	int length = lstrlen( source );
+	for( int i=0; i<length; i++ )
 	{
 		if( source[i] == 1 && source[i+1] == ESC_NAMESPACE ){
@@ -81,5 +82,5 @@
 			// 名前
 			char name[VN_SIZE];
-			GetIdentifierToken( name, source.GetBuffer(), i );
+			GetIdentifierToken( name, source, i );
 
 			if( source[i] != '(' )
@@ -91,5 +92,5 @@
 			// パラメータ文字列
 			char paramStr[8192];
-			i += GetStringInPare( paramStr, source.GetBuffer() + i, true );
+			i += GetStringInPare( paramStr, source + i, true );
 
 			// 戻り値の型の文字列
@@ -98,5 +99,5 @@
 			{
 				i += 2;
-				GetCommandToken( returnTypeName, source.GetBuffer(), i );
+				GetCommandToken( returnTypeName, source, i );
 
 				if( procKind != Procedure::Function )
Index: trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Procedure.cpp
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Procedure.cpp	(revision 551)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Procedure.cpp	(revision 552)
@@ -177,5 +177,5 @@
 }
 
-void LexicalAnalyzer::CollectProcedures( const BasicSource &source, UserProcs &userProcs, DllProcs &dllProcs )
+void LexicalAnalyzer::CollectProcedures( const char *source, UserProcs &userProcs, DllProcs &dllProcs )
 {
 	extern HANDLE hHeap;
Index: trunk/ab5.0/abdev/compiler_x86/MakePeHdr.cpp
===================================================================
--- trunk/ab5.0/abdev/compiler_x86/MakePeHdr.cpp	(revision 551)
+++ trunk/ab5.0/abdev/compiler_x86/MakePeHdr.cpp	(revision 552)
@@ -163,5 +163,5 @@
 	{
 		ActiveBasic::Compiler::LexicalAnalyzer::CollectDelegates(
-			compiler.GetObjectModule().GetCurrentSource(),
+			compiler.GetObjectModule().GetCurrentSource().GetBuffer(),
 			compiler.GetObjectModule().meta.GetDelegates()
 		);
@@ -208,5 +208,5 @@
 	compiler.SetCompilingClass( NULL );
 	ActiveBasic::Compiler::LexicalAnalyzer::CollectProcedures(
-		compiler.GetObjectModule().GetCurrentSource(),
+		compiler.GetObjectModule().GetCurrentSource().GetBuffer(),
 		compiler.GetObjectModule().meta.GetUserProcs(),
 		compiler.GetObjectModule().meta.GetDllProcs()
