Index: trunk/ab5.0/abdev/compiler_x86/MakePeHdr.cpp
===================================================================
--- trunk/ab5.0/abdev/compiler_x86/MakePeHdr.cpp	(revision 546)
+++ trunk/ab5.0/abdev/compiler_x86/MakePeHdr.cpp	(revision 547)
@@ -141,11 +141,16 @@
 
 	//列挙体に関する情報を収集
-	compiler.enumInfoCollection.InitEnum();
-
-	//列挙体からクラスコードを生成
-	char *temp;
-	temp=compiler.enumInfoCollection.GenerateSourceCode();
-	AddSourceCode(temp);
-	HeapDefaultFree(temp);
+	{
+		ActiveBasic::Compiler::LexicalAnalyzer::CollectEnums(
+			compiler.GetObjectModule().GetCurrentSource().GetBuffer(),
+			compiler.enumInfoCollection
+		);
+
+		// デリゲートからクラスコードを生成
+		std::string tempSource = ActiveBasic::Compiler::LexicalAnalyzer::GenerateEnumsSourceCode(
+			compiler.enumInfoCollection
+		);
+		AddSourceCode( tempSource.c_str() );
+	}
 
 	// 名前空間情報を取得
Index: trunk/ab5.0/abdev/compiler_x86/compiler_x86.vcproj
===================================================================
--- trunk/ab5.0/abdev/compiler_x86/compiler_x86.vcproj	(revision 546)
+++ trunk/ab5.0/abdev/compiler_x86/compiler_x86.vcproj	(revision 547)
@@ -1269,4 +1269,8 @@
 				</File>
 				<File
+					RelativePath="..\BasicCompiler_Common\src\LexicalAnalyzer_Enum.cpp"
+					>
+				</File>
+				<File
 					RelativePath="..\BasicCompiler_Common\src\LexicalAnalyzer_Procedure.cpp"
 					>
