Index: trunk/abdev/BasicCompiler32/Compile_Statement.cpp
===================================================================
--- trunk/abdev/BasicCompiler32/Compile_Statement.cpp	(revision 247)
+++ trunk/abdev/BasicCompiler32/Compile_Statement.cpp	(revision 248)
@@ -3,5 +3,5 @@
 #include <jenga/include/smoothie/LexicalAnalysis.h>
 
-#include <LexicalScopingImpl.h>
+#include <LexicalScope.h>
 #include <Compiler.h>
 
@@ -140,5 +140,5 @@
 	}
 
-	const CodeGenerator::PertialSchedule *pIfPertialSchedule = NULL;
+	const PertialSchedule *pIfPertialSchedule = NULL;
 	if( !NumOpe(Parameter,Type(),tempType) ){
 		//NumOpe内でエラー
@@ -207,5 +207,5 @@
 
 		//jne
-		const CodeGenerator::PertialSchedule *pTempPertialSchedule1 = compiler.codeGenerator.op_jne( 0, sizeof(char), true );
+		const PertialSchedule *pTempPertialSchedule1 = compiler.codeGenerator.op_jne( 0, sizeof(char), true );
 
 		//cmp ebx,0
@@ -213,5 +213,5 @@
 
 		//jne
-		const CodeGenerator::PertialSchedule *pTempPertialSchedule2 = compiler.codeGenerator.op_jne( 0, sizeof(char), true );
+		const PertialSchedule *pTempPertialSchedule2 = compiler.codeGenerator.op_jne( 0, sizeof(char), true );
 
 		//jmp (endif、または else までジャンプ)
@@ -240,10 +240,10 @@
 
 	//レキシカルスコープをレベルアップ
-	GetLexicalScopes().Start( obp, SCOPE_TYPE_IF );
+	compiler.codeGenerator.lexicalScopes.Start( obp, LexicalScope::SCOPE_TYPE_IF );
 
 	i2=CompileBuffer(ESC_ENDIF,0);
 
 	//レキシカルスコープをレベルダウン
-	GetLexicalScopes().End();
+	compiler.codeGenerator.lexicalScopes.End();
 
 
@@ -252,5 +252,5 @@
 	if(i2==ESC_ELSE){
 		//jmp (endifまで)
-		const CodeGenerator::PertialSchedule *pTempPertialSchedule = compiler.codeGenerator.op_jmp( 0, sizeof(long), true );
+		const PertialSchedule *pTempPertialSchedule = compiler.codeGenerator.op_jmp( 0, sizeof(long), true );
 
 		compiler.codeGenerator.opfix_JmpPertialSchedule( pIfPertialSchedule );
@@ -262,10 +262,10 @@
 
 		//レキシカルスコープをレベルアップ
-		GetLexicalScopes().Start( obp, SCOPE_TYPE_IF );
+		compiler.codeGenerator.lexicalScopes.Start( obp, LexicalScope::SCOPE_TYPE_IF );
 
 		CompileBuffer(ESC_ENDIF,0);
 
 		//レキシカルスコープをレベルダウン
-		GetLexicalScopes().End();
+		compiler.codeGenerator.lexicalScopes.End();
 
 
@@ -340,5 +340,5 @@
 	if(!Parameter[0]) SetError(10,"While",cp);
 
-	const CodeGenerator::PertialSchedule *pWhilePertialSchedule = NULL;
+	const PertialSchedule *pWhilePertialSchedule = NULL;
 	Type tempType;
 	if( !NumOpe(Parameter,Type(),tempType) ){
@@ -408,5 +408,5 @@
 
 		//jne
-		const CodeGenerator::PertialSchedule *pTempPertialSchedule1 = compiler.codeGenerator.op_jne( 0, sizeof(char), true );
+		const PertialSchedule *pTempPertialSchedule1 = compiler.codeGenerator.op_jne( 0, sizeof(char), true );
 
 		//cmp ebx,0
@@ -414,5 +414,5 @@
 
 		//jne
-		const CodeGenerator::PertialSchedule *pTempPertialSchedule2 = compiler.codeGenerator.op_jne( 0, sizeof(char), true );
+		const PertialSchedule *pTempPertialSchedule2 = compiler.codeGenerator.op_jne( 0, sizeof(char), true );
 
 		//jmp (Wendまでジャンプ)
@@ -436,10 +436,10 @@
 
 	//レキシカルスコープをレベルアップ
-	GetLexicalScopes().Start( obp, SCOPE_TYPE_WHILE );
+	compiler.codeGenerator.lexicalScopes.Start( obp, LexicalScope::SCOPE_TYPE_WHILE );
 
 	//While内をコンパイル
 	CompileBuffer(0,COM_WEND);
 
-	GetLexicalScopes().CallDestructorsOfScopeEnd();
+	compiler.codeGenerator.lexicalScopes.CallDestructorsOfScopeEnd();
 
 	//jmp ...
@@ -447,5 +447,5 @@
 
 	//レキシカルスコープをレベルダウン
-	GetLexicalScopes().End();
+	compiler.codeGenerator.lexicalScopes.End();
 
 	if( pWhilePertialSchedule )
@@ -486,5 +486,5 @@
 
 	//jmp ...
-	const CodeGenerator::PertialSchedule *pTempPertialSchedule = compiler.codeGenerator.op_jmp( 0, sizeof(long), true );
+	const PertialSchedule *pTempPertialSchedule = compiler.codeGenerator.op_jmp( 0, sizeof(long), true );
 
 	//Continueアドレスのバックアップとセット
@@ -528,5 +528,5 @@
 
 	//jmp [カウンタ減少の場合の判定を飛び越す]
-	const CodeGenerator::PertialSchedule *pTempPertialSchedule2 = compiler.codeGenerator.op_jmp( 0, sizeof(long), true );
+	const PertialSchedule *pTempPertialSchedule2 = compiler.codeGenerator.op_jmp( 0, sizeof(long), true );
 
 	//jeジャンプ先のオフセット値
@@ -552,10 +552,10 @@
 
 	//レキシカルスコープをレベルアップ
-	GetLexicalScopes().Start( obp, SCOPE_TYPE_FOR );
+	compiler.codeGenerator.lexicalScopes.Start( obp, LexicalScope::SCOPE_TYPE_FOR );
 
 	//For内をコンパイル
 	CompileBuffer(0,COM_NEXT);
 
-	GetLexicalScopes().CallDestructorsOfScopeEnd();
+	compiler.codeGenerator.lexicalScopes.CallDestructorsOfScopeEnd();
 
 	if(szNextVariable[0]){
@@ -569,5 +569,5 @@
 
 	//レキシカルスコープをレベルダウン
-	GetLexicalScopes().End();
+	compiler.codeGenerator.lexicalScopes.End();
 
 	//jeジャンプ先のオフセット値
@@ -588,12 +588,12 @@
 
 	//レキシカルスコープをレベルアップ
-	GetLexicalScopes().Start( obp, SCOPE_TYPE_DO );
+	compiler.codeGenerator.lexicalScopes.Start( obp, LexicalScope::SCOPE_TYPE_DO );
 
 	//Do内をコンパイル
 	CompileBuffer(0,COM_LOOP);
 
-	GetLexicalScopes().CallDestructorsOfScopeEnd();
-
-	const CodeGenerator::PertialSchedule *pDoPertialSchedule = NULL;
+	compiler.codeGenerator.lexicalScopes.CallDestructorsOfScopeEnd();
+
+	const PertialSchedule *pDoPertialSchedule = NULL;
 
 	extern char *basbuf;
@@ -702,5 +702,5 @@
 
 				//jne
-				const CodeGenerator::PertialSchedule *pTempPertialSchedule1 = compiler.codeGenerator.op_jne( 0, sizeof(char), true );
+				const PertialSchedule *pTempPertialSchedule1 = compiler.codeGenerator.op_jne( 0, sizeof(char), true );
 
 				//cmp ebx,0
@@ -708,5 +708,5 @@
 
 				//jne
-				const CodeGenerator::PertialSchedule *pTempPertialSchedule2 = compiler.codeGenerator.op_jne( 0, sizeof(char), true );
+				const PertialSchedule *pTempPertialSchedule2 = compiler.codeGenerator.op_jne( 0, sizeof(char), true );
 
 				if(basbuf[i3]=='0'){
@@ -723,5 +723,5 @@
 
 					//jmp 2（ループを続ける）
-					const CodeGenerator::PertialSchedule *pTempPertialSchedule3 = compiler.codeGenerator.op_jmp( 0, sizeof(char), true );
+					const PertialSchedule *pTempPertialSchedule3 = compiler.codeGenerator.op_jmp( 0, sizeof(char), true );
 
 					compiler.codeGenerator.opfix_JmpPertialSchedule( pTempPertialSchedule1 );
@@ -767,8 +767,8 @@
 
 	//jmp ...
-	const CodeGenerator::PertialSchedule *pTempPertialSchedule = compiler.codeGenerator.op_jmp( 0, sizeof(long), true );
+	const PertialSchedule *pTempPertialSchedule = compiler.codeGenerator.op_jmp( 0, sizeof(long), true );
 
 	//レキシカルスコープをレベルダウン
-	GetLexicalScopes().End();
+	compiler.codeGenerator.lexicalScopes.End();
 
 	//jmpジャンプ先のオフセット値
@@ -792,5 +792,5 @@
 
 	//未解放のローカルオブジェクトのデストラクタを呼び出す
-	GetLexicalScopes().CallDestructorsOfReturn();
+	compiler.codeGenerator.lexicalScopes.CallDestructorsOfReturn();
 
 	//jmp ...(End Sub/Function)
@@ -1049,5 +1049,5 @@
 
 	//レキシカルスコープをレベルアップ
-	GetLexicalScopes().Start( obp, SCOPE_TYPE_SELECT );
+	compiler.codeGenerator.lexicalScopes.Start( obp, LexicalScope::SCOPE_TYPE_SELECT );
 
 	//Select Case内をコンパイル
@@ -1066,5 +1066,5 @@
 
 	//レキシカルスコープをレベルダウン
-	GetLexicalScopes().End();
+	compiler.codeGenerator.lexicalScopes.End();
 
 	pCaseSchedule=temp_pCaseSchedule;
